From 9d01e382cc3874675cadb6e63bd697d39b925eff Mon Sep 17 00:00:00 2001 From: Drew T <50529377+Druthulu@users.noreply.github.com> Date: Tue, 1 Sep 2026 14:37:18 -0600 Subject: [PATCH] =?UTF-8?q?docs:=20=C2=A7397=20+=20playbook=20=C2=A72a-3?= =?UTF-8?q?=20=E2=80=94=20re-run=20the=20twin=20scan=20after=20every=20exe?= =?UTF-8?q?mplar=20bank?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Measured the expensive way. A reach-6 cluster showed open-open, so seed_ref correctly reported 'no banked twin' for all six. I cracked the exemplar (203k tokens, five new levers) and then drafted four siblings at ~60k each — including one that had already burned 257k plateauing at permuter-class NEAR. They were EXACT clones. The agents' own diffs said so: 'label-stripped .s diff vs the twin is EMPTY', 'an EXACT clone (asm diff = labels only)'. The moment the exemplar banked, seed_ref returned it as a banked twin for every sibling, and family_remap + the §378 chain banks them for ~0 tokens. The law: a bank CHANGES THE TWIN GRAPH. The twin oracle answers 'is there a BANKED body like this?', so its verdict for every sibling is stale the instant the exemplar lands. crack-wave-sweep-map-regen applied one level down — the family map is not the only stale artifact, and the twin oracle is the one the cards read. Also: never draft two members of one cluster in parallel; if either cracks the other is free. --- docs/cookbook-index.md | 7 +++++-- docs/matching-cookbook.md | 33 +++++++++++++++++++++++++++++++++ docs/wave-playbook.md | 17 +++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/docs/cookbook-index.md b/docs/cookbook-index.md index 23b12374c0..6f3c193781 100644 --- a/docs/cookbook-index.md +++ b/docs/cookbook-index.md @@ -2,7 +2,7 @@ > **Generated by `tools/cookbook_index.py` — do not hand-edit** (R33). Regenerate after adding a cookbook section. > -> `docs/matching-cookbook.md` is ~716 KB / 1056 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses. +> `docs/matching-cookbook.md` is ~716 KB / 1057 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses. **How to use:** name what you SEE in the diff (a stolen delay slot, an extra `la`, a swapped register pair, a `conflicting types` error), find that symptom below, read those sections first. If nothing fits, THEN grind — and add a section when you win. @@ -1318,7 +1318,7 @@ - **§384** — ★★★ — A CARVE-CONFIG BANK IS RED UNTIL YOU RE-EXTRACT, AND THAT LOOKS EXACTLY LIKE A FALSE BANK (P31 S69; measured twice, cost one destroyed match) L32259 - **§378b** — ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P31 S69, all four measured the same day) L32572 -### (unbucketed — title matched no symptom vocabulary) (311) +### (unbucketed — title matched no symptom vocabulary) (312) - **§3-How** — to use this L30 - **§1** — Idiom catalog (asm pattern → C that produces it) L39 @@ -1631,6 +1631,7 @@ - **§390** — ★★★ — MINIMUM DISTANCE IS NOT MINIMUM WORK; RANK TWIN CANDIDATES BY EFFORT, AND FILTER LOOKALIKES BY RATIO (P31 S69; byte-proven ov_SC01_077/func_80184D50, banked) L32450 - **§394** — ★★ — TWO ALIGN-1 ACCESSES IN ONE FUNCTION RESERVE A PHANTOM STACK SLOT (P31 S69; ov_SC02_005/func_80180610) L32560 - **§314b** — ★★ — TWO ABS-RANGE GUARDS IN ONE FUNCTION NEED **DIFFERENT SPELLINGS** (P31 S69; byte-proven ov_SC04_002/func_8018691C, 111 ins) L32645 +- **§397** — ★★★ — RE-RUN THE TWIN SCAN AFTER EVERY EXEMPLAR BANK; A CLUSTER SIBLING IS FREE THE MOMENT ITS EXEMPLAR LANDS (P31 S69; ~250k tokens spent proving it the expensive way) L32785 ## All sections, in order @@ -2691,6 +2692,7 @@ - **§332b** — ★★★ — THE §332 "WALLS" ARE A PER-OBJECT ASSEMBLER MODE, NOT A C LIMIT — 6 CLOSE AS REAL C (P31 S69, Fable-3) L32702 - **§378c** — ★★ — THE FIFTH DECL-BLOCKER VARIANT: THE DRAFT REDECLARES WHAT THE TU ALREADY OWNS (P31 S69) L32722 - **§396** — ★★★ — SIX LEVERS FROM THE S69 SINGLETON ROUND, INCLUDING ONE THAT ONLY A `COND_EXPR` REACHES (P31 S69) L32737 +- **§397** — ★★★ — RE-RUN THE TWIN SCAN AFTER EVERY EXEMPLAR BANK; A CLUSTER SIBLING IS FREE THE MOMENT ITS EXEMPLAR LANDS (P31 S69; ~250k tokens spent proving it the expensive way) L32785 --- @@ -3759,3 +3761,4 @@ Notes routinely quote that as a section id. This table resolves it. Grep bait: ` | L32702 | §332b | ★★★ — THE §332 "WALLS" ARE A PER-OBJECT ASSEMBLER MODE, NOT A C LIMIT — 6 CLOSE AS REAL C | | L32722 | §378c | ★★ — THE FIFTH DECL-BLOCKER VARIANT: THE DRAFT REDECLARES WHAT THE TU ALREADY OWNS (P31 S6 | | L32737 | §396 | ★★★ — SIX LEVERS FROM THE S69 SINGLETON ROUND, INCLUDING ONE THAT ONLY A `COND_EXPR` REACH | +| L32785 | §397 | ★★★ — RE-RUN THE TWIN SCAN AFTER EVERY EXEMPLAR BANK; A CLUSTER SIBLING IS FREE THE MOMENT | diff --git a/docs/matching-cookbook.md b/docs/matching-cookbook.md index 5ddfffc3f3..c83fa5d85f 100644 --- a/docs/matching-cookbook.md +++ b/docs/matching-cookbook.md @@ -32781,3 +32781,36 @@ prescan trap — paraphrase the comment. parameters PROMOTE to the TU's prototype — no decl edit, no cast, and the gate's "conflicting types" disappears. (byte-proven `ov_SC05_018/func_80182CDC`) + +## §397 ★★★ — RE-RUN THE TWIN SCAN AFTER EVERY EXEMPLAR BANK; A CLUSTER SIBLING IS FREE THE MOMENT ITS EXEMPLAR LANDS (P31 S69; ~250k tokens spent proving it the expensive way) + +**The mistake, measured.** A reach-6 cluster (`ov_SC06_018/020/022/024/032/033`) showed as +**open-open** in the family map: six members, none banked, so `seed_ref` reported **"no banked twin"** +for every one of them. I cracked the exemplar `ov_SC06_018/func_80189E60` (203k tokens, five new +levers → §395), then **drafted four siblings at ~60k each**. + +They did not need drafting. The moment the exemplar banked, `seed_ref` returned it as a **banked twin +for all of them** — and the agents' own diffs said why: *"label-stripped `.s` diff vs the twin is +EMPTY"*, *"an EXACT clone (asm diff = labels only, same relocation symbols)"*. `family_remap` + +the §378 chain banks those for **~0 tokens**. The waste included `ov_SC06_020/func_80183FD0`, which +burned **257k tokens plateauing at permuter-class NEAR 4** and then remapped cleanly from the twin +that had banked in the meantime. + +**The law: a bank CHANGES THE TWIN GRAPH, and every open-open cluster is one bank away from being a +remap job.** The twin oracle answers "is there a BANKED body like this?" — so its answer for every +sibling is stale the instant the exemplar lands. + +**The procedure, in order:** + +1. Crack ONE exemplar per cluster (never two — see below). +2. Gate it. **Bank it.** +3. **RE-RUN `seed_ref` (and `--near`) for every remaining member of that cluster.** +4. Remap what now has a twin (`family_remap` → §378 chain → gate). Draft only what does not. + +**And never draft two members of the same cluster in parallel.** I drew `func_80189E60` and +`func_80183FD0` — same cluster — in the same round: if either cracks the other is free, so the second +agent is pure waste, and it was. + +This is the `crack-wave-sweep-map-regen` rule ("regen the map after banking") applied one level down: +the FAMILY map is not the only stale artifact — **the twin oracle is stale too, and it is the one the +cards read.** diff --git a/docs/wave-playbook.md b/docs/wave-playbook.md index c0784bb79d..b4aab01e12 100644 --- a/docs/wave-playbook.md +++ b/docs/wave-playbook.md @@ -135,6 +135,23 @@ is worse than no twin, because the agent believes it. (§390). The scanner well is dry; the integration levers (§376/§378) out-earned it by an order of magnitude in the same session. +### 2a-3. AFTER EVERY EXEMPLAR BANK, RE-RUN THE TWIN SCAN BEFORE DRAFTING ITS SIBLINGS (S69) + +An open-open cluster reports "no banked twin" for ALL members — correctly, because none is banked. +**Bank one and every sibling may become a remap job.** Measured S69: a reach-6 cluster's exemplar +cost 203k tokens to crack, then four siblings were drafted at ~60k each when `seed_ref` would have +returned the freshly-banked exemplar as their twin and `family_remap` would have banked them for ~0 +(the agents' own diffs read "label-stripped .s diff is EMPTY" and "an EXACT clone"). One of them had +already burned 257k plateauing at permuter-class NEAR before the remap closed it. + +``` +crack ONE exemplar -> gate -> BANK -> re-run seed_ref/--near for the rest of the cluster + -> remap what now has a twin; draft only what does not +``` + +**And never draft two members of the same cluster in parallel** — if either cracks, the other is +free, so the second agent is pure waste (§397). + ### 2b. RUN `neighbor_ref` FOR EVERY CARD — the biggest measured cost lever in the wave ```