Files
BFM-decomp/docs/cookbook-index.md
T
Drew T 1576570271 fix(phase-30 S1e): the distinct-code "regression" was a STALE DIGEST — alias lever ungated
The S38 checkpoint gated the phase's best lever ("do NOT scale the alias lever") on
distinct-code falling 89.3 -> 89.2. It never fell.

PROOF (each commit's metric recomputed from its OWN committed tree, 0 unresolved):
  commit:1426 TRUE     : instr 12394533  distinct 5022306  (77895 uniq)
  commit:1426 COMMITTED: instr 12402412  distinct 5029324  (78025 uniq)   <- stale
  HEAD TRUE == COMMITTED: instr 12405402  distinct 5025082  (77952 uniq)
  => true delta 843->HEAD: instr +10869, distinct +2776 ins / +57 uniq. ALL ROSE.
The 843 digest was generated from a working tree still holding work REVERTED before the
commit landed (+7,879 ins / +130 uniq overstated) and never regenerated, so the next
HONEST digest read as a fall. => THE ALIAS LEVER IS UNGATED (scale it, §61 small batches).

Both recorded leads were wrong (R14): progress.py:423's SIG regex feeds fn-count ONLY
(neither weighted metric sees a C identifier — both derive matched = sig - corpus.stubs),
and "the harvest reverted functions to INCLUDE_ASM" died on one grep (483 removed, 0 added).
The 3-grep proof: identical sigs + unchanged tools/ + zero +INCLUDE_ASM => HEAD's stub set
is a strict subset => both numerators are FORBIDDEN to fall.

THREE INSTRUMENT DEFECTS, all one class (a bare except around a fail-CLOSED oracle):
- progress.py stub_addrs wrapped corpus.stubs in `except Exception: return set()`. An empty
  stub set means "could not answer", not "no stubs", so matched = sig - stubs credited EVERY
  function. Byte-witnessed: instr 100.00% / distinct 100.00% in a tree with no asm/. Now
  propagates.
- cast_call_sites.tu_for + reconcile_tu.tu_for had the identical swallow, falling back to the
  default <ov>.c instead of the jr/-O0 split TU — silently reinstating the exact bug
  cast_call_sites' own docstring says it exists to fix. A wrong-TU reconcile fails the gate,
  and this phase's base rate is ~24k PLUMBING vs 4,917 DIFF, so it presents as a codegen wall.
  Now propagate CorpusError; ValueError fallback for curated names preserved; derived-TU path
  re-verified (a _jr_ split stub resolves correctly, both tools agree).

NEW GATE (R34 — the byte-gate is a null oracle for DOCUMENTS; check-all stays 140/140 over a
stale digest forever): tools/audit_digest.py + `make audit-digest`, wired into tools-health
after report. Recomputes the three headline metrics from the current tree and fails if the
committed digest disagrees. Compares INTEGERS, not percentages — the +7,879-instruction
staleness printed as "94.4%" on both sides. Negative-control-proven against the stale 843
digest (fails, exit 1) and green on HEAD.

Verified: make report exit 0 (dedup-check 1910 validated / 0 failed, C1 coverage
241216/241216); audit-digest OK; cookbook-index OK (398 sections); metrics unchanged by the
fix (94.40% / 89.18%). No src/ or config/ edits — no bytes touched, nothing banked.

cookbook §140 · decision-log 2026-08-04 · SETUP.md inventory (R21) · R14/R32/R34/R35.
2026-08-04 21:48:57 -06:00

134 KiB
Raw Blame History

Cookbook index — find the entry by the SYMPTOM you are looking at

Generated by tools/cookbook_index.py — do not hand-edit (R33). Regenerate after adding a cookbook section.

docs/matching-cookbook.md is ~716 KB / 398 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.

Start here — the symptoms that come up most, with the section that fixes them

Hand-curated from what agents actually hit and, in several cases, RE-DERIVED because keyword matching alone did not surface the entry (P30 wave-2 feedback). If your symptom is here, read the named section before anything else.

  • wrong branch sense / arms swapped / beq where the target has bne (match_one prints this class as BRANCH-POLARITY) → §3-T4 (invert the source condition) + §32.2; for a trailing return 0 vs an early return see the shared-ret0 note (cookbook L1344)
  • conflicting types on YOUR OWN function's definition, where the fleet canon is (void) → §73 (the PARAMS axis) + §42 — keep the (void) signature and read the incoming arg via register s32 a0v __asm__("$4"); §42 is otherwise indexed only under regalloc
  • a shared global declared at a conflicting type (u8 vs s32, signedness) blocking your draft → §37 asm-label alias extern T X __asm__("D_x") — beats *(T*)&X, whose address-of perturbs regalloc. Works for FUNCTION definitions too (P30 wave 2)
  • target reuses ONE address register across two different offsets of the same global → §20 (the pointer-var-to-the-global bullet, cookbook L1907-1918) — take T *p = &D_x; and index off p, never the bare symbol twice
  • an extra la / the address hoisted into a callee-saved register across calls → §20 + gcc-2.7.2-map/cse_expr.md §H — *(T*)&sym force_regs the address; the asm-label alias (§37) keeps the direct %lo mem form
  • andi $x,0xFF folded away in your output but present in the target → §1/I2 + §12 name the family; if the prescribed & 0xff at the use folds, hold the masked byte in a u16 local so only a QI->HI extend survives (P30 wave 2, byte-tested)
  • slti where the target has sltiu (or vice versa) → §35 — a separate SIGNED int copy of an unsigned load keeps slti; chained bounds get range-folded, so write each bound as its own if/goto (§21)
  • you are about to hand-derive a body that some overlay already matched → §71 — grep the callees/globals for an already-matched SIBLING first; in wave 2 this alone produced iteration-1 MATCHes on 4 of 19 targets
  • gcc stole an instruction into a branch delay slot that the target leaves as nop → §5a + the zero-byte __asm__("") fence (§34 toolkit) — reorg.c stop_search_p halts the eager filler on an asm insn
  • void vs s32 return — is promoting it byte-neutral? → NO, not always: §41d (byte-proven; a void body with no return gains an instruction). P30 adds a second mechanism: an s32 return keeps $v0 live-out and blocks dbr from filling a loop-back delay slot
  • match_one says SIZE-MISMATCH/short and the target has a frame-pointer prologue (addu $fp,$sp,$zero / 21F0A003) → The target is -O0. Pass --o0 to match_one/rtu_match — nothing else will ever match (§116: opt level is a property of the FILE). Known -O0 regions: boot, ov_SC01_077_o0*, the whale _o0b, and 0x8013B568..0x8013C98C — a target outside all four still needs checking
  • same instruction multiset, one contiguous window, loads/registers ROTATED inside it → pure sched1 statement-order (gcc-2.7.2-map/sched.md §S1/§S4). Cheapest lever: brute-force it — N independent statements, script all N! orders through match_one (24 runs ≈ 2 min) instead of reasoning about rank_for_schedule
  • a two-constant if/else or ?: result lands in $v1 where the target reuses the condition's $v0 → §76 — fold the condition into a NAMED local and overwrite that SAME variable with the two constants (an s16 temp, a fresh temp, an inner scope, and both ternary polarities all stay $v1; only reusing one s32 local coalesces onto $v0). §76 reads as behemoth-only; it is not
  • a load HOISTED above a store (match_one may call it a WIDTH class) → usually §76 regalloc, not a width bug: a missing WAR dependency lets sched2 hoist it. Same fix — one variable for the compare temp and the result
  • ori $v0,0xffd8 in yours vs addiu $v0,-0x28 in the target → a NEGATIVE constant stored into an unsigned narrow local materialises via zero-extended ori; make the local signed to get addiu. It does NOT cost you the lhu on readback — gcc-2.7.2 emits lhu for any plain HImode load feeding an sh (P30 wave 4, byte-tested)
  • LENGTH-DRIFT −1 and the missing instruction is a reg-to-reg COPY in a jal delay slot → a narrow prototyped param (plain ANSI s16 arg3) — §43 is indexed as the K&R-definition lever, but the ANSI form is the fix as often
  • your narrow load lost its load-delay nop right after an inline block move → an lwl/lwr+swl/swr pair is a delay-slot SPONGE for the following load — the inverse of the §5a/§34 fence case. Align-1 4×u8 struct assign emits the inline form (§38 covers only the -O0 memcpy-call form)
  • your e = param_1 copy VANISHED (target addresses every field off a copy at a join block) → cse.c make_regs_eqv keeps a param copy only when the new pseudo's live range escapes the cse block AND outlives the param's last mention — reach that by REUSING the same variable in a later block. Copy-in-the-arms gets hoisted into the delay slot; copy-assigned-in-an-arm goes global allocno → callee-saved + 2 prologue insns
  • ⚠️ the .run/ghidra_c/<fn>.c seed looks like a DIFFERENT function entirely → it may be — overlays share VAs, so a seed can be decompiled from another overlay mapped at the same address. Trust the target .s, not the seed (P30 wave 4)

By symptom

delay slots & branches (3)

  • §3-T4 — Branch polarity: invert the source condition to flip gcc's chosen branch L90
  • §5a — Cross-jump tail-merge — gcc collapses two byte-identical blocks the original kept separate (FIX FOUND) L211
  • §3-D. — THE CROSS-JUMP RATCHET (the sharpest new trap — func_80131340 L-C) L3501

instruction scheduling (15)

  • §3-T2 — Source statement order drives instruction scheduling L78
  • §3 — When a diff is pure scheduling → decomp-permuter (harness built, Phase 6) L107
  • §10 — Closing the regalloc/scheduling hard tail by hand (LZSS, Phase 7 session F — the full close) L835
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-The — crack: the residual was gcc-2.7.2 COPY-COALESCING, not the instruction scheduler L2137
  • §3-The — genuine scheduler — rank_for_schedule (sched.c), for when it IS scheduling L2153
  • §3-The — genuine schedule WALLS (do NOT re-grind — stub) L2162
  • §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on func_80129CF8 191 ins, match_one MATCH; transferable to the 6 sibling giants) L2415
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2447
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2464
  • §3-A4 — SINK THE CONSUMER CALL INTO THE ARMS (the inverse of A1; func_8016AB6C, byte-proven) L3437
  • §49 — The LUID DIAL: a zero-byte SCHEDULING dial (the sched.c analogue of §47) — func_8017A4AC (536 ins ×134), Phase 26 session 8 L3520
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5484
  • §3-The — attribution primitive (use this before calling anything a scheduling residual) L6050
  • §3-The — scheduling rules (refining §135-2 and §135-4) L8902

