mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-01 23:52:03 -04:00
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:
@@ -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 |
|
||||
|
||||
@@ -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.**
|
||||
|
||||
@@ -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
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user