From 02ec70f45b8dfb7b2c741a5fe4953206dfb80801 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Sat, 2 May 2026 20:25:23 -0400 Subject: [PATCH 1/2] =?UTF-8?q?review(pr-1250-postmerge):=20correct=20Laye?= =?UTF-8?q?r-7=20ADR=20finding=20=E2=80=94=20relevant=20ADR=20exists,=20ne?= =?UTF-8?q?eds=20supersession=20marker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2 Copilot post-merge findings on PR #1250 (already merged): both flagged Layer-7 ADR claim as wrong. The original worked example claimed `ls docs/DECISIONS/ | grep -iE "double.hop|acehack|mirror"` returns nothing. It actually returns `2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-option-c.md` — the ADR codifying Option C (the chosen sync strategy) that the double-hop pattern operationalized. This is a substantive correction: 1. Layer 7 had a relevant ADR all along; my "no ADR" conclusion was empirically wrong 2. The synthesized answer needs to acknowledge the ADR exists 3. The 5-properties-demonstrated section had used "no ADR" as substantive-negative-result demonstration; that demonstration needs a different framing Reframed: - Layer 7 now reports the actual match + flags the ADR as needing a supersession marker (the abandonment 2026-05-02 implicitly affects it; without explicit marker the ADR drifts to falsely-canonical status) - Synthesized answer adds point 4: "The 2026-04-26 sync-drain- plan ADR is now stale" with the marker recommendation - 5-properties section: changed property #2 from "negative results at layer 7 + 11 are substantive" to a more nuanced framing distinguishing "positive-with-stale-status" (Layer 7 here — needs marker landing) from "substantive-negative" (Layer 11 — IS the result) Surfaces a follow-up: the 2026-04-26 ADR should carry a supersession marker. Filing as a separate concern. The error pattern this teaches: claim verification at write- time. I described what the command "should return" not what it actually returned. Future worked-example authoring needs mandatory shell-test per command before claim. Co-Authored-By: Claude Opus 4.7 --- ...worked-example-1-double-hop-abandonment.md | 51 +++++++++++++++---- 1 file changed, 40 insertions(+), 11 deletions(-) diff --git a/docs/research/2026-05-02-decision-archaeology-worked-example-1-double-hop-abandonment.md b/docs/research/2026-05-02-decision-archaeology-worked-example-1-double-hop-abandonment.md index 7ad725cb6..cb758bba6 100644 --- a/docs/research/2026-05-02-decision-archaeology-worked-example-1-double-hop-abandonment.md +++ b/docs/research/2026-05-02-decision-archaeology-worked-example-1-double-hop-abandonment.md @@ -169,11 +169,23 @@ Searching `docs/DECISIONS/` for double-hop related ADRs: ls docs/DECISIONS/ | grep -iE "double.hop|acehack|mirror" ``` -Returns nothing. **The double-hop never had an ADR.** It was governed by -memos + CLAUDE.md + branch-protection rules. This is itself archaeology -output: not all load-bearing decisions in this factory are ADR'd; the -ADR threshold is "decisions that need cross-domain reference," and the -double-hop was substrate-discipline scope, which lives in memos. +Returns one match: `2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-option-c.md`. + +**Layer-7 output:** the AceHack/LFG roundtrip workflow has an ADR — the +2026-04-26 sync-drain-plan ADR that codified Option C (the chosen sync +strategy) before the double-hop pattern explicitly emerged. Reading +that ADR shows it covered the *AceHack-first sync drain* decision, which +the 2026-04-27 `feedback_lfg_master_acehack_zero_divergence_fork_double_hop_*` +memo extended into the full double-hop pattern. So the supersession at +2026-05-02 implicitly affects the ADR's chosen Option C — and walking +the abandonment forward should ask whether the ADR needs an updated +status marker (superseded-by-LFG-only-directive). + +This is a **layer-7 finding worth its own follow-up:** the 2026-04-26 ADR +should carry a `superseded:` or `current_status:` marker pointing at the +2026-04-29 LFG-only directive + 2026-05-02 abandonment. ADRs without +supersession markers drift to falsely-canonical status. Filing this as +a separate concern from the worked example. ### Layer 8 — Named-decision memos @@ -295,7 +307,16 @@ absorbs squash-SHA) was abandoned 2026-05-02 because: when possible; PR-based reset OR delete-and-recreate when diverged." The Path-2 mechanism is strictly simpler than the double-hop; the abandonment retires the mechanism Path-2 already obsoleted. -4. **No permanent rejection.** The abandonment is current-state, not +4. **The 2026-04-26 sync-drain-plan ADR is now stale.** Layer-7 + archaeology surfaced + `docs/DECISIONS/2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-option-c.md` + as the original ADR codifying the sync strategy that the double-hop + pattern operationalized. The supersession affects this ADR + implicitly; it should carry an explicit `superseded:` / + `current_status:` marker pointing at the 2026-04-29 LFG-only directive + + 2026-05-02 abandonment so future readers don't treat it as + canonical-current. +5. **No permanent rejection.** The abandonment is current-state, not forever — *"WONT-DO is 99% deferral, not forever"* applies. If risk-absorption needs return, the double-hop pattern is recoverable from the 2026-04-27 memo + git history. @@ -312,12 +333,20 @@ For the eventual `decision-archaeology` SKILL.md body: 1. **Layered narrative beats flat list.** The synthesized answer above could not be produced from any single layer; it composes evidence - from layers 2, 4, 6, 8, and 11. The skill must teach contributors + from layers 2, 4, 6, 7, 8, and 11. The skill must teach contributors to walk all 11 layers, not just the first 3. -2. **Negative results at layer 7 (no ADR) and layer 11 (no WONT-DO) - ARE substantive.** A naive contributor would skip these layers - because they returned nothing; the *absence* tells future contributors - important things (decision threshold; rejection-permanence). +2. **Layer-7 ADRs need supersession markers; layer-11 negative results + ARE substantive.** Layer 7 surfaced a relevant ADR + (`2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-option-c.md`) + that is implicitly affected by the supersession but lacks an explicit + marker — the skill must teach contributors to (a) read each match + for relevance, NOT skip on first-glance no-match, and (b) propose + supersession markers when ADRs drift past their canonical-status + window. Layer 11 (no WONT-DO entry) IS substantive negative output + (rejection isn't permanent; double-hop is recoverable). The skill + teaches contributors to distinguish *positive-with-stale-status* from + *substantive-negative*: the first needs a marker landing; the second + IS the result. 3. **Ride-along supersessions are common.** Layer 3's surprising signal (`7a0b755` is named for *party-during-sleep* not the abandonment) means the skill must teach contributors to query at From b38854d21e54abb65d57fec83d691a97a920fd89 Mon Sep 17 00:00:00 2001 From: Aaron Stainback Date: Sat, 2 May 2026 20:26:29 -0400 Subject: [PATCH 2/2] =?UTF-8?q?hygiene(tick-history):=202026-05-03T00:26Z?= =?UTF-8?q?=20=E2=80=94=20#1252=2011-finding=20fix=20+=20#1250=20Layer-7?= =?UTF-8?q?=20ADR=20follow-up=20+=20#1254=20opened?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two-PR-correction tick worked the verify-then-claim discipline: PR #1252 had 11 count-drift + duplicate findings; PR #1250's worked example #1 had a Layer-7 ADR claim that was empirically wrong (the ADR exists). Follow-up PR #1254 corrects the worked example + surfaces the ADR-supersession-marker as separate follow-up. Pattern caught across this 2-day arc: claim-vs-reality drift is the dominant failure mode. Verify-then-claim is the discipline. Co-Authored-By: Claude Opus 4.7 --- docs/hygiene-history/ticks/2026/05/03/0026Z.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/hygiene-history/ticks/2026/05/03/0026Z.md diff --git a/docs/hygiene-history/ticks/2026/05/03/0026Z.md b/docs/hygiene-history/ticks/2026/05/03/0026Z.md new file mode 100644 index 000000000..2ccbae2c1 --- /dev/null +++ b/docs/hygiene-history/ticks/2026/05/03/0026Z.md @@ -0,0 +1 @@ +| 2026-05-03T00:26:00Z | opus-4-7 / autonomous-loop continuation | a2e2cc3a | **Two-PR-correction tick: 11 Copilot findings on PR #1252 fixed (count drift across multi-harness memo + MEMORY.md duplicates from rebase + 0xZ placeholder); 2 Copilot findings on PR #1250 (already-merged) corrected via follow-up PR #1254 — Layer-7 ADR claim was empirically wrong, the 2026-04-26 sync-drain-plan ADR DOES exist + IS relevant + needs supersession marker.** Cycle worked the verify-then-claim discipline failure mode: PR #1250's Layer-7 worked-example claimed `ls docs/DECISIONS/ \| grep` returns nothing, but the actual command returns the relevant ADR. The original conclusion (no ADR) was wrong; the synthesized answer needs an additional point ("the 2026-04-26 sync-drain-plan ADR is now stale, needs supersession marker"); the 5-properties section needed reframing from "negative results at layer 7+11 are substantive" to nuanced "positive-with-stale-status (Layer 7) vs substantive-negative (Layer 11)". The error pattern: I described what the command should return rather than running it. Future worked-example authoring needs mandatory shell-test per command. Aarav's BP-14 worked-examples-first routing predicts this — claims need empirical grounding to serve as eval-data. Cron a2e2cc3a still armed. | #1250 (worked example #1) — 2 post-merge findings triaged + follow-up PR #1254 opened addressing both; #1252 (multi-harness memo) — 11 findings fixed in same branch (count drift + MEMORY.md dedupe + 0xZ placeholder), threads resolved, auto-merge armed; #1253 (three skill-design rules) — wait-ci, auto-merge armed; #1254 (Layer-7 ADR fix follow-up) — opened, auto-merge armed | This tick teaches the operational pattern of (a) claim-vs-reality drift as the dominant failure mode for substrate authoring (caught across #1245/#1247/#1248/#1250/#1252) — verify-then-claim is the discipline, not claim-then-hope, AND (b) follow-up PRs as the natural correction path even for already-merged work — composing with the bugs-per-PR-as-immune-system-health metric (closing same-class findings uniformly across PRs keeps the metric honest). Surfaces a substrate-grade follow-up: the 2026-04-26 sync-drain-plan ADR needs a supersession marker landing — its own concern, separate from the worked-example fix. |