From 4cccc48790e2f6e0d348f50ce8d2ded9c68ac5eb Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Thu, 30 Apr 2026 14:19:14 -0400 Subject: [PATCH 1/2] hygiene(conflict-markers): allowlist rerere-cache-dividend memory file (PR #694 substrate) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rerere memory file landed via PR #694 (2026-04-30) contains a worked-example trace at lines 117-121 showing the MEMORY.md sibling- DIRTY conflict shape inside a fenced code block. Those literal merge markers are documentation (the rule's worked example), not accidental leakage from a botched merge. Adding the file to ALLOWLIST keeps the lint-as-mechanism approach working — accidental marker leakage still fires; documented examples in named substrate files are explicitly opted in. Composes with the existing allowlist entry for Otto-341 lint- suppression file, same pattern. --- tools/hygiene/check-no-conflict-markers.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/hygiene/check-no-conflict-markers.sh b/tools/hygiene/check-no-conflict-markers.sh index 7b67cd24c..896f35687 100755 --- a/tools/hygiene/check-no-conflict-markers.sh +++ b/tools/hygiene/check-no-conflict-markers.sh @@ -57,6 +57,11 @@ ALLOWLIST=( # examples. Allowed because the file body is meta-discussion not # accidental marker leakage. "memory/feedback_otto_341_lint_suppression_is_self_deception_noise_signal_or_underlying_fix_greenfield_large_refactors_welcome_training_data_human_shortcut_bias_2026_04_26.md" + # Rerere cache dividend memory file — landed PR #694 (2026-04-30). + # Body has a worked-example trace of the MEMORY.md sibling-DIRTY + # conflict shape inside a fenced code block (lines 117-121). + # Fenced examples of merge markers are documentation, not leakage. + "memory/feedback_rerere_conflict_resolution_cache_dividend_amara_2026_04_28.md" ) is_allowed() { From 184a0daaa02821d45c8a137216797f6199f4905e Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Thu, 30 Apr 2026 14:22:42 -0400 Subject: [PATCH 2/2] review-fix(#932): drop hardcoded line numbers from allowlist rationale Copilot review thread: the rationale comment hard-coded 'lines 117-121' which is liable to drift as the memory entry evolves. Reworded to describe the example by section ('Worked-example trace' quoting the MEMORY.md sibling-DIRTY conflict shape) rather than line position. The file-level allowlist scope is the durable contract. --- tools/hygiene/check-no-conflict-markers.sh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/hygiene/check-no-conflict-markers.sh b/tools/hygiene/check-no-conflict-markers.sh index 896f35687..11c4b4d9b 100755 --- a/tools/hygiene/check-no-conflict-markers.sh +++ b/tools/hygiene/check-no-conflict-markers.sh @@ -58,9 +58,12 @@ ALLOWLIST=( # accidental marker leakage. "memory/feedback_otto_341_lint_suppression_is_self_deception_noise_signal_or_underlying_fix_greenfield_large_refactors_welcome_training_data_human_shortcut_bias_2026_04_26.md" # Rerere cache dividend memory file — landed PR #694 (2026-04-30). - # Body has a worked-example trace of the MEMORY.md sibling-DIRTY - # conflict shape inside a fenced code block (lines 117-121). - # Fenced examples of merge markers are documentation, not leakage. + # The "Worked-example trace" section quotes the MEMORY.md sibling- + # DIRTY conflict shape inside a fenced code block as the rule's + # documented example. Fenced examples of merge markers are + # documentation, not leakage. (Line numbers intentionally omitted + # so the rationale survives section-level edits — file-level + # allowlist scope is the durable contract.) "memory/feedback_rerere_conflict_resolution_cache_dividend_amara_2026_04_28.md" )