register allocation & pins (33)

  • §10 — Closing the regalloc/scheduling hard tail by hand (LZSS, Phase 7 session F — the full close) L835
  • Residual — A — commutative |/&/+ result lands in the wrong source-operand register L856
  • Register-allocation — ORDER (call-crossing $s0/$s1 swap) → FORCE it with register pins (byte-proven) L1384
  • §3-The — LOOSE-TYPING wall is real for narrow params (Phase 16, reconfirmed) L1428
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • §22 — DEF-side loose-typing recovery + grinder blacklist (Phase 21) L2005
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §42 — The F-band ≤28 regalloc crack wave: register-pin/DENSITY levers beat the permuter (Phase 25 T7 F-band, 2026-07-10; Ultracode 9-worker wave, 4/9 banked byte-identical, 266 swept ×134) L2893
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3188
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3291
  • §47 — The live-length SLIDER: splitting a global.c allocno-priority TIE with one zero-byte asm (Phase 26 session 8, Fable5 Max, byte-proven on func_8017BEBC 952 ins ×113) L3358
  • §48 — The 12-core jr crack wave: the ALLOCNO-PRICING dials and the EBB rule (Phase 26 session 8, Ultracode, 9/12 MATCH first pass) L3398
  • §3-A. — ALLOCNO-PRICING DIALS — move a value into the register you want, byte-neutrally L3406
  • §52 — The WALKER-FAMILY skeleton: 6 regalloc-order levers + a deeply-characterized intrinsic wall (func_80178004, 165 ins ×134; Phase 26, Fable5, 2026-07-15) L3906
  • §52a — The regalloc sibling wave: new levers + two new wall classes (cheap-Opus applying §52, 2026-07-15) L3952
  • §52b — Sibling wave 2: more de-pin levers, a third wall class, and the match_one→whole-binary gap at scale (2026-07-15) L3990
  • §66d-1 — What transfers between giants is the LOOP, not the PIN L5273
  • §70 — The giv-init base register: walk the PARAMETER, not a copy of it (Phase 29 SESSION-18, func_801777BC) L5612
  • §71 — Before mapping a giant, look for an already-matched SIBLING beside it (Phase 29 SESSION-18, func_8017D960, 3,338 ins) L5653
  • §72 — A register __asm__ pin is a PREFERENCE, not a reservation (Phase 29 SESSION-18, func_8017F510) L5719
  • §74 — Auditing a pinned draft: the §72 hazard is CALLER-SAVED pins spanning a call, and only the disassembly can tell you (Phase 29 SESSION-19, func_8017D960 b2, 5 pins) L5815
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6021
  • §78 — A LENGTH drift can be a register grant in disguise; and fold never leaves a literal first in an | chain (Phase 29 SESSION-19, behemoth #2 func_8017D960 3,338 ins, 1806 → 0, pin-free) L6167
  • §76 — confirmed at scale, and a pin nuance L6244
  • §80 — A do-not-re-buy entry is scoped to its BASE, not to the function; and the pin's hidden cost is an unconditional qty_phys_sugg (Phase 29 SESSION-19, func_8017BF14 45 → 0) L6263
  • §3-The — pin's hidden cost, with the citation L6284
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6405
  • §83c — TRAP: a "dead local" in a prior draft may be gcc's OWN spill area L6438
  • §86 — Pinned-exemplar templatability is a PER-FAMILY property, not a per-member rate; and the §42e pin guard is now over-conservative (Phase 29 SESSION-20) L6582
  • §3-Two — further notes worth keeping L8241
  • §137 — REGALLOC-PERM is a TWO-COMPILE ARITHMETIC PROBLEM, not a permuter job L9334
  • §3-The — same swallow, twice more, in the integration spine L9699

CSE / redundancy / rematerialization (2)

  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3306
  • §83d — CSE's quantity budget is WHOLE-FUNCTION, so a local rewrite cannot fix a local symptom L6445

loops & induction variables (7)

  • §3-T1 — Loop pointer: top-of-body for addu induction, not constant-folded addiu L71
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2447
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2464
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3306
  • §66d — The permuter⇄reader loop: alternate a random search with a byte-verified idiom, and let residual_class decide whose turn it is (Phase 29 SESSION-17) L5238
  • §66d-1 — What transfers between giants is the LOOP, not the PIN L5273
  • §70 — The giv-init base register: walk the PARAMETER, not a copy of it (Phase 29 SESSION-18, func_801777BC) L5612

structs, block moves & memcpy (29)

  • §3-T2 — Source statement order drives instruction scheduling L78
  • §5 — Known hard-residual classes (instruction-identical, one byte-exact blocker) L199
  • §13 — Add a location overlay — the canonical runbook (Phase 13; the Phase-15 fleet recipe) L1056
  • §15 — Struct-heavy shared-core pipeline (Phase 16) — empirical determinations (S0) L1313
  • §16 — Guided hand-matching the struct-heavy core (Phase 17 — beats the §15 brute-force) L1335
  • §3-The — crack: the residual was gcc-2.7.2 COPY-COALESCING, not the instruction scheduler L2137
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2318
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2350
  • §30 — Fable5Max cracks §20/§10 "unsteerable" from the gcc SOURCE: store-vs-load is a /s aliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giant func_8014EE14 248 ins ×134) L2375
  • §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on func_80129CF8 191 ins, match_one MATCH; transferable to the 6 sibling giants) L2415
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2520
  • §40 — Structural families: the MECHANICAL symbol-remap (crack one exemplar → remap the rest, ~0 tokens) (Phase 25 T3/T7, 2026-07-08) L2546
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2703
  • §42a — addendum — wave 2 (residuals + 29-100 band): iso-MATCH ≠ real-TU bank, the memcpy→struct-assign fix, +5 levers (2026-07-10b) L2946
  • §44 — The Phase-25 cheap-Opus giant batch: 5 structural levers + the §43 extension (2026-07-11, 6 crackers over the frontier giants) L3235
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3306
  • §3-Why — 0/8 was structural, and predictable from two words L4038
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4156
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4225
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5023
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5484
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6405
  • §84 — The DERIVED-OFFSET remap bug: a hand-computed literal that encodes the DISTANCE between two per-overlay symbols, and why match_one is structurally blind to it (Phase 29 SESSION-20, func_8013D53C) L6465
  • §3-The — construct L6470
  • §91 — A structure-TRANSFER is only valid where the structure corresponds: the --like role trap (Phase 29 SESSION-21, func_8012AAAC ×137) L6835
  • §3-The — three-hypothesis trail, because two of them were wrong and the wrongness is instructive L6864
  • §129 — Post-carve, rtu_match/match_one COUNT THE JUMP TABLE AS INSTRUCTIONS; and a carve must never be committed without its owner (P30 S28, func_8013BD74) L8430
  • §129a — the target instruction count is INFLATED after a carve L8434
  • §3-The — DEFINITION-side alias is the only escape when the fleet canon disagrees on a promoting param L9463

types, signedness & load/store width (29)

  • §3-I1 — Unsigned range check: (x - lo) < (hi-lo) → addiu+sltiu L41
  • §3-I2 — Byte mask forces andi even after lbu L47
  • §3-T3 — Types L85
  • §7 — PsyQ SDK types & symbols (the library-call prerequisite) L303
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §23 — Giant func_80153E00 cracked (scalar-data CAST); BUT most giant drafts are STALE+INCOMPLETE, and a diag MUST remove artifacts (Phase 21 — byte-proven + a self-correction) L2032
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2350
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2427
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2594
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2703
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2871
  • §42b — addendum — wave 3 (Max, 2026-07-10c): THE STALE-OBJECT GATE TRAP + the read-global &-cast drift + fix L2987
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3188
  • §3-C. — TYPE- AND SHAPE-DRIVEN CODEGEN (the C type literally selects the addressing mode) L3477
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4225
  • §64 — The §20 type-lift's three laws: fold the tagged typedef, check VISIBILITY, and strip only what is TEXTUALLY IDENTICAL (lift_types.py, Phase 29 SESSION-14, 2026-07-23) L4901
  • §64a — VARIANT types: UNIQUIFY the camps, do not reconcile them (uniquify_type.py, Phase 29 SESSION-14) L4950
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5132
  • §68 — A comment-only line halted the extern scan, and the skip label blamed the type cap (Phase 29 SESSION-18) L5517
  • §73 — A def-side self-decl conflict has TWO axes: RETURN (fleet widen, T2) and PARAMS (casts at each use, T0). Diagnose which before paying for the expensive one (Phase 29 SESSION-19, func_8014F3E8 + func_8014D4C0) L5776
  • §75c — Class-B's remedy is the FULL §17a-1 PAIR (decl and call-site cast); a decl-only fix moves the error and looks like a new wall (Phase 29 SESSION-19, func_8012F14C) L5990
  • §3-The — defect this exposed: a shared type that is present but invisible L6347
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6884
  • §94 — A family sweep's 0/N is a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21, func_8016B6BC 0/137 → 137/137) L6940
  • §100 — Prefer the DRAFT-LOCAL fix: a type only one function uses belongs in its BODY, not in a shared header (Phase 29 SESSION-22, func_80175DA8 0/137 → 137/137) L7209
  • §120 — Uniquify draft-defined TYPE names; and check which of N staging sites you actually patched (Phase 29 T93) L8019
  • §3-Do — NOT "strip the duplicate typedef" — it breaks the extern that uses it L8030
  • §3-The — type-form rules L8872

declarations, prototypes & K&R (52)

  • §3-T4 — Branch polarity: invert the source condition to flip gcc's chosen branch L90
  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §13 — Add a location overlay — the canonical runbook (Phase 13; the Phase-15 fleet recipe) L1056
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • §3-The — pipeline gotcha — match_one ≠ the gate; sig_unify is MANDATORY L1421
  • §3-The — gate two-stage — sig_unify is a FALLBACK, not unconditional (gate_stage.py, §19 folded in) L2182
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2318
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2359
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2427
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2594
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2703
  • §41b — addendum — M4 "reconcile_decls" tier is ALSO a probe over-count: 0/8 mechanical (Phase 25 T7-M4, 2026-07-10) L2851
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2871
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3188
  • §51g — When the thing you are scanning has a GRAMMAR, parse the grammar (tools/cdecl.py) L3762
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4156
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4180
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4225
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4249
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4538
  • §63 — The fresh-138 DEF-SIDE blocker: fix the HEADER decl, not the draft (fix_header_decl.py, Phase 29 SESSION-13, 2026-07-23) L4870
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L4993
  • §65c — rtu_match MATCH → bank held 13/13 on self-decl, but broke on the FIRST callee-decl case L5074
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5132
  • §66a — The widest write in a pipeline is the one most likely to be UNDECLARED L5174
  • §68 — A comment-only line halted the extern scan, and the skip label blamed the type cap (Phase 29 SESSION-18) L5517
  • §73 — A def-side self-decl conflict has TWO axes: RETURN (fleet widen, T2) and PARAMS (casts at each use, T0). Diagnose which before paying for the expensive one (Phase 29 SESSION-19, func_8014F3E8 + func_8014D4C0) L5776
  • §75 — A propagation cap is usually a MINORITY-SPELLING SOURCE OVERLAY, not a wall: census the carried extern before believing the exclusion message (Phase 29 SESSION-19, func_8014F3E8 ×4 → ×138) L5859
  • §75b — A body's preamble can carry #defines, not just externs; extraction lifts only the externs (Phase 29 SESSION-19, func_80165CA0 ×3 → fleet) L5941
  • §75c — Class-B's remedy is the FULL §17a-1 PAIR (decl and call-site cast); a decl-only fix moves the error and looks like a new wall (Phase 29 SESSION-19, func_8012F14C) L5990
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6021
  • §79 — For a 0-callee giant, fingerprint by DATA symbols (§71 cannot fire); and the STACK-SLOT ORDER is a declaration-order oracle (Phase 29 SESSION-19, func_8017BF14 4,763 ins, cold start → 45/4763) L6213
  • §3-NEW — LEVER — the frame layout reads back the original declaration order L6233
  • §3-1. — The inlined-helper signature L6368
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6884
  • §95 — reconcile_tu dropped the SIBLING declarators of a multi-symbol extern line (Phase 29 SESSION-21, func_80176218) L6976
  • §96 — The same rewrite, one shape down: reconcile_tu matched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22, func_80176218 banked) L7011
  • §98 — conform_decls had three defects, and only the third needed R22 to find (Phase 29 SESSION-22, func_8014CF04) L7106
  • §99 — The narrow-param wall is a DEF-side problem with a ZERO-blast-radius fix: convert the definition to K&R (Phase 29 SESSION-22, func_80175AB8 + func_80175DA8) L7160
  • §102 — A PLUMBING verdict can MASK a DIFF; and K&R is not always a codegen change (Phase 29 SESSION-22, func_8016EC0C) L7265
  • §103 — A FILE-scope extern in a shared overlay TU is a GLOBAL constraint on every LATER function; move the DECL, not the draft (Phase 29 T48/T51, func_80135260 — the fleet-wide half) L7300
  • §104 — Two silent-skip defects in one scan: match on MASKED text, emit from the ORIGINAL (Phase 29 T53, gather_externs) L7388
  • §112 — A macro-scoped declaration only collides where the macro is INSTANTIATED (Phase 29 T67/T69, audit_header_sigs.py) L7723
  • §113 — An ARITY blocker only exists if the macro CALLS the function; an address-taken use has no call site (Phase 29 T72) L7769
  • §114 — The THIRD decl axis: a CALLEE the draft declares differently from the target TU (Phase 29 T76/T77) L7801
  • §3-Do — NOT "strip the duplicate typedef" — it breaks the extern that uses it L8030
  • §121 — Synthesise externs for macro-DEFINED callees from the macro's own definition head (Phase 29 T95) L8054
  • §3-The — declaration surface (integration, not codegen) L8931
  • §136f — Two declaration sub-cases the reconcile lane surfaced (lane now 15/15 lifetime) L9176
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9405
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9555

