W1b — the 3 targets whose agents died on API rate limiting, retried with cookbook §160 in the prompt: func_801EFBF4 (reach 12), func_801EFDC8 (12), func_8018CC40 (10, jr). 3/3 confirmed by an independent verifier, all banked, R22 clean-fleet 213 passed / 0 failed of 213. func_8018CC40 failed the first gate with `too many arguments to function func_80178970` — which its own crack agent had PREDICTED in its report, naming the §17a-1 remedy. Dropped the draft's empty-paren externs and cast 6 call sites instead; banked. Read the agent's integration notes before diagnosing a gate failure — it has already seen the TU. Cookbook §161a-c (index 469 sections): §161a case 0: break; is LOAD-BEARING when a jump table is indexed from zero. The natural case 1..5 makes gcc-2.7.2 pick minval=1, emit `addiu $v1,-1`, and shift every table index — 58 of 77 mismatched on a byte-perfect body. Tell: the table's FIRST entry points at the function's own end address. Family-wide (10 members). §161b aliasing a parameter into a local can force a SECOND callee-saved register (+8 frame, +3 ins) even when uses are mutually exclusive. Suspect it before reaching for register pins. §161c loose-prototype engine helpers: don't fight the TU's (void) decl, cast at the call site. G2 — THE MAIN EXPERIMENT. family_hseq excludes main as "structurally barren — zero h_exact overlap". True and irrelevant: an h_exact claim guarding an h_seq tool. There is not even a sig-main target — main had never been signed for this pipeline. Signed it (2,002 fns, seeded from splat boundaries via corpus.stubs rather than --bootstrap, which glues functions around jtbl dispatch and would have corrupted the hashes under test). Result: main is ~85% singleton work, not 100%. internal h_seq families (>=2): 207 families / 748 fns / 11,537 ins (13.7%) shapes shared with the fleet: 161 fns / 1,346 ins (1.6%) genuine x1 remainder: ~71,034 ins (84.6%) IMMEDIATELY ACTIONABLE: 44 classes / 151 main functions / 1,239 ins already have a matched exemplar in the fleet — free propagation, invisible only because main is not in the map. Long-term: 748 of main's 2,002 functions (37%) are templatable once one exemplar per family is cracked, which refutes "2,002 independent cracks" as the planning assumption for the 79k-ins tail. OPEN, deliberately not done unilaterally: adding a sig-main target and dropping main's exclusion from family_hseq.load() changes a fleet-shared oracle every targeting tool reads. Needs Drew's call.
151 KiB
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.mdis ~716 KB / 469 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 /
beqwhere the target hasbne(match_one prints this class as BRANCH-POLARITY) → §3-T4 (invert the source condition) + §32.2; for a trailingreturn 0vs an early return see the shared-ret0 note (cookbook L1344) conflicting typeson 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 viaregister 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 offp, 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*)&symforce_regs the address; the asm-label alias (§37) keeps the direct%lomem form andi $x,0xFFfolded away in your output but present in the target → §1/I2 + §12 name the family; if the prescribed& 0xffat the use folds, hold the masked byte in a u16 local so only a QI->HI extend survives (P30 wave 2, byte-tested)sltiwhere the target hassltiu(or vice versa) → §35 — a separate SIGNED int copy of an unsigned load keepsslti; chained bounds get range-folded, so write each bound as its ownif/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_phalts the eager filler on an asm insn voidvss32return — is promoting it byte-neutral? → NO, not always: §41d (byte-proven; avoidbody with noreturngains an instruction). P30 adds a second mechanism: ans32return keeps$v0live-out and blocks dbr from filling a loop-back delay slotmatch_onesays SIZE-MISMATCH/short and the target has a frame-pointer prologue (addu $fp,$sp,$zero/21F0A003) → The target is -O0. Pass--o0tomatch_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 throughmatch_one(24 runs ≈ 2 min) instead of reasoning aboutrank_for_schedule - a two-constant
if/elseor?: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 ones32local 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,0xffd8in yours vsaddiu $v0,-0x28in the target → a NEGATIVE constant stored into an unsigned narrow local materialises via zero-extendedori; make the local signed to getaddiu. It does NOT cost you thelhuon readback — gcc-2.7.2 emitslhufor any plain HImode load feeding ansh(P30 wave 4, byte-tested)- LENGTH-DRIFT −1 and the missing instruction is a reg-to-reg COPY in a
jaldelay slot → a narrow prototyped param (plain ANSIs16 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
nopright after an inline block move → anlwl/lwr+swl/swrpair 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_1copy VANISHED (target addresses every field off a copy at a join block) → cse.cmake_regs_eqvkeeps 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>.cseed 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 (4)
- §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_80131340L-C) L3501 - §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10058
instruction scheduling (18)
- §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_80129CF8191 ins, match_one MATCH; transferable to the 6 sibling giants) L2415 - §34 — The
func_80138ED0giant 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
- Consequence — for the family (a real scheduling decision) L10085
- §148 — The loop.c hoisting THRESHOLD is arithmetic you can compute, and the
?:clamp that folds to MIN_EXPR (P30 S42,func_8017C6F4, 947 ins) L10135 - §3-A. —
move_movableshoists iffthreshold × savings × lifetime ≥ insn_count— and you can read it L10141
register allocation & pins (42)
- §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.csplit-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_80133CD4crack (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_8017BEBC952 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_8017D960b2, 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_8017F5101,511 ins, 97 → MATCH, pin-free) L6021 - §78 — A LENGTH drift can be a register grant in disguise; and
foldnever leaves a literal first in an|chain (Phase 29 SESSION-19, behemoth #2func_8017D9603,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_8017BF1445 → 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_801838145,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
- §3-B. — A
?:on MEMORY operands costs ~16 bytes of invisible frame; on REGISTER operands, zero L10047 - §3-D. — A lone
$t8/$t9in the target is RELOAD SCRATCH — reproduce the spill, don't pin the register L10063 - §3-C. — A zero-byte ALLOCNO-PRIORITY slider L10174
- §150 — A register ROTATION across symmetric blocks is VARIABLE-IDENTITY evidence, not an allocator tie (P30 S43,
func_8017C6F4, 947 ins ×4) L10302 - §152 — BYTE SIZE is the family key that name- and h_seq-grouping both miss (P30 S43, the 0xECC family: 1 crack → 12 overlays → 11,364 ins) L10408
- §155 — hi/lo literal scanning MUST track base registers (S45) L10548
- §158 — The RANGE-EXTENDER: a fourth zero-emission asm lever completes the allocno toolkit (P30 S46 tier-3,
func_8017CE58, 733 ins) L10702 - Bonus — facts worth keeping L10747
- §156 — THE PREFERENCE-DONOR MERGE: cross-region variable reuse is what fills a0-a3, and a call-arg use in ONE region steers the fill in ALL of them (P30 S46 tier-3,
func_80186E24, 611 ins: 236-off "S11 regalloc-order" → MATCH, zero new pins) L10762
CSE / redundancy / rematerialization (3)
- §46 — The
func_80178D40crack (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
- §153 — THE ADDRESS-REMATERIALISATION LAUNDER: a third zero-emission asm lever (P30 S43,
func_8018D98C, 710 ins) L10456
loops & induction variables (9)
- §3-T1 — Loop pointer: top-of-body for
adduinduction, not constant-foldedaddiuL71 - §34 — The
func_80138ED0giant 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_80178D40crack (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_classdecide 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 - §145 — Three loop/combine levers from the S40 wave-2 drafters (16/16 match_one) L9917
- §148 — The loop.c hoisting THRESHOLD is arithmetic you can compute, and the
?:clamp that folds to MIN_EXPR (P30 S42,func_8017C6F4, 947 ins) L10135
structs, block moves & memcpy (31)
- §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
/saliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giantfunc_8014EE14248 ins ×134) L2375 - §32 — The region-a CAMERA-GIANT idiom set: struct-base hoisting + 4 sibling levers (Phase 24 T7, Fable5-cracked on
func_80129CF8191 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 onfunc_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_80178D40crack (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_801838145,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_oneis 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
--likerole 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_oneCOUNT 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
- §3-Two — errors of mine, both instructive L9999
- §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10883
types, signedness & load/store width (34)
- §3-I1 — Unsigned range check:
(x - lo) < (hi-lo)→addiu+sltiuL41 - §3-I2 — Byte mask forces
andieven afterlbuL47 - §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.pyBUILT + the cap re-diagnosed (R14, byte-proven) L1701 - §23 — Giant
func_80153E00cracked (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'scast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven onfunc_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 onfunc_8013B274) L2703 - §41d —
void→s32is 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/Nis a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21,func_8016B6BC0/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_80175DA80/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
- §143 —
cast_call_sitesread a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9824 - Then — propagation returned 0/137 TWICE — both times a missing TYPE L9990
- §154 — Reading a disc payload: the module-id word, static base derivation, and "type 1 = uncompressed overlay" (P30 S44) L10512
- §3-C. — PAC type 1 = the same payload class as type 4, just NOT compressed L10538
- §155b — check the TYPE your oracle returns before comparing against it (S45 p5) L10577
declarations, prototypes & K&R (56)
- §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_unifyis 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'scast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven onfunc_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 onfunc_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→s32is 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_matchMATCH → 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 justexterns; 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_8017F5101,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_8017BF144,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_tudropped the SIBLING declarators of a multi-symbolexternline (Phase 29 SESSION-21,func_80176218) L6976 - §96 — The same rewrite, one shape down:
reconcile_tumatched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22,func_80176218banked) L7011 - §98 —
conform_declshad 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
externin 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
- §141 — The §134 class is CLOSED: every line-shape decision now routes through
cdecl._mask(P30 S39) L9730 - §143 —
cast_call_sitesread a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9824 - §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10058
- §159 — THE DECLARATION AXIS: conform to byte-truth, and make every guard state its COVERAGE (P30 S47; ~10,930 sites across 8 axes, fleet byte-identical) L10818
jump tables & switches (27)
- §8 — rodata island (compiler jump tables) — the
.data→.rodata→.datasandwich (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 0x00000000under a jtbl dlabel is.alignPAD, not an entry (Phase 26 session 6, byte-proven) L380 - §8b — MULTI-jtbl per overlay — the
ld_interleave --ordersandwich + 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_onecannot 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_oneCOUNT 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 Nis 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
--srcfilter must not survive a carve (P30 S38, wave 6: 10 of 16 drafts vanished) L9584 - §161 — THE RETRY-WAVE HARVEST: a jump table indexed from zero, and two allocator traps (P30 S47) L10959
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
-O0split 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
-O0regime: the CONSTANT-OFFSET FOLD, and why-O0needs its own idiom set (P30 T3 wave, 15 targets) L8342 - §3-The — rest of the
-O0regime (write PLAIN C, and mean it) L8360 - §127a — §71 (sibling-first) is the strongest
-O0lever, 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 (80)
- §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.csplit-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
/saliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giantfunc_8014EE14248 ins ×134) L2375 - §34 — The
func_80138ED0giant 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_80133CD4crack (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_80178D40crack (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_8017BEBC952 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_extendsweep) L5918 - §75b — A body's preamble can carry
#defines, not justexterns; 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_8017F5101,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_oneis 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
--likerole trap (Phase 29 SESSION-21,func_8012AAAC×137) L6835 - §94 — A family sweep's
0/Nis a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21,func_8016B6BC0/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_801440900/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_propagateis 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 familiesmay 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
- §142 — An open stub whose
h_exactclass is MATCHED elsewhere is FREE. Propagate the body; do not gate a draft. (P30 S39, +7,710 ins in two commands) L9768 - §143 —
cast_call_sitesread a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9824 - Then — propagation returned 0/137 TWICE — both times a missing TYPE L9990
- §3-A. — The frame has THREE strata, and stratum 3 is unreachable from C L10031
- §3-E. — A
qty_compareTIE is not spelling-reachable — recognise it and stop L10073 - Consequence — for the family (a real scheduling decision) L10085
- §150 — A register ROTATION across symmetric blocks is VARIABLE-IDENTITY evidence, not an allocator tie (P30 S43,
func_8017C6F4, 947 ins ×4) L10302 - §151 — THE GHOST WEDGE: when a load-before-store transposition is unreachable by ANY statement order (P30 S43,
func_8017EF68, 969 ins) L10357 - When — to reach for it L10397
- §152 — BYTE SIZE is the family key that name- and h_seq-grouping both miss (P30 S43, the 0xECC family: 1 crack → 12 overlays → 11,364 ins) L10408
- §156 — an ORPHANED reconcile poisons the fleet:
dedup_propagate's kept edit (S45 p6/p7) L10630 - §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10883
integration / TU plumbing (37)
- §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
.oL1654 - §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_tudropped the SIBLING declarators of a multi-symbolexternline (Phase 29 SESSION-21,func_80176218) L6976 - §96 — The same rewrite, one shape down:
reconcile_tumatched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22,func_80176218banked) L7011 - §3-Two —
reconcile_tubugs 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_80175DA80/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
externin 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
- §3-A. — Payload word0 is a global MODULE ID; code starts after the header L10517
build graph, splat & the harness (104)
- §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-allL1120 - §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_unifyis 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
.oL1654 - Phase-20 — RESOLUTION —
tools/cast_call_sites.pyBUILT + the cap re-diagnosed (R14, byte-proven) L1701 - §24 — The
ov_SC01_077_a.csplit-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'scast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven onfunc_80129CF8) L2427 - §34 — The
func_80138ED0giant 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 onfunc_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→s32is 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_80133CD4crack (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_8017BF144,763 ins, cold start → 45/4763) L6213 - §82 — Two source-shape oracles from behemoth #6: a duplicated
addiu $aN,$sp,Kacross ajalmeans the block was INLINED, and scalar-vs-aggregate decides WHEN a stack slot is allocated (Phase 29 SESSION-19,func_8017C7301,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_oneCOMPILES 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_oneand 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_801440900/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_propagateis h_exact-only; its refusals are statements about the TOOL (P30 wave 1, 2026-07-30) L8109 - §126a — a bare
except: continuearound 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
--srcfilter 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
- §142 — An open stub whose
h_exactclass is MATCHED elsewhere is FREE. Propagate the body; do not gate a draft. (P30 S39, +7,710 ins in two commands) L9768 - §3-The — measurement (do this before any wave; it is ~20 lines and needs no builds) L9780
- §155b — check the TYPE your oracle returns before comparing against it (S45 p5) L10577
- §156 — an ORPHANED reconcile poisons the fleet:
dedup_propagate's kept edit (S45 p6/p7) L10630 - §158 — The RANGE-EXTENDER: a fourth zero-emission asm lever completes the allocno toolkit (P30 S46 tier-3,
func_8017CE58, 733 ins) L10702 - §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10883
- §161 — THE RETRY-WAVE HARVEST: a jump table indexed from zero, and two allocator traps (P30 S47) L10959
process, measurement & doctrine (64)
- §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
.oL1654 - Phase-20 — RESOLUTION —
tools/cast_call_sites.pyBUILT + the cap re-diagnosed (R14, byte-proven) L1701 - §23 — Giant
func_80153E00cracked (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_801838145,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
sltiliteral-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_declshad 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
- §3-The — measurement (do this before any wave; it is ~20 lines and needs no builds) L9780
- §3-And — the report-vs-bytes lesson attached to it L9812
- §146 — RE-MEASURE A WALL BEFORE YOU RESPECT IT. Both "permanent" giants fell to drafts already on disk. (P30 S6, +50,094 ins) L9967
- §147 — The three-stratum FRAME LAW, and four "stop searching" verdicts (P30 S42,
func_8017C294, serial run) L10026 - §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10058
- §3-D. — "Cheap fuel" that was never probed: 0 of 31 templatable L10283
- §3-Two — corrections to the record L10335
- §3-The — two fallouts, and how to close them (both measured, in order) L10385
- What — does NOT work (14 byte-measured probes) L10476
- §157 — the cheap-tier size cliff, measured (S45 p6) L10677
(unbucketed — title matched no symptom vocabulary) (145)
- §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-checkbreak(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 --assesswas DOUBLY inflated (Phase 21, cont.7) L2192 - §3-The —
_aclose=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_80135EB0wall, 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
partialdrift 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_8014D82025 → 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.his 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_onecannot see L6642 - Consequence — for the backlog ledger L6652
- §88 —
cross_jumpwill 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 pipefailattributes 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_XXXXXXXXpredicate 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 —
aswrites 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 —
--likeis 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.sL9536 - §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
- §3-The — trap that hid it — SAME FUNCTION, TWO ROUTES, ONLY ONE IS FREE L9795
- Route — selection (why
--addrsometimes says "nothing changed") L9804 - §144 — THE LITERAL'S SPELLING PICKS THE IMMEDIATE ENCODING (P30 S40 wave 1,
func_801822E0) L9878 - §3-Why — a correct draft can read as an intrinsic wall L9978
- §3-The — rule L10013
- §3-B. —
(v < 0x40) ? v : 0x3Fis folded toMIN_EXPRand expands to the WRONG SHAPE L10160 - §3-D. — Reproduce the original's BUGS verbatim L10184
- §149 — Four instrument defects in one session, and the two questions they were hiding (P30 S43) L10233
- §3-A. — A prep step that returns its input on failure is indistinguishable from a search that found nothing L10239
- §3-B. — Same address + same name ≠ same body — and the ledger keys on address L10257
- §3-C. —
make: *** [...] Error Nis a summary, never a diagnosis L10273 - §3-The — fix L10309
- §3-The — method that found it (this is the transferable part) L10319
- Diagnostic — order (adopt this) L10346
- §3-The — mechanism (read from cc1's own
-dRtrace, not inferred) L10362 - §3-The — lever — a zero-emission insn that absorbs the blocked tick L10377
- §3-The — finding L10413
- §3-The — key L10422
- §3-Two — cautions that must travel with this technique L10433
- §3-The — companion defect (open) L10444
- Symptom — Symptom L10464
- Mechanism — (gcc source + RTL dumps, not inferred) L10469
- §3-The — cure — a fresh launder per site, each in its own block L10482
- Companion — levers from the same function L10492
- §3-B. — Two static base-derivation methods that must AGREE (use both) L10526
- §155a — the same failure class, one level up: SHAPE-blind table scanning (S45 p5) L10557
- §155c — the ZERO-REFERENCE trap: gcc splits a global-array address across the
luiand the LOAD (S46) L10600 - Symptom — Symptom L10711
- §3-Why — the fork is chained (gcc source, validated insn-by-insn against -dS/-dR dumps) L10717
- §3-The — method (dump-arithmetic first, then place — no probing) L10730
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+sltiuL41 - §3-I2 — Byte mask forces
andieven afterlbuL47 - §3-I3 — Division by a constant → magic multiply L54
- §3-I4 — Runtime (variable) division →
divu+ zero-checkbreak(NEEDS--expand-div) L60 - §2 — Writing matching C (what makes gcc emit X) L69
- §3-T1 — Loop pointer: top-of-body for
adduinduction, not constant-foldedaddiuL71 - §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→.datasandwich (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 0x00000000under a jtbl dlabel is.alignPAD, not an entry (Phase 26 session 6, byte-proven) L380 - §8b — MULTI-jtbl per overlay — the
ld_interleave --ordersandwich + 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-allL1120 - §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_unifyis 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
-O0split 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
.oL1654 - §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.pyBUILT + 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_80153E00cracked (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.csplit-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 --assesswas DOUBLY inflated (Phase 21, cont.7) L2192 - §3-The —
_aclose=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
/saliasing flag, the def-side wall has a macro escape, + the birthing-boost (Phase 23, byte-proven on giantfunc_8014EE14248 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_80129CF8191 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'scast_call_sites) + a fleet-majority type oracle (Phase 24 T7b, byte-proven onfunc_80129CF8) L2427 - §34 — The
func_80138ED0giant 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 onfunc_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→s32is 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_80133CD4crack (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_80178D40crack (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_8017BEBC952 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_80131340L-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_80135EB0wall, 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
partialdrift 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_matchMATCH → 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_classdecide 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_8014D82025 → 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_8017D960b2, 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_extendsweep) L5918 - §75b — A body's preamble can carry
#defines, not justexterns; 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_8017F5101,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
foldnever leaves a literal first in an|chain (Phase 29 SESSION-19, behemoth #2func_8017D9603,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_8017BF144,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_8017BF1445 → 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_onecannot 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,Kacross ajalmeans the block was INLINED, and scalar-vs-aggregate decides WHEN a stack slot is allocated (Phase 29 SESSION-19,func_8017C7301,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_801838145,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_oneis 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.his 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_oneCOMPILES 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_onecannot see L6642 - Consequence — for the backlog ledger L6652
- §3-The — cheap discriminator, before spending a sweep L6659
- §88 —
cross_jumpwill 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
sltiliteral-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_oneand 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
--likerole 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 pipefailattributes a pipeline failure to the LAST stage, not the failing one (Phase 29 SESSION-21,func_8014D820) L6915 - §94 — A family sweep's
0/Nis a TYPE-CARRY failure until proven otherwise: lift the exemplar's local types, ALL of them, transitively (Phase 29 SESSION-21,func_8016B6BC0/137 → 137/137) L6940 - §95 —
reconcile_tudropped the SIBLING declarators of a multi-symbolexternline (Phase 29 SESSION-21,func_80176218) L6976 - §96 — The same rewrite, one shape down:
reconcile_tumatched statements to lines by TEXT, so every COMMENTED declaration was silently skipped (Phase 29 SESSION-22,func_80176218banked) 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_declshad 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_tubugs 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_80175DA80/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
externin 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_801440900/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_XXXXXXXXpredicate 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_propagateis 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 familiesmay 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: continuearound a coverage-asserting oracle re-creates the silent skip (P30 S28) L8310 - §127 — The
-O0regime: the CONSTANT-OFFSET FOLD, and why-O0needs 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
-O0regime (write PLAIN C, and mean it) L8360 - §127a — §71 (sibling-first) is the strongest
-O0lever, 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_oneCOUNT 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 Nis 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 —
aswrites 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 —
--likeis 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.sL9536 - 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
--srcfilter 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
- §141 — The §134 class is CLOSED: every line-shape decision now routes through
cdecl._mask(P30 S39) L9730 - §142 — An open stub whose
h_exactclass is MATCHED elsewhere is FREE. Propagate the body; do not gate a draft. (P30 S39, +7,710 ins in two commands) L9768 - §3-The — measurement (do this before any wave; it is ~20 lines and needs no builds) L9780
- §3-The — trap that hid it — SAME FUNCTION, TWO ROUTES, ONLY ONE IS FREE L9795
- Route — selection (why
--addrsometimes says "nothing changed") L9804 - §3-And — the report-vs-bytes lesson attached to it L9812
- §143 —
cast_call_sitesread a RETURN STATEMENT as a prototype and deleted it. A 0/39 sweep became 18/39. (P30 S40) L9824 - §144 — THE LITERAL'S SPELLING PICKS THE IMMEDIATE ENCODING (P30 S40 wave 1,
func_801822E0) L9878 - §145 — Three loop/combine levers from the S40 wave-2 drafters (16/16 match_one) L9917
- §146 — RE-MEASURE A WALL BEFORE YOU RESPECT IT. Both "permanent" giants fell to drafts already on disk. (P30 S6, +50,094 ins) L9967
- §3-Why — a correct draft can read as an intrinsic wall L9978
- Then — propagation returned 0/137 TWICE — both times a missing TYPE L9990
- §3-Two — errors of mine, both instructive L9999
- §3-The — rule L10013
- §147 — The three-stratum FRAME LAW, and four "stop searching" verdicts (P30 S42,
func_8017C294, serial run) L10026 - §3-A. — The frame has THREE strata, and stratum 3 is unreachable from C L10031
- §3-B. — A
?:on MEMORY operands costs ~16 bytes of invisible frame; on REGISTER operands, zero L10047 - §3-C. — Inner-block declaration does NOT delay slot allocation — BYTE-REFUTED L10058
- §3-D. — A lone
$t8/$t9in the target is RELOAD SCRATCH — reproduce the spill, don't pin the register L10063 - §3-E. — A
qty_compareTIE is not spelling-reachable — recognise it and stop L10073 - Consequence — for the family (a real scheduling decision) L10085
- §148 — The loop.c hoisting THRESHOLD is arithmetic you can compute, and the
?:clamp that folds to MIN_EXPR (P30 S42,func_8017C6F4, 947 ins) L10135 - §3-A. —
move_movableshoists iffthreshold × savings × lifetime ≥ insn_count— and you can read it L10141 - §3-B. —
(v < 0x40) ? v : 0x3Fis folded toMIN_EXPRand expands to the WRONG SHAPE L10160 - §3-C. — A zero-byte ALLOCNO-PRIORITY slider L10174
- §3-D. — Reproduce the original's BUGS verbatim L10184
- §149 — Four instrument defects in one session, and the two questions they were hiding (P30 S43) L10233
- §3-A. — A prep step that returns its input on failure is indistinguishable from a search that found nothing L10239
- §3-B. — Same address + same name ≠ same body — and the ledger keys on address L10257
- §3-C. —
make: *** [...] Error Nis a summary, never a diagnosis L10273 - §3-D. — "Cheap fuel" that was never probed: 0 of 31 templatable L10283
- §150 — A register ROTATION across symmetric blocks is VARIABLE-IDENTITY evidence, not an allocator tie (P30 S43,
func_8017C6F4, 947 ins ×4) L10302 - §3-The — fix L10309
- §3-The — method that found it (this is the transferable part) L10319
- §3-Two — corrections to the record L10335
- Diagnostic — order (adopt this) L10346
- §151 — THE GHOST WEDGE: when a load-before-store transposition is unreachable by ANY statement order (P30 S43,
func_8017EF68, 969 ins) L10357 - §3-The — mechanism (read from cc1's own
-dRtrace, not inferred) L10362 - §3-The — lever — a zero-emission insn that absorbs the blocked tick L10377
- §3-The — two fallouts, and how to close them (both measured, in order) L10385
- When — to reach for it L10397
- §152 — BYTE SIZE is the family key that name- and h_seq-grouping both miss (P30 S43, the 0xECC family: 1 crack → 12 overlays → 11,364 ins) L10408
- §3-The — finding L10413
- §3-The — key L10422
- §3-Two — cautions that must travel with this technique L10433
- §3-The — companion defect (open) L10444
- §153 — THE ADDRESS-REMATERIALISATION LAUNDER: a third zero-emission asm lever (P30 S43,
func_8018D98C, 710 ins) L10456 - Symptom — Symptom L10464
- Mechanism — (gcc source + RTL dumps, not inferred) L10469
- What — does NOT work (14 byte-measured probes) L10476
- §3-The — cure — a fresh launder per site, each in its own block L10482
- Companion — levers from the same function L10492
- §154 — Reading a disc payload: the module-id word, static base derivation, and "type 1 = uncompressed overlay" (P30 S44) L10512
- §3-A. — Payload word0 is a global MODULE ID; code starts after the header L10517
- §3-B. — Two static base-derivation methods that must AGREE (use both) L10526
- §3-C. — PAC type 1 = the same payload class as type 4, just NOT compressed L10538
- §155 — hi/lo literal scanning MUST track base registers (S45) L10548
- §155a — the same failure class, one level up: SHAPE-blind table scanning (S45 p5) L10557
- §155b — check the TYPE your oracle returns before comparing against it (S45 p5) L10577
- §155c — the ZERO-REFERENCE trap: gcc splits a global-array address across the
luiand the LOAD (S46) L10600 - §156 — an ORPHANED reconcile poisons the fleet:
dedup_propagate's kept edit (S45 p6/p7) L10630 - §157 — the cheap-tier size cliff, measured (S45 p6) L10677
- §158 — The RANGE-EXTENDER: a fourth zero-emission asm lever completes the allocno toolkit (P30 S46 tier-3,
func_8017CE58, 733 ins) L10702 - Symptom — Symptom L10711
- §3-Why — the fork is chained (gcc source, validated insn-by-insn against -dS/-dR dumps) L10717
- §3-The — method (dump-arithmetic first, then place — no probing) L10730
- Bonus — facts worth keeping L10747
- §156 — THE PREFERENCE-DONOR MERGE: cross-region variable reuse is what fills a0-a3, and a call-arg use in ONE region steers the fill in ALL of them (P30 S46 tier-3,
func_80186E24, 611 ins: 236-off "S11 regalloc-order" → MATCH, zero new pins) L10762 - §159 — THE DECLARATION AXIS: conform to byte-truth, and make every guard state its COVERAGE (P30 S47; ~10,930 sites across 8 axes, fleet byte-identical) L10818
- §160 — THE REACH-15 WAVE HARVEST: an align-1 block move, and the instrument that called it a wall (P30 S47) L10883
- §161 — THE RETRY-WAVE HARVEST: a jump table indexed from zero, and two allocator traps (P30 S47) L10959