docs: §397 + playbook §2a-3 — re-run the twin scan after every exemplar bank

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.
This commit is contained in:
Drew T
2026-09-01 14:37:18 -06:00
parent 85b90967e4
commit 9d01e382cc
3 changed files with 55 additions and 2 deletions
+5 -2
View File
@@ -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) <sub>L32259</sub>
- **§378b** — ★★★ — THE FOUR VARIANTS OF THE DECL BLOCKER, AND THE TWO PLACES §378 DOES **NOT** APPLY (P31 S69, all four measured the same day) <sub>L32572</sub>
### (unbucketed — title matched no symptom vocabulary) (311)
### (unbucketed — title matched no symptom vocabulary) (312)
- **§3-How** — to use this <sub>L30</sub>
- **§1** — Idiom catalog (asm pattern → C that produces it) <sub>L39</sub>
@@ -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) <sub>L32450</sub>
- **§394** — ★★ — TWO ALIGN-1 ACCESSES IN ONE FUNCTION RESERVE A PHANTOM STACK SLOT (P31 S69; ov_SC02_005/func_80180610) <sub>L32560</sub>
- **§314b** — ★★ — TWO ABS-RANGE GUARDS IN ONE FUNCTION NEED **DIFFERENT SPELLINGS** (P31 S69; byte-proven ov_SC04_002/func_8018691C, 111 ins) <sub>L32645</sub>
- **§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) <sub>L32785</sub>
## 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) <sub>L32702</sub>
- **§378c** — ★★ — THE FIFTH DECL-BLOCKER VARIANT: THE DRAFT REDECLARES WHAT THE TU ALREADY OWNS (P31 S69) <sub>L32722</sub>
- **§396** — ★★★ — SIX LEVERS FROM THE S69 SINGLETON ROUND, INCLUDING ONE THAT ONLY A `COND_EXPR` REACHES (P31 S69) <sub>L32737</sub>
- **§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) <sub>L32785</sub>
---
@@ -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 |
+33
View File
@@ -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.**
+17
View File
@@ -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
```