jump tables & switches (26)

  • §8 — rodata island (compiler jump tables) — the .data→.rodata→.data sandwich (Phase 7) L320
  • §8a — rodata island in a flat OVERLAY — the tail sandwich, per matched jr-function (Phase 26 — PoC PROVEN) L342
  • §8a-pad — a trailing .word 0x00000000 under a jtbl dlabel is .align PAD, not an entry (Phase 26 session 6, byte-proven) L380
  • §8b — MULTI-jtbl per overlay — the ld_interleave --order sandwich + the same-subseg cases (Phase 26 session 4) L404
  • §8e — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; .run/probe_jtbl/verdict.md) L530
  • §3-The — clean object-level metric (use this, not the permuter score, for jtbl/rodata functions) L844
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2802
  • §48 — The 12-core jr crack wave: the ALLOCNO-PRICING dials and the EBB rule (Phase 26 session 8, Ultracode, 9/12 MATCH first pass) L3398
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4021
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4651
  • §61c — The jtbl bank is INCREMENTALLY valid and CLEAN-INVALID (Phase 29, 2026-07-21) — the blocking finding L4706
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4826
  • §81 — Banking a jr (jump-table) function: the 3-step carve chain, and why match_one cannot see the problem (Phase 29 SESSION-19, func_8017C954) L6316
  • §88d — BANKING ORDER: run the §81 carve chain BEFORE banking, never after L6694
  • §97 — The gate's own tree hygiene: a refused carve, an unchecked recovery, and a snapshot that captured a dirty tree (Phase 29 SESSION-22) L7059
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7424
  • §125 — Split the CARVE from the BODY before calling a jr residue a wall — and measure it by SHA from a CLEAN tree (P30 SESSION-28; this section's first draft was WRONG and the method caught it) L8199
  • §126 — The carve-within-a-carve: an ADDRESS RANGE is not an OPTIMIZATION REGION (P30 T2, byte-proven end-to-end) L8257
  • §129 — Post-carve, rtu_match/match_one COUNT THE JUMP TABLE AS INSTRUCTIONS; and a carve must never be committed without its owner (P30 S28, func_8013BD74) L8430
  • §129a — the target instruction count is INFLATED after a carve L8434
  • §129b — never commit a carve whose owner is still a stub (it strands the carve) L8455
  • §130 — An INCREMENTAL build can report BYTE-IDENTICAL for a change the CLEAN build cannot even LINK (P30 S28, the jr pair) L8479
  • §131 — The jtbl OVER-SPAN: sltiu N is ground truth in BOTH directions, and the zero-word rule only guards one (P30 S28, func_80191C50) L8526
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8563
  • §132b — When the span's already-matched owner is ITSELF multi-switch: --span-rel (P30 S1, func_8014032C) L8653
  • §139 — A GATE THAT GREPS FOR VERDICTS MUST ASSERT 1:1 ACCOUNTING; and a --src filter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9584

optimisation level (-O0/-O2) (12)

  • §6 — Per-module optimization mixing — the -O0 boot module (Phase 7) L246
  • Detecting — the opt level (do this first) L254
  • Build — mechanism — per-file opt override (splat resegmentation) L288
  • §18 — Per-file -O0 split inside an overlay/blob (Phase 19 T1) L1519
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2520
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2530
  • §116 — Optimization level is a property of the FILE, not the function: read a family 0/N against the member's stub HOME (Phase 29 T79) L7870
  • §3-The — finding: opt level is per FILE, so the file's contents must be opt-HOMOGENEOUS L8272
  • §127 — The -O0 regime: the CONSTANT-OFFSET FOLD, and why -O0 needs its own idiom set (P30 T3 wave, 15 targets) L8342
  • §3-The — rest of the -O0 regime (write PLAIN C, and mean it) L8360
  • §127a — §71 (sibling-first) is the strongest -O0 lever, and it beats the index L8370
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8563

family propagation & sweeps (68)

  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §11 — Cross-binary dedup & code-sharing (Phase 11 — "one match unlocks many") L908
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • §3-The — flat-blob overlay config (what the template encodes) L1071
  • §3-THE — NON-4-ALIGNED-OVERLAY GOTCHA (≈75% of the fleet; fixed in the template + Makefile, automatic) L1079
  • §14 — Propagate a matched function across the fleet — tools/dedup_propagate.py (Phase 15) L1126
  • §19 — Scaling the toolkit waves — the recovery PIPELINE + the propagation CAP (Phase 19 T3) L1597
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-h — _exact OVER-COUNTS ×134 — verify shareability before crediting a class's "reach-134" (R14) L2170
  • Where — this leaves the reach-134 tail (cont.6 option-3, now CONFIRMED byte-backed) L2226
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2318
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2345
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2350
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2359
  • §30 — Fable5Max cracks §20/§10 "unsteerable" from the gcc SOURCE: store-vs-load is a /s aliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giant func_8014EE14 248 ins ×134) L2375
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2447
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2520
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2530
  • §40 — Structural families: the MECHANICAL symbol-remap (crack one exemplar → remap the rest, ~0 tokens) (Phase 25 T3/T7, 2026-07-08) L2546
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2594
  • §40b — The reloc-tracker blind spot: the indexed-global idiom that hid the "reach-1 tail" (Phase 26 Task 1, 2026-07-11, byte-verified V0/V1) L2627
  • §40c — The h_seq per-sibling reconcile: templating a reconcile-class crack ×134 (Phase 26 Task 8, 2026-07-12, byte-proven) L2669
  • §41c — T7-M2: the ×134 def-side-wall sweep via per-sibling RE-reconcile (Phase 25, 2026-07-10; 4,389 banks, ~0 agent tokens) L2832
  • §42 — The F-band ≤28 regalloc crack wave: register-pin/DENSITY levers beat the permuter (Phase 25 T7 F-band, 2026-07-10; Ultracode 9-worker wave, 4/9 banked byte-identical, 266 swept ×134) L2893
  • §42e — propagating a CRACK ×134: the def-finder bug + the byte-drift residual (the "remap-fail" misdiagnosis) L3114
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3188
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3291
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3306
  • §47 — The live-length SLIDER: splitting a global.c allocno-priority TIE with one zero-byte asm (Phase 26 session 8, Fable5 Max, byte-proven on func_8017BEBC 952 ins ×113) L3358
  • §49 — The LUID DIAL: a zero-byte SCHEDULING dial (the sched.c analogue of §47) — func_8017A4AC (536 ins ×134), Phase 26 session 8 L3520
  • §52 — The WALKER-FAMILY skeleton: 6 regalloc-order levers + a deeply-characterized intrinsic wall (func_80178004, 165 ins ×134; Phase 26, Fable5, 2026-07-15) L3906
  • §3-The — 6 levers (the "walker-family skeleton" — apply to the 12 siblings; levers 1-5 retire ~half the residual) L3917
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4021
  • §55c — Sizing the propagate: a TARGETED propagate is ~4 min/core, and "it's slow" was a BROKEN-TREE ARTIFACT L4134
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4156
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4180
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4225
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4249
  • §57a — Two NSD corrections + the SURGICAL-ONLY law + the honest broad-sweep yield (Phase 29, 2026-07-18) L4296
  • §59 — Three h_seq sweep-residual classes match_one/the-exemplar-bank don't reveal (Phase 29 crack-wave close, 2026-07-18) L4370
  • §3-Two — corollaries worth remembering L4443
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5023
  • §3-Giv — record order (the §70 family) L5753
  • §75 — A propagation cap is usually a MINORITY-SPELLING SOURCE OVERLAY, not a wall: census the carried extern before believing the exclusion message (Phase 29 SESSION-19, func_8014F3E8 ×4 → ×138) L5859
  • §75a — The exclusion classes, enumerated with named causes (Phase 29 SESSION-19, the 134-binary dedup_extend sweep) L5918
  • §75b — A body's preamble can carry #defines, not just externs; extraction lifts only the externs (Phase 29 SESSION-19, func_80165CA0 ×3 → fleet) L5941
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6021
  • §77 — Every extraction tool carries a NARROW hard-coded preamble set; anything outside it silently caps the body's reach. Diff the preamble before you gate. (Phase 29 SESSION-19 — three variants in one session, two different tools) L6077
  • §84 — The DERIVED-OFFSET remap bug: a hand-computed literal that encodes the DISTANCE between two per-overlay symbols, and why match_one is structurally blind to it (Phase 29 SESSION-20, func_8013D53C) L6465
  • §86 — Pinned-exemplar templatability is a PER-FAMILY property, not a per-member rate; and the §42e pin guard is now over-conservative (Phase 29 SESSION-20) L6582
  • §3-THE — LAW: all-or-nothing PER FAMILY L6593
  • §3-Why — the two live families differ from the three dead ones — the open question L6620
  • §3-The — cheap discriminator, before spending a sweep L6659
  • §89b — the parallel gate farm existed; the family path could not reach it (tools/sweep_parallel.py) L6738
  • §91 — A structure-TRANSFER is only valid where the structure corresponds: the --like role trap (Phase 29 SESSION-21, func_8012AAAC ×137) L6835
  • §94 — A family sweep's 0/N is a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21, func_8016B6BC 0/137 → 137/137) L6940
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7424
  • §107 — A lever wired into ONE gate path is a lever most families cannot reach (Phase 29 T56, func_80144090 0/136 → 136/136) L7506
  • §108 — Diagnosing a family 0/N: the four causes, and the third opt-in lever (Phase 29 T59) L7544
  • §111 — The distinct-code metric is not noisy: a family pays it only if its members are byte-VARIANT (Phase 29 T66) L7674
  • §116 — Optimization level is a property of the FILE, not the function: read a family 0/N against the member's stub HOME (Phase 29 T79) L7870
  • §123 — PROPAGATE A FAMILY WITH THE TOOL ITS TIER NEEDS: dedup_propagate is h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8109
  • §124 — A "not matched" verdict can mean the definition is there under a DIFFERENT C NAME: the asm-label alias blind spot (P30 SESSION-28, func_8016191C ×137) L8146
  • §124a — a family sweep's 0 matched-exemplar families may be a FILTER, not a wall L8191
  • §134 — MULTI-LINE BLINDNESS: one root cause, four faces, in family_remap's preamble scanner (P30 S6, 190 zero-crack families) L8704
  • §136c — SIBLING-FIRST is a DERIVATION shortcut, not just a conflict fix (the fastest route in a family wave) L9059
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9405

integration / TU plumbing (36)

  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §9.3 — Make it the build: resegment + swap + resolve (tools/psyq_integrate.py, libcd DONE) L685
  • §9.4 — Integrating a SECOND library (libgs block 6 after libcd) — multi-library gotchas L712
  • §9.5 — Integrating a WHOLE multi-block library in one call (full libgs — Phase 7 session G) L740
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2359
  • §30a — §30 generalizes to the FULL near-miss backlog (via STANDARD Opus agents, not just Fable5) + 2 more steer levers + the mechanical-integration throughput unlock (Phase 23 (a)) L2387
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2594
  • §42a — addendum — wave 2 (residuals + 29-100 band): iso-MATCH ≠ real-TU bank, the memcpy→struct-assign fix, +5 levers (2026-07-10b) L2946
  • §42c — addendum — wave 3 (Max orchestrator + CORRECTED Ultracode fan-out, 2026-07-10c): the real-TU-faithful parallel harness (rtu_match) + 7/9 crack, ZERO iso-drift L3026
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4180
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4538
  • §61a — The Task-5 wave: 11/12 MATCH, 0 banked — three DISTINCT integration walls, each now named (Phase 29, 2026-07-21) L4599
  • §63 — The fresh-138 DEF-SIDE blocker: fix the HEADER decl, not the draft (fix_header_decl.py, Phase 29 SESSION-13, 2026-07-23) L4870
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L4993
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5008
  • §65b — The escape: de-macroize the instantiation, don't touch the shared header L5038
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5111
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5132
  • §85 — The RETURN-axis fleet widen is ALL-OR-NOTHING: widening the shared header alone guarantees a conflict in the source overlay (Phase 29 SESSION-20, func_8012CC88 / func_8014D12C) L6532
  • §95 — reconcile_tu dropped the SIBLING declarators of a multi-symbol extern line (Phase 29 SESSION-21, func_80176218) L6976
  • §96 — The same rewrite, one shape down: reconcile_tu matched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22, func_80176218 banked) L7011
  • §3-Two — reconcile_tu bugs found underneath, one introduced while fixing the other L7183
  • §100 — Prefer the DRAFT-LOCAL fix: a type only one function uses belongs in its BODY, not in a shared header (Phase 29 SESSION-22, func_80175DA8 0/137 → 137/137) L7209
  • §102 — A PLUMBING verdict can MASK a DIFF; and K&R is not always a codegen change (Phase 29 SESSION-22, func_8016EC0C) L7265
  • §103 — A FILE-scope extern in a shared overlay TU is a GLOBAL constraint on every LATER function; move the DECL, not the draft (Phase 29 T48/T51, func_80135260 — the fleet-wide half) L7300
  • §109 — Conforming a definition to a shared header: fix the NAMES, then check the RETURN precondition (Phase 29 T60) L7593
  • §112 — A macro-scoped declaration only collides where the macro is INSTANTIATED (Phase 29 T67/T69, audit_header_sigs.py) L7723
  • §114 — The THIRD decl axis: a CALLEE the draft declares differently from the target TU (Phase 29 T76/T77) L7801
  • §3-The — integration idioms (these decide whether a byte-correct draft BANKS) L8797
  • §3-The — declaration surface (integration, not codegen) L8931
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9555
  • §3-The — same swallow, twice more, in the integration spine L9699

build graph, splat & the harness (97)

  • §4 — Flag/toolchain gotchas L190
  • Build — mechanism — per-file opt override (splat resegmentation) L288
  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §9 — Link real PsyQ library objects byte-exact (Phase 7 — GO proven) L613
  • §9.1 — Generalised per-object linker — tools/psyq_link.py (+ psyq_link_lib.py), 18/18 libcd byte-exact L642
  • §9.2 — Wire a library region into the build with NOLOAD — no data carving (tools/psyq_link_region.py) L666
  • §9.3 — Make it the build: resegment + swap + resolve (tools/psyq_integrate.py, libcd DONE) L685
  • §9.6 — Scaling library linking to the whole EXE (Phase 8 — 8 libs linked, 20%→50% byte-identical) L766
  • §9.7 — Binary-agnostic toolchain refactor (Phase 9) — the reusable pattern for Gen2 L802
  • §3-The — clean object-level metric (use this, not the permuter score, for jtbl/rodata functions) L844
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • Per-binary — toolchain provenance (R24) L959
  • §12 — Ultracode harvest — parallel-draft + byte-gate at scale (Phase 12, resident: 1.4%→71.7% in one session) L964
  • One-command — onboarding — tools/new_overlay.sh <SCxx> <FILE_nnn> L1062
  • §3-THE — NON-4-ALIGNED-OVERLAY GOTCHA (≈75% of the fleet; fixed in the template + Makefile, automatic) L1079
  • Fleet — build — make build-all / make check-all L1120
  • §14 — Propagate a matched function across the fleet — tools/dedup_propagate.py (Phase 15) L1126
  • §14b — Harvesting the UNMATCHED shared core — the match_one wall (Phase 15) L1192
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • §17 — The compiler-quirk wall — the matching TOOLKIT (Phase 18; gcc-2.7.2 source + byte-gated) L1376
  • §3-The — pipeline gotcha — match_one ≠ the gate; sig_unify is MANDATORY L1421
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • §19 — Scaling the toolkit waves — the recovery PIPELINE + the propagation CAP (Phase 19 T3) L1597
  • §20 — The wave-at-scale GATE CAP + residual-class verdicts (Phase 20) L1632
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-The — gate two-stage — sig_unify is a FALLBACK, not unconditional (gate_stage.py, §19 folded in) L2182
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2318
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2345
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2359
  • §29 — Reasoning-model (GLM5.2) DEF-side reconciliation idioms + the wall's hard limit (Phase 23 T10.7, tools/glm_reconcile.py) L2367
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2427
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2447
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2464
  • §37 — The T7 §G giant endgame: 6/8 cracked, meta-laws + transferable levers (Phase 24, 2026-07-07; FULL byte-verified detail + gcc-2.7.2 line cites in docs/gcc-2.7.2-map/t7g-giant-harvest.md) L2499
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2530
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2703
  • §41a — v3.1: the def-side wall was ~71% TOOL-shaped — the five measured defects + the laws that dissolve them (Phase 25 T6, Fable5, 2026-07-09) L2747
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2802
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2871
  • §42b — addendum — wave 3 (Max, 2026-07-10c): THE STALE-OBJECT GATE TRAP + the read-global &-cast drift + fix L2987
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3291
  • §51 — TOOLING INTEGRITY: the silent skip, and how to hunt it L3623
  • §51b — Why the byte-gate cannot save you L3645
  • §51f — Checklist for any new corpus-scanning tool L3748
  • §51g — When the thing you are scanning has a GRAMMAR, parse the grammar (tools/cdecl.py) L3762
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4021
  • §55 — Core-crack wave levers + the GATE-ORCHESTRATION law (Phase 29 T3, 13-agent ultracode wave, 2026-07-17) L4086
  • §55b — THE GATE-ORCHESTRATION LAW (3 traps, ~3.5h lost; all recovered, 0 data lost) L4115
  • §55c — Sizing the propagate: a TARGETED propagate is ~4 min/core, and "it's slow" was a BROKEN-TREE ARTIFACT L4134
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4156
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4249
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4538
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4651
  • §61d — The undo was eating the tree: two tools, one defect, invisible to the byte-gate (Phase 29, 2026-07-22) L4772
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4826
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5008
  • §65d — Existing-ladder baseline, measured (do this before building a recovery stage) L5084
  • §65e — Two oracles, and the disagreement is the finding (R34 in practice) L5094
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5111
  • §66b — A metric parsed out of another tool's prose goes NULL silently when the label changes L5193
  • §67a — Run the symbol-set guard BEFORE you pay for a gate (tools/symcheck.py, Phase 29 SESSION-18) L5398
  • §77 — Every extraction tool carries a NARROW hard-coded preamble set; anything outside it silently caps the body's reach. Diff the preamble before you gate. (Phase 29 SESSION-19 — three variants in one session, two different tools) L6077
  • §3-The — CANDIDATE gate and the REAL gate need DIFFERENT preambles — keep the difference out of the bank L6117
  • §79 — For a 0-callee giant, fingerprint by DATA symbols (§71 cannot fire); and the STACK-SLOT ORDER is a declaration-order oracle (Phase 29 SESSION-19, func_8017BF14 4,763 ins, cold start → 45/4763) L6213
  • §82 — Two source-shape oracles from behemoth #6: a duplicated addiu $aN,$sp,K across a jal means the block was INLINED, and scalar-vs-aggregate decides WHEN a stack slot is allocated (Phase 29 SESSION-19, func_8017C730 1,061 ins) L6363
  • §3-2. — Scalar vs aggregate decides when the slot is allocated L6382
  • §3-Why — it survived every candidate gate L6488
  • §3-THE — FIX IS MECHANICAL — the tool already holds the answer L6503
  • §87 — match_one COMPILES but never LINKS, so an unresolvable data symbol reads as MATCH; and stored drafts go STALE against the tree (Phase 29 SESSION-20) L6626
  • §88f — the missing rung: a RELOCATION gate between match_one and the binary L6711
  • §89a — MEASURE the write set; do not assert its tier (tools/blast_radius.py) L6725
  • §89b — the parallel gate farm existed; the family path could not reach it (tools/sweep_parallel.py) L6738
  • §90 — Five tool-integrity laws from one session, each of which changed an answer (Phase 29 SESSION-21, 2026-07-27) L6759
  • §90a — A comparison tool MUST share its reference oracle's index space, exactly L6765
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6884
  • §97 — The gate's own tree hygiene: a refused carve, an unchecked recovery, and a snapshot that captured a dirty tree (Phase 29 SESSION-22) L7059
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7424
  • §107 — A lever wired into ONE gate path is a lever most families cannot reach (Phase 29 T56, func_80144090 0/136 → 136/136) L7506
  • §3-Why — it survived so long: a MASKED oracle will MATCH a wrong symbol L7946
  • §122 — GATE RAW BEFORE TRANSFORMING; the undo belongs to the WRITER, as a per-edit journal (P30 T0a, 2026-07-30) L8077
  • §123 — PROPAGATE A FAMILY WITH THE TOOL ITS TIER NEEDS: dedup_propagate is h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8109
  • §126a — a bare except: continue around a coverage-asserting oracle re-creates the silent skip (P30 S28) L8310
  • §130 — An INCREMENTAL build can report BYTE-IDENTICAL for a change the CLEAN build cannot even LINK (P30 S28, the jr pair) L8479
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8563
  • §133 — The DEFAULT-FILTER class: three times in one session, a tool silently answered a narrower question than the one asked (P30 S1–S3) L8678
  • §134 — MULTI-LINE BLINDNESS: one root cause, four faces, in family_remap's preamble scanner (P30 S6, 190 zero-crack families) L8704
  • §3-The — splitting/merging rules (each closed a residual, byte-gated) L8846
  • §137a — A gate verdict has a TIMESTAMP; re-check it against the draft's mtime L9376
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9405
  • §134 — again, in a second tool — and the waiter rule corrected L9516
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9555
  • §139 — A GATE THAT GREPS FOR VERDICTS MUST ASSERT 1:1 ACCOUNTING; and a --src filter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9584
  • §140 — A METRIC IS NOT A MEASUREMENT UNTIL IT IS REPRODUCIBLE FROM THE COMMITTED TREE (P30 S1e: a phantom regression that gated the session's best lever) L9650

process, measurement & doctrine (54)

  • §8e — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; .run/probe_jtbl/verdict.md) L530
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • Per-binary — toolchain provenance (R24) L959
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §23 — Giant func_80153E00 cracked (scalar-data CAST); BUT most giant drafts are STALE+INCOMPLETE, and a diag MUST remove artifacts (Phase 21 — byte-proven + a self-correction) L2032
  • §3-h — _exact OVER-COUNTS ×134 — verify shareability before crediting a class's "reach-134" (R14) L2170
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2345
  • §31-triage — R17 applies to CODEGEN residuals, never to a compile ERROR (Phase 26 session 7, Drew asked) L2686
  • §41a — v3.1: the def-side wall was ~71% TOOL-shaped — the five measured defects + the laws that dissolve them (Phase 25 T6, Fable5, 2026-07-09) L2747
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2802
  • §41b — addendum — M4 "reconcile_decls" tier is ALSO a probe over-count: 0/8 mechanical (Phase 25 T7-M4, 2026-07-10) L2851
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4021
  • §3-The — meta-lesson (R35, and why this one is expensive) L4071
  • §55 — Core-crack wave levers + the GATE-ORCHESTRATION law (Phase 29 T3, 13-agent ultracode wave, 2026-07-17) L4086
  • §55b — THE GATE-ORCHESTRATION LAW (3 traps, ~3.5h lost; all recovered, 0 data lost) L4115
  • §57a — Two NSD corrections + the SURGICAL-ONLY law + the honest broad-sweep yield (Phase 29, 2026-07-18) L4296
  • §58 — match_one MATCH ≠ BANK: the four blind spots + the crack-wave reconcile-before-bank law (Phase 29 crack-wave, 2026-07-18) L4336
  • §60 — Classify the residual, don't rank it: the deterministic residual→class classifier and what it measured about the backlog (Phase 29 Task-13A, 2026-07-21) L4400
  • What — it measured — the whole open backlog, byte-grounded L4424
  • §3-The — parallel-probe race this surfaced L4456
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4651
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4826
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L4993
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5008
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5023
  • §65d — Existing-ladder baseline, measured (do this before building a recovery stage) L5084
  • §65e — Two oracles, and the disagreement is the finding (R34 in practice) L5094
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5111
  • §66c — Before a wave, verify the FUEL exists; an "already attempted" set built from the wrong directory lies in BOTH directions L5210
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5484
  • §3-The — honest fix was source-level and cheap L5743
  • §3-The — residual, and the honest read L6253
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6405
  • Scope — , measured (do not over-generalise — §80) L6511
  • §3-Two — ladder lessons banked with it L6521
  • §3-Do — the WHOLE axis in one edit, then R22 once L6560
  • §3-THE — LAW: all-or-nothing PER FAMILY L6593
  • §88b — the slti literal-position law (extends §78 to comparisons) L6679
  • §88e — a wrong diagnosis, refuted properly (the model for how to treat an inherited lever) L6701
  • §89a — MEASURE the write set; do not assert its tier (tools/blast_radius.py) L6725
  • §90d — Do not measure a live wave's drafts (§87 in real time) L6803
  • §98 — conform_decls had three defects, and only the third needed R22 to find (Phase 29 SESSION-22, func_8014CF04) L7106
  • §106 — Persist the MEASUREMENT, derive the POLICY: a stored route let a stale file out-vote the live table (Phase 29 T54, residual_class._ROUTE) L7463
  • §125 — Split the CARVE from the BODY before calling a jr residue a wall — and measure it by SHA from a CLEAN tree (P30 SESSION-28; this section's first draft was WRONG and the method caught it) L8199
  • §3-The — meta-lesson L8250
  • Wave — economics (measured, for the next batch's sizing) L8943
  • §136b — A prior wave's "genuine byte-DIFF" verdict is NOT reliable evidence (4 of 4 refuted) L9023
  • §136g — When the index points at the WRONG lever: two byte-refuted routings (func_801863B4) L9201
  • §136h — CORRECTION: the zero-crack pool does NOT "refill with cheap work" (my error, byte-measured) L9230
  • §136j — The failure MIX flips with function size (measured across four bands, one session) L9292
  • Rank — the lane by measured concentration, not by class count L9471
  • §140 — A METRIC IS NOT A MEASUREMENT UNTIL IT IS REPRODUCIBLE FROM THE COMMITTED TREE (P30 S1e: a phantom regression that gated the session's best lever) L9650

(unbucketed — title matched no symptom vocabulary) (115)

  • §3-How — to use this L30
  • §1 — Idiom catalog (asm pattern → C that produces it) L39
  • §3-I3 — Division by a constant → magic multiply L54
  • §3-I4 — Runtime (variable) division → divu + zero-check break (NEEDS --expand-div) L60
  • §2 — Writing matching C (what makes gcc emit X) L69
  • §3a — Escalation TIER above the permuter — web-research the compiler internals (HIGH VALUE, proven) L128
  • §3b — §31-directed permuter mutation — bias the search over the class's levers (Phase 24 T5) L147
  • Residual — B — a return <const> materialised late / merged instead of distributed per-site L867
  • §3-The — A→B→C per-overlay workflow L1091
  • Dedup-credit — (§11) for overlays — two shapes L1108
  • §14a — The fleet bulk run (Phase 15 — --auto-from, 947 REAL → 74,527; 3.82% → 22.14% in one pass) L1169
  • §14d — Deterministic recovery beats agent waves on the hard tail (Phase 15, the final-session finding) L1269
  • §14e — Two hard-tail dead-ends (Phase 15 — documented so they aren't re-attempted) L1298
  • §3-The — STEERABLE idioms (byte-confirmed this phase) L1404
  • Strategic — conclusion — the match-% lever post-research L1435
  • §3-NEW — / CONFIRMED residual classes (this session) L1660
  • Operational — gotchas (cost real time) L1681
  • What — WORKED — the Phase-20 reusable wins L1689
  • §21 — wave-distilled idioms (Phase 21) L1752
  • §26 — The cheap close=0 recovery lever is EXHAUSTED; idiom_loop --assess was DOUBLY inflated (Phase 21, cont.7) L2192
  • §3-The — _a close=0 recovery banks 0/20 — same def-side wall as MAIN (0/40) L2198
  • §27 — Giant matching recipe (Phase 21 cont.7b — validated on func_80176D94, 152 ins) L2252
  • §28a — decomp.wiki GCC patterns worth trying on BFM giants (decomp.wiki/compilers/GCC, raw at decompals/decompedia; PS1-applicable subset) L2338
  • §31 — THE gcc-2.7.2 CODEGEN MAP: pass → residual → C-lever catalog (Phase 23; 4 Fable5 agents read the compiler source) L2395
  • §36 — Fable5 giant-crack levers (Phase 24 T7 Fable5 batch; accumulates as each lands — full RTL dumps in .run/t7/fable/) L2480
  • §42d — addendum — wave 4 (rtu_match fan-out over the mapped frontier, 2026-07-10c): 24/26 MATCH, +5 durable levers L3075
  • §3-B. — THE EBB RULE — the general form of §46-L2 L3461
  • §3-E. — Meta L3511
  • §50 — Refinements that BOUND §47/§48 (from the func_80135EB0 wall, 21→6; Phase 26 session 8) L3569
  • §51a — The bug class L3629
  • §51c — THE METHOD (do not audit by reading the regex) L3655
  • §51d — THE LAWS L3670
  • §51e — The false-wall pipeline (why this is not just hygiene) L3732
  • §3-Why — the wall is (probably) intrinsic L3938
  • §3-The — case L4026
  • §3-The — rule L4055
  • §55a — New byte-proven levers (each from a banked or near draft) L4091
  • §60a — What the first DIRECTED grinder run exposed (Phase 29 Task-13B, 2026-07-21) L4465
  • §60b — The plateau autopsy's verdict: a partial drift is a WRONG DRAFT, not a missing transform (Phase 29 Task-13B close, 2026-07-21) L4503
  • §66 — Exercise a banking driver's SUCCESS path before pointing it at a wave: the free re-bank test (Phase 29 SESSION-17, 2026-07-24) L5152
  • §66d-2 — Two operational sharp edges L5282
  • §66d-3 — Read the ILS per-cycle SERIES, not its final best: a repeated score and a still-falling one look identical in a summary line and mean opposite things L5293
  • §67 — The arg-copy PLACEMENT lever: launder a parameter into a fresh pseudo AT the statement where the target's copy lands (Phase 29 SESSION-18, func_8014D820 25 → 16) L5308
  • §66d-4 — "ILS converged" means converged FOR THAT WEIGHT PROFILE, not a floor (amends §66d-3; Phase 29 SESSION-18) L5431
  • §69 — How to attack a behemoth: map it, don't draft it (Phase 29 SESSION-18, func_80183814, 5,122 ins) L5562
  • What — is left, and what is byte-recorded as SPENT L5759
  • §3-The — mechanism, with citations L6030
  • §3-Two — diagnosis traps this function proved L6057
  • Practice — Practice L6067
  • §3-The — drift was an allocation decision, not missing code L6173
  • §3-The — economics L6204
  • §71 — has a blind spot, and this is it L6219
  • §3-The — flagged "#1 move" LOST — and why the failure is informative L6295
  • §78 — 's attribution primitive, run and reproduced L6305
  • Cold-start — economics, now complete L6311
  • Also — reproduced on this function L6394
  • §3-And — the banking footnote (§75a class A, one line) L6398
  • §83a — READ THE HEADLINE NUMBER CORRECTLY: a LENGTH drift makes match_one's count meaningless L6412
  • §83b — THE LEVER: find the parameterised REPEAT before decoding case-by-case L6420
  • §83e — §80 vindicated again, on the same day it was written L6459
  • §3-The — conflict L6537
  • §3-THE — FAILURE MODE — widening only engine_core.h is worse than not starting L6545
  • §3-The — precondition, and how to check it in one grep L6552
  • Reading — , for the next person L6569
  • §3-The — guard refuses a class that largely works L6584
  • §3-The — blindness ladder, now complete — FOUR classes match_one cannot see L6642
  • Consequence — for the backlog ledger L6652
  • §88 — cross_jump will not merge a common suffix containing a CALL; and §78 is scoped to ORDERED comparisons only (Phase 29 SESSION-20, the behemoth close-out) L6667
  • §88a — repeated CALL-shaped blocks are left UNMERGED; call-free tails are merged for you L6672
  • §89 — Two throughput rules the project already had written down and was not following (Phase 29 SESSION-20) L6719
  • §3-The — standing sequence L6751
  • §90b — "Byte-neutral" is not "wanted": undo on the SUCCESS path too L6782
  • §90c — A library-callable function must FAIL CLOSED on an unconfigured module L6792
  • §90e — An agent's CONCLUSION and its EVIDENCE fail independently — re-derive the premise, not the fix L6811
  • §93 — set -o pipefail attributes a pipeline failure to the LAST stage, not the failing one (Phase 29 SESSION-21, func_8014D820) L6915
  • §101 — The STALE DEFAULT class: a guard whose cause was removed is a silent skip wearing a safety label (Phase 29 SESSION-22, three instances in one session) L7238
  • §110 — A unit must define exactly ONE function, and "ends in ;" does not tell you which line defines it (Phase 29 T65) L7633
  • §115 — A func_XXXXXXXX predicate rots by design: the same name-form assumption in THREE places (Phase 29 T78) L7843
  • §3-The — fix moves the DEFINITION, not the stub — and here is why the obvious shortcut fails L7888
  • §117 — Spell the sibling's symbol from the SIBLING's address, not the exemplar's kind (Phase 29 T82) L7919
  • §118 — Ordinal (positional) immediate resolution: compare C tokens to the DIFFERING asm uses (Phase 29 T87) L7956
  • §119 — Two levers on the SAME axis, opposite directions: test the off-diagonal (Phase 29 T89) L7990
  • §3-The — wiring trap that cost two attempts L8036
  • §3-The — method (keep this) L8206
  • §3-The — instrument rules that make its answer trustworthy (this is where I failed) L8216
  • §3-The — corrected results (each SHA-verified, from a clean tree, restore re-verified) L8231
  • §3-The — instrument trap that hid it (and it is §124's shape again) L8283
  • §3-The — mechanics L8292
  • §3-The — idiom they kept re-deriving: the constant-offset fold L8349
  • §127b — the knowledge was in a SOURCE COMMENT, not the cookbook L8379
  • §128 — A raw NUL in C source makes grep SILENTLY SKIP the file (P30 S28, 137 files) L8386
  • §128a — a negative control must corrupt a SCRATCH COPY, never the tracked file L8418
  • §3-The — real blocker underneath, for the record L8470
  • §3-The — diagnostic ladder that finally located it (reusable) L8516
  • Defect — 1 — a pre-§8e MERGED DOUBLE is not a single-table predecessor L8572
  • Defect — 2 — as writes a corpse and nothing deletes it L8590
  • §3-The — fingerprint, and the 30-second ladder that found it L8600
  • §3-The — transferable rule L8621
  • §132a — --like is for a sibling with NO record; against one that HAS a record it over-derives (P30 S29, ov_SC07_010) L8628
  • §135 — Six byte-verified gcc-2.7.2 idioms from the P30 S6f-h waves (and the two-lane wave shape that found them) L8758
  • §3-The — codegen idioms L8763
  • §3-The — wave shape that produced these L8812
  • §136 — The LOCAL-VARIABLE lever: how many C locals, at what scope (P30 wave 4a, 25 byte-verified banks) L8830
  • §136a — Blocker capture: classify on the OUTPUT, never on the exit status L8966
  • §136d — Four gcc-2.7.2 levers the redraft lane found (each closed a residual no other lever moved) L9084
  • §136e — §136c's PRECONDITION, and two more symptom keys (wave 4b batch 3) L9128
  • §136i — The drafter model LADDER: Haiku → Sonnet → Opus → Fable5 (Drew, 2026-08-03) L9260
  • §3-The — triage, cheapest first L9411
  • THREE — carry variants hide in one "CARRY-FIXABLE" bucket — and they need different fixes L9480
  • STEP — 0 of sibling-first: grep src/ for a distinctive LITERAL from the .s L9536
  • §3-The — generalisation — three corollaries worth more than the bug L9616
  • §3-And — the inverse-lookup trap, same session L9633
  • §3-The — three-line proof (do this before diagnosing any metric movement) L9670
  • §3-The — two instrument defects it exposed L9679
  • §3-Two — wrong mechanisms I chased first, and why they were wrong L9710

All sections, in order

  • §3-How — to use this L30
  • §1 — Idiom catalog (asm pattern → C that produces it) L39
  • §3-I1 — Unsigned range check: (x - lo) < (hi-lo) → addiu+sltiu L41
  • §3-I2 — Byte mask forces andi even after lbu L47
  • §3-I3 — Division by a constant → magic multiply L54
  • §3-I4 — Runtime (variable) division → divu + zero-check break (NEEDS --expand-div) L60
  • §2 — Writing matching C (what makes gcc emit X) L69
  • §3-T1 — Loop pointer: top-of-body for addu induction, not constant-folded addiu L71
  • §3-T2 — Source statement order drives instruction scheduling L78
  • §3-T3 — Types L85
  • §3-T4 — Branch polarity: invert the source condition to flip gcc's chosen branch L90
  • §3 — When a diff is pure scheduling → decomp-permuter (harness built, Phase 6) L107
  • §3a — Escalation TIER above the permuter — web-research the compiler internals (HIGH VALUE, proven) L128
  • §3b — §31-directed permuter mutation — bias the search over the class's levers (Phase 24 T5) L147
  • §4 — Flag/toolchain gotchas L190
  • §5 — Known hard-residual classes (instruction-identical, one byte-exact blocker) L199
  • §5a — Cross-jump tail-merge — gcc collapses two byte-identical blocks the original kept separate (FIX FOUND) L211
  • §6 — Per-module optimization mixing — the -O0 boot module (Phase 7) L246
  • Detecting — the opt level (do this first) L254
  • Build — mechanism — per-file opt override (splat resegmentation) L288
  • §7 — PsyQ SDK types & symbols (the library-call prerequisite) L303
  • §8 — rodata island (compiler jump tables) — the .data→.rodata→.data sandwich (Phase 7) L320
  • §8a — rodata island in a flat OVERLAY — the tail sandwich, per matched jr-function (Phase 26 — PoC PROVEN) L342
  • §8a-pad — a trailing .word 0x00000000 under a jtbl dlabel is .align PAD, not an entry (Phase 26 session 6, byte-proven) L380
  • §8b — MULTI-jtbl per overlay — the ld_interleave --order sandwich + the same-subseg cases (Phase 26 session 4) L404
  • §8c — Splitting a TU means rebuilding its DECLARATION ENVIRONMENT, not moving text (Phase 26 session 6) L437
  • §8d — Templating a body INTO a TU must not CHANGE its declaration environment — demote the carried data externs (Phase 26 session 8, byte-proven on func_8015AE2C ×133) L483
  • §8e — The jtbl ALIGNMENT LAW + the pad-spec filter — multi-table .rodata spans (Phase 29, byte-proven; .run/probe_jtbl/verdict.md) L530
  • §9 — Link real PsyQ library objects byte-exact (Phase 7 — GO proven) L613
  • §9.1 — Generalised per-object linker — tools/psyq_link.py (+ psyq_link_lib.py), 18/18 libcd byte-exact L642
  • §9.2 — Wire a library region into the build with NOLOAD — no data carving (tools/psyq_link_region.py) L666
  • §9.3 — Make it the build: resegment + swap + resolve (tools/psyq_integrate.py, libcd DONE) L685
  • §9.4 — Integrating a SECOND library (libgs block 6 after libcd) — multi-library gotchas L712
  • §9.5 — Integrating a WHOLE multi-block library in one call (full libgs — Phase 7 session G) L740
  • §9.6 — Scaling library linking to the whole EXE (Phase 8 — 8 libs linked, 20%→50% byte-identical) L766
  • §9.7 — Binary-agnostic toolchain refactor (Phase 9) — the reusable pattern for Gen2 L802
  • §10 — Closing the regalloc/scheduling hard tail by hand (LZSS, Phase 7 session F — the full close) L835
  • §3-The — clean object-level metric (use this, not the permuter score, for jtbl/rodata functions) L844
  • Residual — A — commutative |/&/+ result lands in the wrong source-operand register L856
  • Residual — B — a return <const> materialised late / merged instead of distributed per-site L867
  • §11 — Cross-binary dedup & code-sharing (Phase 11 — "one match unlocks many") L908
  • §3-The — mechanism: game-code dedup is SOURCE-LEVEL, not an object swap (R-D1, the key lesson) L926
  • Per-binary — toolchain provenance (R24) L959
  • §12 — Ultracode harvest — parallel-draft + byte-gate at scale (Phase 12, resident: 1.4%→71.7% in one session) L964
  • §13 — Add a location overlay — the canonical runbook (Phase 13; the Phase-15 fleet recipe) L1056
  • One-command — onboarding — tools/new_overlay.sh <SCxx> <FILE_nnn> L1062
  • §3-The — flat-blob overlay config (what the template encodes) L1071
  • §3-THE — NON-4-ALIGNED-OVERLAY GOTCHA (≈75% of the fleet; fixed in the template + Makefile, automatic) L1079
  • §3-The — A→B→C per-overlay workflow L1091
  • Dedup-credit — (§11) for overlays — two shapes L1108
  • Fleet — build — make build-all / make check-all L1120
  • §14 — Propagate a matched function across the fleet — tools/dedup_propagate.py (Phase 15) L1126
  • §14a — The fleet bulk run (Phase 15 — --auto-from, 947 REAL → 74,527; 3.82% → 22.14% in one pass) L1169
  • §14b — Harvesting the UNMATCHED shared core — the match_one wall (Phase 15) L1192
  • §14c — Callee-signature-aware harvest — breaking the extern-type-conflict wall (Phase 15, T6) L1213
  • §14d — Deterministic recovery beats agent waves on the hard tail (Phase 15, the final-session finding) L1269
  • §14e — Two hard-tail dead-ends (Phase 15 — documented so they aren't re-attempted) L1298
  • §15 — Struct-heavy shared-core pipeline (Phase 16) — empirical determinations (S0) L1313
  • §16 — Guided hand-matching the struct-heavy core (Phase 17 — beats the §15 brute-force) L1335
  • §17 — The compiler-quirk wall — the matching TOOLKIT (Phase 18; gcc-2.7.2 source + byte-gated) L1376
  • Register-allocation — ORDER (call-crossing $s0/$s1 swap) → FORCE it with register pins (byte-proven) L1384
  • §3-The — STEERABLE idioms (byte-confirmed this phase) L1404
  • §3-The — pipeline gotcha — match_one ≠ the gate; sig_unify is MANDATORY L1421
  • §3-The — LOOSE-TYPING wall is real for narrow params (Phase 16, reconfirmed) L1428
  • Strategic — conclusion — the match-% lever post-research L1435
  • §17a — The TOOLKIT at WAVE scale (Phase-18 Step-3b/Step-1 — measured) + the pipeline-integration gotchas L1445
  • §18 — Per-file -O0 split inside an overlay/blob (Phase 19 T1) L1519
  • §19 — Scaling the toolkit waves — the recovery PIPELINE + the propagation CAP (Phase 19 T3) L1597
  • §20 — The wave-at-scale GATE CAP + residual-class verdicts (Phase 20) L1632
  • §3-THE — CAP: at this tail the match_one→gate gap is the LOOSE-TYPING CALL-GRAPH wall (not cheap plumbing) L1637
  • Diagnostic — lesson: a failed in-TU build leaves a STALE .o L1654
  • §3-NEW — / CONFIRMED residual classes (this session) L1660
  • Operational — gotchas (cost real time) L1681
  • What — WORKED — the Phase-20 reusable wins L1689
  • Phase-20 — RESOLUTION — tools/cast_call_sites.py BUILT + the cap re-diagnosed (R14, byte-proven) L1701
  • §21 — wave-distilled idioms (Phase 21) L1752
  • §22 — DEF-side loose-typing recovery + grinder blacklist (Phase 21) L2005
  • §23 — Giant func_80153E00 cracked (scalar-data CAST); BUT most giant drafts are STALE+INCOMPLETE, and a diag MUST remove artifacts (Phase 21 — byte-proven + a self-correction) L2032
  • §24 — The ov_SC01_077_a.c split-file vein: split-aware propagation, but loose-typing-gated (Phase 21) L2085
  • §25 — The "schedule" class is mostly COALESCING (pin-crackable), not scheduling; + the gate two-stage + h_exact over-counts ×134 (Phase 21, cont.6) L2132
  • §3-The — crack: the residual was gcc-2.7.2 COPY-COALESCING, not the instruction scheduler L2137
  • §3-The — genuine scheduler — rank_for_schedule (sched.c), for when it IS scheduling L2153
  • §3-The — genuine schedule WALLS (do NOT re-grind — stub) L2162
  • §3-h — _exact OVER-COUNTS ×134 — verify shareability before crediting a class's "reach-134" (R14) L2170
  • §3-The — gate two-stage — sig_unify is a FALLBACK, not unconditional (gate_stage.py, §19 folded in) L2182
  • §26 — The cheap close=0 recovery lever is EXHAUSTED; idiom_loop --assess was DOUBLY inflated (Phase 21, cont.7) L2192
  • §3-The — _a close=0 recovery banks 0/20 — same def-side wall as MAIN (0/40) L2198
  • Where — this leaves the reach-134 tail (cont.6 option-3, now CONFIRMED byte-backed) L2226
  • §27 — Giant matching recipe (Phase 21 cont.7b — validated on func_80176D94, 152 ins) L2252
  • §28 — Banking a "close=0 gate-rejected" giant: the canonical-extern recovery (Phase 22 T1, byte-proven on func_8015126C ×134) L2318
  • §28a — decomp.wiki GCC patterns worth trying on BFM giants (decomp.wiki/compilers/GCC, raw at decompals/decompedia; PS1-applicable subset) L2338
  • §28c — The close=0 recovery is NOT fully exhausted (§26 corrected, R14); + the dedup_propagate registry-skip recovery (Phase 22 T2) L2345
  • §28b — The struct-walled close=0 giant (§28 case #3) IS bankable: the engine_types.h type-lift (Phase 22 T2, byte-proven on func_80156B74 ×134) L2350
  • §28d — The "macro-extern-injection" lever: freeing reach-134 inline matches dedup_propagate skips as "not self-contained" (Phase 23, tools/inject_capped_externs.py) L2359
  • §29 — Reasoning-model (GLM5.2) DEF-side reconciliation idioms + the wall's hard limit (Phase 23 T10.7, tools/glm_reconcile.py) L2367
  • §30 — Fable5Max cracks §20/§10 "unsteerable" from the gcc SOURCE: store-vs-load is a /s aliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giant func_8014EE14 248 ins ×134) L2375
  • §30a — §30 generalizes to the FULL near-miss backlog (via STANDARD Opus agents, not just Fable5) + 2 more steer levers + the mechanical-integration throughput unlock (Phase 23 (a)) L2387
  • §31 — THE gcc-2.7.2 CODEGEN MAP: pass → residual → C-lever catalog (Phase 23; 4 Fable5 agents read the compiler source) L2395
  • §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on func_80129CF8 191 ins, match_one MATCH; transferable to the 6 sibling giants) L2415
  • §33 — Automating the giant decl-reconcile: tools/reconcile_decls.py (the DATA analog of §20's cast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven on func_80129CF8) L2427
  • §34 — The func_80138ED0 giant crack: gcc-2.7.2's 3-qty sort bug + the zero-byte asm allocation toolkit + the giv-init fence (Phase 24 T5; Opus→close=21, Fable5→MATCH ×134) L2447
  • §35 — The region-a sibling-giant harvest: difficulty ≠ $s-reg count (it's global-array hoisting) + the banking recipe + new loop idioms (Phase 24 T7, 5 parallel Opus-Max agents) L2464
  • §36 — Fable5 giant-crack levers (Phase 24 T7 Fable5 batch; accumulates as each lands — full RTL dumps in .run/t7/fable/) L2480
  • §37 — The T7 §G giant endgame: 6/8 cracked, meta-laws + transferable levers (Phase 24, 2026-07-07; FULL byte-verified detail + gcc-2.7.2 line cites in docs/gcc-2.7.2-map/t7g-giant-harvest.md) L2499
  • §38 — The WHALE func_80144B9C (770 ins): the -O0 struct-assign memcpy idiom + the -O0 reach-134 ×134 rollout (Phase 24 T7 §G, cheap Opus — no Fable5, no calls.c) L2520
  • §39 — The ×1→×134 giant-endgame: propagate a matched -O2 giant via the NATIVE DEFINE-macro path (Phase 24 T7 §G close, 2026-07-08) L2530
  • §40 — Structural families: the MECHANICAL symbol-remap (crack one exemplar → remap the rest, ~0 tokens) (Phase 25 T3/T7, 2026-07-08) L2546
  • §40a — The DECL-RECONCILE pass (type-lift so remapped drafts compile in the sibling TU) (Phase 25 T7.2, 2026-07-08) L2594
  • §40b — The reloc-tracker blind spot: the indexed-global idiom that hid the "reach-1 tail" (Phase 26 Task 1, 2026-07-11, byte-verified V0/V1) L2627
  • §40c — The h_seq per-sibling reconcile: templating a reconcile-class crack ×134 (Phase 26 Task 8, 2026-07-12, byte-proven) L2669
  • §31-triage — R17 applies to CODEGEN residuals, never to a compile ERROR (Phase 26 session 7, Drew asked) L2686
  • §41 — The DEF-SIDE canonical-sig wall: mechanically banking a drafted giant past conflicting types (Phase 25 T5b batch-2, 2026-07-09; tools/canon_sig_reconcile.py, byte-proven on func_8013B274) L2703
  • §41a — v3.1: the def-side wall was ~71% TOOL-shaped — the five measured defects + the laws that dissolve them (Phase 25 T6, Fable5, 2026-07-09) L2747
  • §41b — T7 execution: the object-only probe OVER-counts BANKABLE by two link/rodata classes (Phase 25 T7-M1, 2026-07-10) L2802
  • §41c — T7-M2: the ×134 def-side-wall sweep via per-sibling RE-reconcile (Phase 25, 2026-07-10; 4,389 banks, ~0 agent tokens) L2832
  • §41b — addendum — M4 "reconcile_decls" tier is ALSO a probe over-count: 0/8 mechanical (Phase 25 T7-M4, 2026-07-10) L2851
  • §41d — void→s32 is NOT always byte-neutral: gate the RAW draft FIRST (Phase 26 session 6, byte-proven) L2871
  • §42 — The F-band ≤28 regalloc crack wave: register-pin/DENSITY levers beat the permuter (Phase 25 T7 F-band, 2026-07-10; Ultracode 9-worker wave, 4/9 banked byte-identical, 266 swept ×134) L2893
  • §42a — addendum — wave 2 (residuals + 29-100 band): iso-MATCH ≠ real-TU bank, the memcpy→struct-assign fix, +5 levers (2026-07-10b) L2946
  • §42b — addendum — wave 3 (Max, 2026-07-10c): THE STALE-OBJECT GATE TRAP + the read-global &-cast drift + fix L2987
  • §42c — addendum — wave 3 (Max orchestrator + CORRECTED Ultracode fan-out, 2026-07-10c): the real-TU-faithful parallel harness (rtu_match) + 7/9 crack, ZERO iso-drift L3026
  • §42d — addendum — wave 4 (rtu_match fan-out over the mapped frontier, 2026-07-10c): 24/26 MATCH, +5 durable levers L3075
  • §42e — propagating a CRACK ×134: the def-finder bug + the byte-drift residual (the "remap-fail" misdiagnosis) L3114
  • §43 — The K&R s16-param definition DISSOLVES the "narrow-param wall" for by-value register args (Phase 25 task A, Fable5 crack of the 369-ins giant func_80166994 ×134, 2026-07-11) L3188
  • §44 — The Phase-25 cheap-Opus giant batch: 5 structural levers + the §43 extension (2026-07-11, 6 crackers over the frontier giants) L3235
  • §45 — The flagship func_80133CD4 crack (399 ins ×134): the merged-variable permutation-breaker + the 1-death local-alloc gate (Phase 25 task A giant escalation, Fable5 gdb-on-cc1, 2026-07-11) L3291
  • §46 — The func_80178D40 crack (890 ins ×134, the heaviest core in the game): four LOOP-STRUCTURE levers cheap-Opus found by reading loop.c/jump.c/cse.c (Phase 26 session 8, 2026-07-13) L3306
  • §47 — The live-length SLIDER: splitting a global.c allocno-priority TIE with one zero-byte asm (Phase 26 session 8, Fable5 Max, byte-proven on func_8017BEBC 952 ins ×113) L3358
  • §48 — The 12-core jr crack wave: the ALLOCNO-PRICING dials and the EBB rule (Phase 26 session 8, Ultracode, 9/12 MATCH first pass) L3398
  • §3-A. — ALLOCNO-PRICING DIALS — move a value into the register you want, byte-neutrally L3406
  • §3-A4 — SINK THE CONSUMER CALL INTO THE ARMS (the inverse of A1; func_8016AB6C, byte-proven) L3437
  • §3-B. — THE EBB RULE — the general form of §46-L2 L3461
  • §3-C. — TYPE- AND SHAPE-DRIVEN CODEGEN (the C type literally selects the addressing mode) L3477
  • §3-D. — THE CROSS-JUMP RATCHET (the sharpest new trap — func_80131340 L-C) L3501
  • §3-E. — Meta L3511
  • §49 — The LUID DIAL: a zero-byte SCHEDULING dial (the sched.c analogue of §47) — func_8017A4AC (536 ins ×134), Phase 26 session 8 L3520
  • §50 — Refinements that BOUND §47/§48 (from the func_80135EB0 wall, 21→6; Phase 26 session 8) L3569
  • §51 — TOOLING INTEGRITY: the silent skip, and how to hunt it L3623
  • §51a — The bug class L3629
  • §51b — Why the byte-gate cannot save you L3645
  • §51c — THE METHOD (do not audit by reading the regex) L3655
  • §51d — THE LAWS L3670
  • §51e — The false-wall pipeline (why this is not just hygiene) L3732
  • §51f — Checklist for any new corpus-scanning tool L3748
  • §51g — When the thing you are scanning has a GRAMMAR, parse the grammar (tools/cdecl.py) L3762
  • §52 — The WALKER-FAMILY skeleton: 6 regalloc-order levers + a deeply-characterized intrinsic wall (func_80178004, 165 ins ×134; Phase 26, Fable5, 2026-07-15) L3906
  • §3-The — 6 levers (the "walker-family skeleton" — apply to the 12 siblings; levers 1-5 retire ~half the residual) L3917
  • §3-Why — the wall is (probably) intrinsic L3938
  • §52a — The regalloc sibling wave: new levers + two new wall classes (cheap-Opus applying §52, 2026-07-15) L3952
  • §52b — Sibling wave 2: more de-pin levers, a third wall class, and the match_one→whole-binary gap at scale (2026-07-15) L3990
  • §53 — SWEEP A FAMILY WITH THE TOOL ITS EXEMPLAR NEEDED: the jr/switch carve, and how omitting it manufactured the "families don't template" doctrine (Phase 28 T1, 2026-07-15) L4021
  • §3-The — case L4026
  • §3-Why — 0/8 was structural, and predictable from two words L4038
  • §3-The — rule L4055
  • §3-The — meta-lesson (R35, and why this one is expensive) L4071
  • §55 — Core-crack wave levers + the GATE-ORCHESTRATION law (Phase 29 T3, 13-agent ultracode wave, 2026-07-17) L4086
  • §55a — New byte-proven levers (each from a banked or near draft) L4091
  • §55b — THE GATE-ORCHESTRATION LAW (3 traps, ~3.5h lost; all recovered, 0 data lost) L4115
  • §55c — Sizing the propagate: a TARGETED propagate is ~4 min/core, and "it's slow" was a BROKEN-TREE ARTIFACT L4134
  • §54 — --fix-def-sig: the member's CANONICAL DECLARATION is a build step too (tiny-IMM mega-pools, +4,801, Phase 29 T6, 2026-07-16) L4156
  • §56 — Banking a hand-drafted GIANT into its exemplar TU: self-contained draft vs live-TU decls, 4 reconciliation tactics (func_8013FAF8, 312 ins ×138, Phase 29 T4, 2026-07-17) L4180
  • §56b — PROPAGATING an h_seq giant: the exemplar's externs MUST be fleet-canonical, not the draft's types L4225
  • §57 — The SELF-decl normalize: the sibling's OWN caller declares the templated fn divergently (the third §17a-1 direction; tools/normalize_self_decls.py, func_801670E4 ×137, Phase 29, 2026-07-18) L4249
  • §57a — Two NSD corrections + the SURGICAL-ONLY law + the honest broad-sweep yield (Phase 29, 2026-07-18) L4296
  • §58 — match_one MATCH ≠ BANK: the four blind spots + the crack-wave reconcile-before-bank law (Phase 29 crack-wave, 2026-07-18) L4336
  • §59 — Three h_seq sweep-residual classes match_one/the-exemplar-bank don't reveal (Phase 29 crack-wave close, 2026-07-18) L4370
  • §60 — Classify the residual, don't rank it: the deterministic residual→class classifier and what it measured about the backlog (Phase 29 Task-13A, 2026-07-21) L4400
  • What — it measured — the whole open backlog, byte-grounded L4424
  • §3-Two — corollaries worth remembering L4443
  • §3-The — parallel-probe race this surfaced L4456
  • §60a — What the first DIRECTED grinder run exposed (Phase 29 Task-13B, 2026-07-21) L4465
  • §60b — The plateau autopsy's verdict: a partial drift is a WRONG DRAFT, not a missing transform (Phase 29 Task-13B close, 2026-07-21) L4503
  • §61 — Task 14: the gate ladder's missing stage is the ARITY pre-pass, and it is TU-side not draft-side (Phase 29, 2026-07-21) L4538
  • §61a — The Task-5 wave: 11/12 MATCH, 0 banked — three DISTINCT integration walls, each now named (Phase 29, 2026-07-21) L4599
  • §61b — The jtbl gate stage: built, and the ORDERING law it exposed (Phase 29 Task-14 stage 4, 2026-07-21) L4651
  • §61c — The jtbl bank is INCREMENTALLY valid and CLEAN-INVALID (Phase 29, 2026-07-21) — the blocking finding L4706
  • §61d — The undo was eating the tree: two tools, one defect, invisible to the byte-gate (Phase 29, 2026-07-22) L4772
  • §62 — The jtbl RECONCILE must also follow the carve: the post-carve draft reconcile (harvest_verify._jtbl_reconcile, Phase 29 SESSION-11, 2026-07-22) L4826
  • §63 — The fresh-138 DEF-SIDE blocker: fix the HEADER decl, not the draft (fix_header_decl.py, Phase 29 SESSION-13, 2026-07-23) L4870
  • §64 — The §20 type-lift's three laws: fold the tagged typedef, check VISIBILITY, and strip only what is TEXTUALLY IDENTICAL (lift_types.py, Phase 29 SESSION-14, 2026-07-23) L4901
  • §64a — VARIANT types: UNIQUIFY the camps, do not reconcile them (uniquify_type.py, Phase 29 SESSION-14) L4950
  • §63 — UPDATE (Phase 29 SESSION-14) — fix_header_decl's "SAFE" verdict is FLEET-BLIND; it MUST be R22-validated L4993
  • §65 — The stranded-draft recovery: BLAST-RADIUS TIERS, and the per-overlay de-macroize that refutes §20's DEF-conflict wall (tools/demacroize.py + tools/blocker_probe.py, Phase 29 SESSION-16, 2026-07-24) L5008
  • §65a — The blast-radius taxonomy (makes §61's law structural instead of remembered) L5023
  • §65b — The escape: de-macroize the instantiation, don't touch the shared header L5038
  • §65c — rtu_match MATCH → bank held 13/13 on self-decl, but broke on the FIRST callee-decl case L5074
  • §65d — Existing-ladder baseline, measured (do this before building a recovery stage) L5084
  • §65e — Two oracles, and the disagreement is the finding (R34 in practice) L5094
  • §65f — The de-macroize lever's BOUNDARY, measured: byte-neutral 14 times of 15, and the 15th is why the gate exists L5111
  • §65g — Where the cheap levers STOP: the local-type and in-TU-self-decl classes did not yield L5132
  • §66 — Exercise a banking driver's SUCCESS path before pointing it at a wave: the free re-bank test (Phase 29 SESSION-17, 2026-07-24) L5152
  • §66a — The widest write in a pipeline is the one most likely to be UNDECLARED L5174
  • §66b — A metric parsed out of another tool's prose goes NULL silently when the label changes L5193
  • §66c — Before a wave, verify the FUEL exists; an "already attempted" set built from the wrong directory lies in BOTH directions L5210
  • §66d — The permuter⇄reader loop: alternate a random search with a byte-verified idiom, and let residual_class decide whose turn it is (Phase 29 SESSION-17) L5238
  • §66d-1 — What transfers between giants is the LOOP, not the PIN L5273
  • §66d-2 — Two operational sharp edges L5282
  • §66d-3 — Read the ILS per-cycle SERIES, not its final best: a repeated score and a still-falling one look identical in a summary line and mean opposite things L5293
  • §67 — The arg-copy PLACEMENT lever: launder a parameter into a fresh pseudo AT the statement where the target's copy lands (Phase 29 SESSION-18, func_8014D820 25 → 16) L5308
  • §67a — Run the symbol-set guard BEFORE you pay for a gate (tools/symcheck.py, Phase 29 SESSION-18) L5398
  • §66d-4 — "ILS converged" means converged FOR THAT WEIGHT PROFILE, not a floor (amends §66d-3; Phase 29 SESSION-18) L5431
  • §66d-5 — residual_class's "structural ⇒ permuter CPU is waste" is WRONG for schedule permutations (measured, Phase 29 SESSION-18) L5484
  • §68 — A comment-only line halted the extern scan, and the skip label blamed the type cap (Phase 29 SESSION-18) L5517
  • §69 — How to attack a behemoth: map it, don't draft it (Phase 29 SESSION-18, func_80183814, 5,122 ins) L5562
  • §70 — The giv-init base register: walk the PARAMETER, not a copy of it (Phase 29 SESSION-18, func_801777BC) L5612
  • §71 — Before mapping a giant, look for an already-matched SIBLING beside it (Phase 29 SESSION-18, func_8017D960, 3,338 ins) L5653
  • §72 — A register __asm__ pin is a PREFERENCE, not a reservation (Phase 29 SESSION-18, func_8017F510) L5719
  • §3-The — honest fix was source-level and cheap L5743
  • §3-Giv — record order (the §70 family) L5753
  • What — is left, and what is byte-recorded as SPENT L5759
  • §73 — A def-side self-decl conflict has TWO axes: RETURN (fleet widen, T2) and PARAMS (casts at each use, T0). Diagnose which before paying for the expensive one (Phase 29 SESSION-19, func_8014F3E8 + func_8014D4C0) L5776
  • §74 — Auditing a pinned draft: the §72 hazard is CALLER-SAVED pins spanning a call, and only the disassembly can tell you (Phase 29 SESSION-19, func_8017D960 b2, 5 pins) L5815
  • §75 — A propagation cap is usually a MINORITY-SPELLING SOURCE OVERLAY, not a wall: census the carried extern before believing the exclusion message (Phase 29 SESSION-19, func_8014F3E8 ×4 → ×138) L5859
  • §75a — The exclusion classes, enumerated with named causes (Phase 29 SESSION-19, the 134-binary dedup_extend sweep) L5918
  • §75b — A body's preamble can carry #defines, not just externs; extraction lifts only the externs (Phase 29 SESSION-19, func_80165CA0 ×3 → fleet) L5941
  • §75c — Class-B's remedy is the FULL §17a-1 PAIR (decl and call-site cast); a decl-only fix moves the error and looks like a new wall (Phase 29 SESSION-19, func_8012F14C) L5990
  • §76 — The allocno CLASS (local vs global) is the dominant regalloc lever, and C reaches it ONLY through declaration scope and variable reuse (Phase 29 SESSION-19, behemoth #3 func_8017F510 1,511 ins, 97 → MATCH, pin-free) L6021
  • §3-The — mechanism, with citations L6030
  • §3-The — attribution primitive (use this before calling anything a scheduling residual) L6050
  • §3-Two — diagnosis traps this function proved L6057
  • Practice — Practice L6067
  • §77 — Every extraction tool carries a NARROW hard-coded preamble set; anything outside it silently caps the body's reach. Diff the preamble before you gate. (Phase 29 SESSION-19 — three variants in one session, two different tools) L6077
  • §3-The — CANDIDATE gate and the REAL gate need DIFFERENT preambles — keep the difference out of the bank L6117
  • §78 — A LENGTH drift can be a register grant in disguise; and fold never leaves a literal first in an | chain (Phase 29 SESSION-19, behemoth #2 func_8017D960 3,338 ins, 1806 → 0, pin-free) L6167
  • §3-The — drift was an allocation decision, not missing code L6173
  • §3-The — economics L6204
  • §79 — For a 0-callee giant, fingerprint by DATA symbols (§71 cannot fire); and the STACK-SLOT ORDER is a declaration-order oracle (Phase 29 SESSION-19, func_8017BF14 4,763 ins, cold start → 45/4763) L6213
  • §71 — has a blind spot, and this is it L6219
  • §3-NEW — LEVER — the frame layout reads back the original declaration order L6233
  • §76 — confirmed at scale, and a pin nuance L6244
  • §3-The — residual, and the honest read L6253
  • §80 — A do-not-re-buy entry is scoped to its BASE, not to the function; and the pin's hidden cost is an unconditional qty_phys_sugg (Phase 29 SESSION-19, func_8017BF14 45 → 0) L6263
  • §3-The — pin's hidden cost, with the citation L6284
  • §3-The — flagged "#1 move" LOST — and why the failure is informative L6295
  • §78 — 's attribution primitive, run and reproduced L6305
  • Cold-start — economics, now complete L6311
  • §81 — Banking a jr (jump-table) function: the 3-step carve chain, and why match_one cannot see the problem (Phase 29 SESSION-19, func_8017C954) L6316
  • §3-The — defect this exposed: a shared type that is present but invisible L6347
  • §82 — Two source-shape oracles from behemoth #6: a duplicated addiu $aN,$sp,K across a jal means the block was INLINED, and scalar-vs-aggregate decides WHEN a stack slot is allocated (Phase 29 SESSION-19, func_8017C730 1,061 ins) L6363
  • §3-1. — The inlined-helper signature L6368
  • §3-2. — Scalar vs aggregate decides when the slot is allocated L6382
  • Also — reproduced on this function L6394
  • §3-And — the banking footnote (§75a class A, one line) L6398
  • §83 — The parameterised-repeat law, the spill-area trap, and why a per-case edit cannot move a per-case symptom (Phase 29 SESSION-20, func_80183814 5,122 ins, cold-ish start → 36 structural / 99.3%) L6405
  • §83a — READ THE HEADLINE NUMBER CORRECTLY: a LENGTH drift makes match_one's count meaningless L6412
  • §83b — THE LEVER: find the parameterised REPEAT before decoding case-by-case L6420
  • §83c — TRAP: a "dead local" in a prior draft may be gcc's OWN spill area L6438
  • §83d — CSE's quantity budget is WHOLE-FUNCTION, so a local rewrite cannot fix a local symptom L6445
  • §83e — §80 vindicated again, on the same day it was written L6459
  • §84 — The DERIVED-OFFSET remap bug: a hand-computed literal that encodes the DISTANCE between two per-overlay symbols, and why match_one is structurally blind to it (Phase 29 SESSION-20, func_8013D53C) L6465
  • §3-The — construct L6470
  • §3-Why — it survived every candidate gate L6488
  • §3-THE — FIX IS MECHANICAL — the tool already holds the answer L6503
  • Scope — , measured (do not over-generalise — §80) L6511
  • §3-Two — ladder lessons banked with it L6521
  • §85 — The RETURN-axis fleet widen is ALL-OR-NOTHING: widening the shared header alone guarantees a conflict in the source overlay (Phase 29 SESSION-20, func_8012CC88 / func_8014D12C) L6532
  • §3-The — conflict L6537
  • §3-THE — FAILURE MODE — widening only engine_core.h is worse than not starting L6545
  • §3-The — precondition, and how to check it in one grep L6552
  • §3-Do — the WHOLE axis in one edit, then R22 once L6560
  • Reading — , for the next person L6569
  • §86 — Pinned-exemplar templatability is a PER-FAMILY property, not a per-member rate; and the §42e pin guard is now over-conservative (Phase 29 SESSION-20) L6582
  • §3-The — guard refuses a class that largely works L6584
  • §3-THE — LAW: all-or-nothing PER FAMILY L6593
  • §3-Why — the two live families differ from the three dead ones — the open question L6620
  • §87 — match_one COMPILES but never LINKS, so an unresolvable data symbol reads as MATCH; and stored drafts go STALE against the tree (Phase 29 SESSION-20) L6626
  • §3-The — blindness ladder, now complete — FOUR classes match_one cannot see L6642
  • Consequence — for the backlog ledger L6652
  • §3-The — cheap discriminator, before spending a sweep L6659
  • §88 — cross_jump will not merge a common suffix containing a CALL; and §78 is scoped to ORDERED comparisons only (Phase 29 SESSION-20, the behemoth close-out) L6667
  • §88a — repeated CALL-shaped blocks are left UNMERGED; call-free tails are merged for you L6672
  • §88b — the slti literal-position law (extends §78 to comparisons) L6679
  • §88d — BANKING ORDER: run the §81 carve chain BEFORE banking, never after L6694
  • §88e — a wrong diagnosis, refuted properly (the model for how to treat an inherited lever) L6701
  • §88f — the missing rung: a RELOCATION gate between match_one and the binary L6711
  • §89 — Two throughput rules the project already had written down and was not following (Phase 29 SESSION-20) L6719
  • §89a — MEASURE the write set; do not assert its tier (tools/blast_radius.py) L6725
  • §89b — the parallel gate farm existed; the family path could not reach it (tools/sweep_parallel.py) L6738
  • §3-The — standing sequence L6751
  • §90 — Five tool-integrity laws from one session, each of which changed an answer (Phase 29 SESSION-21, 2026-07-27) L6759
  • §90a — A comparison tool MUST share its reference oracle's index space, exactly L6765
  • §90b — "Byte-neutral" is not "wanted": undo on the SUCCESS path too L6782
  • §90c — A library-callable function must FAIL CLOSED on an unconfigured module L6792
  • §90d — Do not measure a live wave's drafts (§87 in real time) L6803
  • §90e — An agent's CONCLUSION and its EVIDENCE fail independently — re-derive the premise, not the fix L6811
  • §91 — A structure-TRANSFER is only valid where the structure corresponds: the --like role trap (Phase 29 SESSION-21, func_8012AAAC ×137) L6835
  • §3-The — three-hypothesis trail, because two of them were wrong and the wrongness is instructive L6864
  • §92 — Conforming a DECLARATION: pointer changes are caller-neutral, scalar-WIDTH changes are not (Phase 29 SESSION-21, tools/conform_decls.py) L6884
  • §93 — set -o pipefail attributes a pipeline failure to the LAST stage, not the failing one (Phase 29 SESSION-21, func_8014D820) L6915
  • §94 — A family sweep's 0/N is a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21, func_8016B6BC 0/137 → 137/137) L6940
  • §95 — reconcile_tu dropped the SIBLING declarators of a multi-symbol extern line (Phase 29 SESSION-21, func_80176218) L6976
  • §96 — The same rewrite, one shape down: reconcile_tu matched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22, func_80176218 banked) L7011
  • §97 — The gate's own tree hygiene: a refused carve, an unchecked recovery, and a snapshot that captured a dirty tree (Phase 29 SESSION-22) L7059
  • §98 — conform_decls had three defects, and only the third needed R22 to find (Phase 29 SESSION-22, func_8014CF04) L7106
  • §99 — The narrow-param wall is a DEF-side problem with a ZERO-blast-radius fix: convert the definition to K&R (Phase 29 SESSION-22, func_80175AB8 + func_80175DA8) L7160
  • §3-Two — reconcile_tu bugs found underneath, one introduced while fixing the other L7183
  • §100 — Prefer the DRAFT-LOCAL fix: a type only one function uses belongs in its BODY, not in a shared header (Phase 29 SESSION-22, func_80175DA8 0/137 → 137/137) L7209
  • §101 — The STALE DEFAULT class: a guard whose cause was removed is a silent skip wearing a safety label (Phase 29 SESSION-22, three instances in one session) L7238
  • §102 — A PLUMBING verdict can MASK a DIFF; and K&R is not always a codegen change (Phase 29 SESSION-22, func_8016EC0C) L7265
  • §103 — A FILE-scope extern in a shared overlay TU is a GLOBAL constraint on every LATER function; move the DECL, not the draft (Phase 29 T48/T51, func_80135260 — the fleet-wide half) L7300
  • §104 — Two silent-skip defects in one scan: match on MASKED text, emit from the ORIGINAL (Phase 29 T53, gather_externs) L7388
  • §105 — A gate's revert must survive an EXCEPTION, not just a failure (Phase 29 T53, jtbl_family_bank) L7424
  • §106 — Persist the MEASUREMENT, derive the POLICY: a stored route let a stale file out-vote the live table (Phase 29 T54, residual_class._ROUTE) L7463
  • §107 — A lever wired into ONE gate path is a lever most families cannot reach (Phase 29 T56, func_80144090 0/136 → 136/136) L7506
  • §108 — Diagnosing a family 0/N: the four causes, and the third opt-in lever (Phase 29 T59) L7544
  • §109 — Conforming a definition to a shared header: fix the NAMES, then check the RETURN precondition (Phase 29 T60) L7593
  • §110 — A unit must define exactly ONE function, and "ends in ;" does not tell you which line defines it (Phase 29 T65) L7633
  • §111 — The distinct-code metric is not noisy: a family pays it only if its members are byte-VARIANT (Phase 29 T66) L7674
  • §112 — A macro-scoped declaration only collides where the macro is INSTANTIATED (Phase 29 T67/T69, audit_header_sigs.py) L7723
  • §113 — An ARITY blocker only exists if the macro CALLS the function; an address-taken use has no call site (Phase 29 T72) L7769
  • §114 — The THIRD decl axis: a CALLEE the draft declares differently from the target TU (Phase 29 T76/T77) L7801
  • §115 — A func_XXXXXXXX predicate rots by design: the same name-form assumption in THREE places (Phase 29 T78) L7843
  • §116 — Optimization level is a property of the FILE, not the function: read a family 0/N against the member's stub HOME (Phase 29 T79) L7870
  • §3-The — fix moves the DEFINITION, not the stub — and here is why the obvious shortcut fails L7888
  • §117 — Spell the sibling's symbol from the SIBLING's address, not the exemplar's kind (Phase 29 T82) L7919
  • §3-Why — it survived so long: a MASKED oracle will MATCH a wrong symbol L7946
  • §118 — Ordinal (positional) immediate resolution: compare C tokens to the DIFFERING asm uses (Phase 29 T87) L7956
  • §119 — Two levers on the SAME axis, opposite directions: test the off-diagonal (Phase 29 T89) L7990
  • §120 — Uniquify draft-defined TYPE names; and check which of N staging sites you actually patched (Phase 29 T93) L8019
  • §3-Do — NOT "strip the duplicate typedef" — it breaks the extern that uses it L8030
  • §3-The — wiring trap that cost two attempts L8036
  • §121 — Synthesise externs for macro-DEFINED callees from the macro's own definition head (Phase 29 T95) L8054
  • §122 — GATE RAW BEFORE TRANSFORMING; the undo belongs to the WRITER, as a per-edit journal (P30 T0a, 2026-07-30) L8077
  • §123 — PROPAGATE A FAMILY WITH THE TOOL ITS TIER NEEDS: dedup_propagate is h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8109
  • §124 — A "not matched" verdict can mean the definition is there under a DIFFERENT C NAME: the asm-label alias blind spot (P30 SESSION-28, func_8016191C ×137) L8146
  • §124a — a family sweep's 0 matched-exemplar families may be a FILTER, not a wall L8191
  • §125 — Split the CARVE from the BODY before calling a jr residue a wall — and measure it by SHA from a CLEAN tree (P30 SESSION-28; this section's first draft was WRONG and the method caught it) L8199
  • §3-The — method (keep this) L8206
  • §3-The — instrument rules that make its answer trustworthy (this is where I failed) L8216
  • §3-The — corrected results (each SHA-verified, from a clean tree, restore re-verified) L8231
  • §3-Two — further notes worth keeping L8241
  • §3-The — meta-lesson L8250
  • §126 — The carve-within-a-carve: an ADDRESS RANGE is not an OPTIMIZATION REGION (P30 T2, byte-proven end-to-end) L8257
  • §3-The — finding: opt level is per FILE, so the file's contents must be opt-HOMOGENEOUS L8272
  • §3-The — instrument trap that hid it (and it is §124's shape again) L8283
  • §3-The — mechanics L8292
  • §126a — a bare except: continue around a coverage-asserting oracle re-creates the silent skip (P30 S28) L8310
  • §127 — The -O0 regime: the CONSTANT-OFFSET FOLD, and why -O0 needs its own idiom set (P30 T3 wave, 15 targets) L8342
  • §3-The — idiom they kept re-deriving: the constant-offset fold L8349
  • §3-The — rest of the -O0 regime (write PLAIN C, and mean it) L8360
  • §127a — §71 (sibling-first) is the strongest -O0 lever, and it beats the index L8370
  • §127b — the knowledge was in a SOURCE COMMENT, not the cookbook L8379
  • §128 — A raw NUL in C source makes grep SILENTLY SKIP the file (P30 S28, 137 files) L8386
  • §128a — a negative control must corrupt a SCRATCH COPY, never the tracked file L8418
  • §129 — Post-carve, rtu_match/match_one COUNT THE JUMP TABLE AS INSTRUCTIONS; and a carve must never be committed without its owner (P30 S28, func_8013BD74) L8430
  • §129a — the target instruction count is INFLATED after a carve L8434
  • §129b — never commit a carve whose owner is still a stub (it strands the carve) L8455
  • §3-The — real blocker underneath, for the record L8470
  • §130 — An INCREMENTAL build can report BYTE-IDENTICAL for a change the CLEAN build cannot even LINK (P30 S28, the jr pair) L8479
  • §3-The — diagnostic ladder that finally located it (reusable) L8516
  • §131 — The jtbl OVER-SPAN: sltiu N is ground truth in BOTH directions, and the zero-word rule only guards one (P30 S28, func_80191C50) L8526
  • §132 — The JR-PAIR-IN-ONE-O0-OBJECT "wall" was TWO instrument defects: a merged-double span the carve could not see, and a truncated object no rule deleted (P30 S29, func_8013B83C + func_8013BD74) L8563
  • Defect — 1 — a pre-§8e MERGED DOUBLE is not a single-table predecessor L8572
  • Defect — 2 — as writes a corpse and nothing deletes it L8590
  • §3-The — fingerprint, and the 30-second ladder that found it L8600
  • §3-The — transferable rule L8621
  • §132a — --like is for a sibling with NO record; against one that HAS a record it over-derives (P30 S29, ov_SC07_010) L8628
  • §132b — When the span's already-matched owner is ITSELF multi-switch: --span-rel (P30 S1, func_8014032C) L8653
  • §133 — The DEFAULT-FILTER class: three times in one session, a tool silently answered a narrower question than the one asked (P30 S1–S3) L8678
  • §134 — MULTI-LINE BLINDNESS: one root cause, four faces, in family_remap's preamble scanner (P30 S6, 190 zero-crack families) L8704
  • §135 — Six byte-verified gcc-2.7.2 idioms from the P30 S6f-h waves (and the two-lane wave shape that found them) L8758
  • §3-The — codegen idioms L8763
  • §3-The — integration idioms (these decide whether a byte-correct draft BANKS) L8797
  • §3-The — wave shape that produced these L8812
  • §136 — The LOCAL-VARIABLE lever: how many C locals, at what scope (P30 wave 4a, 25 byte-verified banks) L8830
  • §3-The — splitting/merging rules (each closed a residual, byte-gated) L8846
  • §3-The — type-form rules L8872
  • §3-The — scheduling rules (refining §135-2 and §135-4) L8902
  • §3-The — declaration surface (integration, not codegen) L8931
  • Wave — economics (measured, for the next batch's sizing) L8943
  • §136a — Blocker capture: classify on the OUTPUT, never on the exit status L8966
  • §136b — A prior wave's "genuine byte-DIFF" verdict is NOT reliable evidence (4 of 4 refuted) L9023
  • §136c — SIBLING-FIRST is a DERIVATION shortcut, not just a conflict fix (the fastest route in a family wave) L9059
  • §136d — Four gcc-2.7.2 levers the redraft lane found (each closed a residual no other lever moved) L9084
  • §136e — §136c's PRECONDITION, and two more symptom keys (wave 4b batch 3) L9128
  • §136f — Two declaration sub-cases the reconcile lane surfaced (lane now 15/15 lifetime) L9176
  • §136g — When the index points at the WRONG lever: two byte-refuted routings (func_801863B4) L9201
  • §136h — CORRECTION: the zero-crack pool does NOT "refill with cheap work" (my error, byte-measured) L9230
  • §136i — The drafter model LADDER: Haiku → Sonnet → Opus → Fable5 (Drew, 2026-08-03) L9260
  • §136j — The failure MIX flips with function size (measured across four bands, one session) L9292
  • §137 — REGALLOC-PERM is a TWO-COMPILE ARITHMETIC PROBLEM, not a permuter job L9334
  • §137a — A gate verdict has a TIMESTAMP; re-check it against the draft's mtime L9376
  • §138 — The propagation lanes: a gate refusal is a DECLARATION, and which lever you owe depends on blast radius L9405
  • §3-The — triage, cheapest first L9411
  • §3-The — DEFINITION-side alias is the only escape when the fleet canon disagrees on a promoting param L9463
  • Rank — the lane by measured concentration, not by class count L9471
  • THREE — carry variants hide in one "CARRY-FIXABLE" bucket — and they need different fixes L9480
  • §134 — again, in a second tool — and the waiter rule corrected L9516
  • STEP — 0 of sibling-first: grep src/ for a distinctive LITERAL from the .s L9536
  • Reconciling — a gate-refused draft: which way you edit depends on WHERE the TU's decl is L9555
  • §139 — A GATE THAT GREPS FOR VERDICTS MUST ASSERT 1:1 ACCOUNTING; and a --src filter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9584
  • §3-The — generalisation — three corollaries worth more than the bug L9616
  • §3-And — the inverse-lookup trap, same session L9633
  • §140 — A METRIC IS NOT A MEASUREMENT UNTIL IT IS REPRODUCIBLE FROM THE COMMITTED TREE (P30 S1e: a phantom regression that gated the session's best lever) L9650
  • §3-The — three-line proof (do this before diagnosing any metric movement) L9670
  • §3-The — two instrument defects it exposed L9679
  • §3-The — same swallow, twice more, in the integration spine L9699
  • §3-Two — wrong mechanisms I chased first, and why they were wrong L9710