phase-36: S105 — f4 + f5 landed 12/12 plain C, R45/R46 harvested (regen 0 free), R22 218/218, census 4,077 / 0 unmarked (exit 0); METHOD step 19; checkpoint refreshed | 🛑 T7 RUNNING

This commit is contained in:
Drew T
2026-09-11 13:28:58 -06:00
parent 4a503fce1e
commit 3db2bf98a8
6 changed files with 127 additions and 70 deletions
+30
View File
@@ -241,3 +241,33 @@
(every 4-subset of five levers scored 2, every 3-subset ≥ 4, ~470 bodies) → bank minimum-lever with the markers carrying the
pass. Structs lead: 4-byte `(x, y)` locals would make those constants SUBREG stores (no boost).
- `tools/localalloc_sim.py` raises IndexError when the uid is not inside the block — feed it an insn uid from the block.
19. **S105 f4 (`ov_SC04_011_jr_8017D494`, 5 of 5 plain C) and f5 (`ov_SC02_005_jr_8018EA04`, 7 of 7 plain C):**
- (f4) **`lh` + `move vX,vY` in the target = combine's narrow-load + sign-extend PARALLEL split** (`combine.c:1893-1918`, "we
need both registers … split into a load followed by a register-register copy"), reached only when the `s16` local is loaded
DIRECTLY from memory and set ONCE (a multi-set local is refused, `combine.c:1905-1911`, `reg_nonzero_bits` under LOAD_EXTEND_OP;
a `u = t` copy hits cse's paradoxical-SUBREG fold `cse.c:4836-4870`). One single-set `s16` per axis. Three of five packs; and
the tree's `frame_pad[N]` / "§333 aggregate" fillers were the dead shift temps' slots (8 bytes per site, `combine.c:2306` +
`reload1.c:2331`) — DELETE the pad whenever this rule applies. A `$0` pin faking the copy (`v1 = v0 + zr`) is the same shape.
- (f4) a `u16` counter TIED in `qty_compare_1` with a symbol (two tied pseudos HI+SI, 7 refs) wins by qty number where the
target's symbol takes `v0` → re-declare the counter `s32` (one pseudo, 5 refs); `localalloc_sim.py` shows the tie.
- (f4) a `$aN` pin on a global loaded right before an UNPROTOTYPED call = a missing call argument: read the callee's definition
(`grep -n 'fn(' src -r`) and pass it through a body-local cast (R19); the tail `j; li v0,1` vs `move v0,zero` residual follows
from it (reorg fills the slot from the fall-through's `lw a0`, `reorg.c:3320-3420`). A barrier between a store fed by an if/else
and its reload → one store per arm (the reload lands in a new cse block; cross-jump re-merges the two `sh` in jump2).
- (f4) a `$4–$7` "pre-copy" pin on a parameter used early and copied late → `s16` copies of the parameters at the top and the
early result computed on the copy (cse's paradoxical-SUBREG fold routes `-y` to the parameter pseudo, which then keeps `a1`;
the `s16` result is a SUBREG destination `birthing_insn_p` rejects, so the neg lands in the `bnez` slot).
- (f5) **derived-pointer store (generator R45):** `s0[K] = 0` with `s0 = &SYM` known to cse → `lui $at; sw $zero,K($at)` — cse
pass 1 FOLDS `(plus s0 K)` to the constant first (`find_best_addr`, `cse.c:2622-2740`, `:2653`); the pointer the function
already passes to the call, `p = &s0[K]`, born BEFORE the store and stored through: zero instructions added; the `$s0/$s1` swaps
beside the count hunks are the base's ref count (`alloc_table` 5 refs / 1785 → 7 / 2413, `global.c:594-610`) and vanish with it.
- (f5) **set-once chain (generator R46):** `v &= 0x1F; v -= K; DST = v;` sets ONE pseudo several times → no `birthing_insn_p`
boost → the chain is emitted at the block TOP ahead of the boosted `la`/`li`; `DST = (v & 0x1F) - K;` gives every temp one set
and the LUID tie-break (`sched.c:2428`) puts it after the independent setups. The exact INVERSE of step 18's multi-set trick:
the `.sched` priority column (`7f000001` vs `1`) says which direction a body needs.
- (f5) a `$2` pin on a result local assigned a ternary/if-else of constants → two `return <const>;` statements
(`expand_value_return` `stmt.c:2505-2528` writes the hard `$v0`; the taken arm's constant is the delay slot — try both orders).
- (f5) `neighbours.txt` empty ≠ no neighbour: read the TU around the function — a lever-free sibling of the same byte shape
(func_8018FAE0, func_8018FC38 which even spells the record as a struct) closed packs 4–7 on the first `--try` each.
- The strip must not leave a READ of the pinned variable (`-a1v` after `register a1v __asm__("$5")` is gone): the free body's
score is garbage until the argument is restored (f4 pack 5's "best 13" was measured on an uninitialised local).
+51 -51
View File
@@ -38,9 +38,9 @@
".section": 7,
"RTP_SND": 22,
"addiu": 22,
"addu": 23,
"addu": 22,
"and": 2,
"la": 139,
"la": 136,
"lh": 3,
"li": 1,
"lui": 3,
@@ -53,16 +53,16 @@
},
"kinds": {
"asm-body/direct": 13,
"barrier/direct": 257,
"barrier/direct": 248,
"gte-lever/direct": 357,
"gte-lever/via-macro": 94,
"gte-unsigned/direct": 270,
"gte/direct": 197,
"gte/via-macro": 6158,
"instruction/direct": 206,
"instruction/direct": 202,
"instruction/via-macro": 22,
"keepalive/direct": 333,
"launder/direct": 584,
"launder/direct": 578,
"launder/via-macro": 42,
"verbatim-body/direct": 2682
}
@@ -99,9 +99,9 @@
"src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c:10069",
"src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c:9325",
"src/ov_SC04_007/ov_SC04_007_jr_8017BEBC.c:6630",
"src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:7486",
"src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:10290",
"src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:13431",
"src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:7470",
"src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:10273",
"src/ov_SC04_011/ov_SC04_011_jr_8017D494.c:13414",
"src/ov_SC05_001/ov_SC05_001_jr_8017BEBC.c:5814",
"src/ov_SC05_003/ov_SC05_003_jr_8017BEBC.c:4815",
"src/ov_SC05_005/ov_SC05_005_jr_8017D898.c:4026",
@@ -115,37 +115,37 @@
},
"classes": {
"A": {
"bodies": 1360,
"distinct_bodies": 529,
"bodies": 1349,
"distinct_bodies": 518,
"file_scope": 0,
"in_bodies": 2203,
"in_bodies": 2188,
"kinds": {
"pin": 2203
"pin": 2188
},
"marked": 2203,
"sites": 2203,
"tus": 1077,
"marked": 2188,
"sites": 2188,
"tus": 1076,
"unmarked": 0
},
"B": {
"bodies": 4617,
"distinct_bodies": 683,
"bodies": 4609,
"distinct_bodies": 675,
"file_scope": 13,
"in_bodies": 11202,
"in_bodies": 11183,
"kinds": {
"asm-body": 13,
"barrier": 257,
"barrier": 248,
"gte": 6355,
"gte-lever": 451,
"gte-unsigned": 270,
"instruction": 228,
"instruction": 224,
"keepalive": 333,
"launder": 626,
"launder": 620,
"verbatim-body": 2682
},
"marked": 2392,
"sites": 11215,
"tus": 1426,
"marked": 2373,
"sites": 11196,
"tus": 1425,
"unmarked": 8823
},
"C": {
@@ -250,9 +250,9 @@
"coverage": {
"asm": {
"comment_dead": 6781,
"live": 15062,
"live": 15028,
"macro_block": 194,
"raw": 22037
"raw": 22003
},
"attribute": {
"comment_dead": 0,
@@ -268,9 +268,9 @@
},
"register": {
"comment_dead": 8574,
"live": 2253,
"live": 2238,
"macro_block": 18,
"raw": 10845
"raw": 10830
},
"volatile": {
"comment_dead": 2607,
@@ -280,7 +280,7 @@
}
},
"coverage_ok": true,
"elapsed_s": 22.3,
"elapsed_s": 22.5,
"generated": "2026-09-11",
"gte_levers": {
"direct": 357,
@@ -291,15 +291,15 @@
"via_macro": 94,
"what": "GTE ops whose clobbers exceed the canonical macro's (a scheduling steer): class-B levers INSIDE the headline number since T5 (2026-09-09), marked, 0 at the close"
},
"head": "cadb6cacc",
"head": "4a503fce1",
"headers": 3181,
"levers_AB": {
"asm": 1908,
"bodies": 2021,
"distinct_bodies": 715,
"marked": 4111,
"pins": 2203,
"sites": 4111,
"asm": 1889,
"bodies": 2009,
"distinct_bodies": 703,
"marked": 4077,
"pins": 2188,
"sites": 4077,
"unmarked": 0,
"what": "register pins + asm statements excluding GTE ops: the classes the phase drives to 0"
},
@@ -432,10 +432,10 @@
"what": "asm-bearing #define blocks outside the GTE header: 0 at the close (T5 deletes the canonical duplicates, T7 the variants)"
},
"pins": {
"bare_name": 9,
"init": 204,
"bare_name": 8,
"init": 203,
"registers": {
"$0": 55,
"$0": 54,
"$10": 10,
"$11": 5,
"$12": 9,
@@ -446,47 +446,47 @@
"$17": 29,
"$18": 26,
"$19": 17,
"$2": 763,
"$2": 761,
"$20": 7,
"$21": 5,
"$22": 3,
"$23": 6,
"$25": 1,
"$3": 162,
"$4": 497,
"$5": 379,
"$3": 159,
"$4": 491,
"$5": 377,
"$6": 60,
"$7": 26,
"$8": 23,
"$9": 21,
"7": 1,
"a0": 4,
"a0": 3,
"a1": 2,
"v0": 2
},
"sites": 2203,
"sites": 2188,
"sp": 0,
"spelling": {
"__asm__": 2180,
"__asm__": 2165,
"asm": 23
},
"volatile_qualified": 0,
"zero": 55
"zero": 54
},
"src_stamp": "2d70f3c71cf4dfdf",
"src_stamp": "b40650c8497ee9fa",
"tus": 4121,
"unclassified": 0,
"union_AD": {
"bodies": 5786,
"bodies": 5774,
"by_kind": {
"main": 124,
"md": 105,
"ov": 5391,
"ov": 5379,
"resident": 6,
"shared": 160
},
"copies_in_multi": 4849,
"distinct_bodies": 1047,
"distinct_bodies": 1035,
"multi_copy_classes": 110
},
"verbatim_excluded": {
+10 -10
View File
@@ -1,27 +1,27 @@
lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclassified 0 · verbatim excluded 13 fn / 14 sites (manifest 13)
coverage asm raw 22037 = live 15062 + macro-block 194 + comment/dead 6781
coverage register raw 10845 = live 2253 + macro-block 18 + comment/dead 8574
coverage asm raw 22003 = live 15028 + macro-block 194 + comment/dead 6781
coverage register raw 10830 = live 2238 + macro-block 18 + comment/dead 8574
coverage volatile raw 4372 = live 1683 + macro-block 82 + comment/dead 2607
coverage builtin raw 599 = live 445 + macro-block 0 + comment/dead 154
coverage attribute raw 76 = live 76 + macro-block 0 + comment/dead 0
class sites in-bodies file-scope bodies distinct TUs marked unmarked kinds
A pins 2203 2203 0 1360 529 1077 2203 0 {'pin': 2203}
B asm 11215 11202 13 4617 683 1426 2392 8823 {'gte': 6355, 'gte-lever': 451, 'gte-unsigned': 270, 'barrier': 257, 'launder': 626, 'instruction': 228, 'asm-body': 13, 'keepalive': 333, 'verbatim-body': 2682}
A pins 2188 2188 0 1349 518 1076 2188 0 {'pin': 2188}
B asm 11196 11183 13 4609 675 1425 2373 8823 {'gte': 6355, 'gte-lever': 451, 'gte-unsigned': 270, 'barrier': 248, 'launder': 620, 'instruction': 224, 'asm-body': 13, 'keepalive': 333, 'verbatim-body': 2682}
C volatile 1589 1437 152 495 94 609 14 1575 {'decl-body': 58, 'decl-file': 152, 'cast': 1377, 'param': 2}
D register 50 50 0 47 47 6 0 50 {'register': 50}
E asm-label 7800 1368 6432 1099 160 2090 0 7800 {'asm-label': 7800}
F builtin 445 445 0 428 27 302 0 445 {'builtin': 445}
G attribute 76 1 75 1 1 40 0 76 {'attribute': 76}
UNION A–D: 5,786 bodies · 1,047 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'ov': 5391, 'md': 105, 'main': 124, 'shared': 160, 'resident': 6}
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,111 sites in 2,021 bodies (715 distinct) · marked !FAKE 4,111 · UNMARKED 0
UNION A–D: 5,774 bodies · 1,035 distinct (addresses normalized) · 110 multi-copy classes holding 4,849 bodies · by kind {'ov': 5379, 'main': 124, 'shared': 160, 'md': 105, 'resident': 6}
THE PHASE'S NUMBER (pins + asm statements, GTE excluded): 4,077 sites in 2,009 bodies (703 distinct) · marked !FAKE 4,077 · UNMARKED 0
orphan !FAKE markers (no pin/asm site on the line nor below): 0
marked ordinary-C fakes kept by Drew's S104 ruling (a) (`do { } while (0)`, dead initialisers; NOT levers): 50
GTE levers (clobbers beyond the canonical macro's): 451 sites (94 via a variant macro, 357 direct) · marked 451 · UNMARKED 0 · unsigned GTE statements 270
per-TU asm macro definitions outside the GTE header: 314 {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1} (GTE variants 64)
pins: 2,203 · $0 55 · $sp 0 · with initializer 204 · volatile-qualified 0 · bare-name 9 · spellings {'__asm__': 2180, 'asm': 23}
pins: 2,188 · $0 54 · $sp 0 · with initializer 203 · volatile-qualified 0 · bare-name 8 · spellings {'__asm__': 2165, 'asm': 23}
whole-body asm routines in C shells, manifest PERMANENT (hand asm, NOT levers): 22 routines · 2,682 sites (2,660 private copies + 22 shared headers); asm-bodies NOT permanent (levers): 13 site(s) ['func_8001E378:DECOMPILE-NOW', 'func_80020F34:DECOMPILE-NOW', 'func_800249F0:DECOMPILE-NOW', 'func_80025CBC:DECOMPILE-NOW', 'func_80026514:UNCERTAIN', 'func_800268D0:UNCERTAIN', 'func_80027058:DECOMPILE-NOW', 'func_80027200:DECOMPILE-NOW', 'func_800CBA44:DECOMPILE-NOW', 'func_8017D810:DECOMPILE-NOW', 'func_8017E26C:UNCERTAIN', 'func_80184440:DECOMPILE-NOW', 'func_801A3BCC:DECOMPILE-NOW']
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 257, 'gte/direct': 197, 'gte/via-macro': 6158, 'gte-lever/direct': 357, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 206, 'instruction/via-macro': 22, 'keepalive/direct': 333, 'launder/direct': 584, 'launder/via-macro': 42, 'verbatim-body/direct': 2682}
instruction mnemonics: {'la': 139, 'addu': 23, 'addiu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 3, 'lh': 3, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
asm kinds: {'asm-body/direct': 13, 'barrier/direct': 248, 'gte/direct': 197, 'gte/via-macro': 6158, 'gte-lever/direct': 357, 'gte-lever/via-macro': 94, 'gte-unsigned/direct': 270, 'instruction/direct': 202, 'instruction/via-macro': 22, 'keepalive/direct': 333, 'launder/direct': 578, 'launder/via-macro': 42, 'verbatim-body/direct': 2682}
instruction mnemonics: {'la': 136, 'addiu': 22, 'addu': 22, 'RTP_SND': 22, '.section': 7, 'lui': 3, 'lh': 3, 'and': 2, 'mult': 1, 'mfhi': 1, 'sll': 1, 'li': 1, 'lw': 1, 'nop': 1, 'srl': 1}
gte mnemonics: {'gte_ldv0': 758, 'gte_stlvnl': 593, 'gte_stsxy': 448, 'gte_rtps': 439, 'gte_stflg': 415, 'gte_rtpt': 352, 'gte_SetRotMatrix': 253, 'gte_stsxy3': 236, 'gte_SetTransMatrix': 231, 'gte_rtv0tr': 228, 'gte_ldv3c': 184, 'gte_ldv3': 177, 'gte_stsv': 161, 'lwc2': 158, 'gte_stsz4': 149, 'gte_stsz3': 147, 'gte_stszotz': 134, 'gte_dpcl': 134, 'gte_stclmv': 114, 'gte_stsxy3_f3': 111, 'gte_nclip': 108, 'gte_stopz': 108, 'gte_stsxy3c': 108, 'gte_rtir': 81, 'gte_stsxy3_ft3': 79, 'gte_ldclmv': 78, 'gte_avsz4': 56, 'gte_stotz': 52, 'gte_ldrgb': 30, 'gte_nccs': 25}
asm-bearing macro definitions: 314 (20 names, 3 with >1 text) kinds {'gte': 150, 'launder': 154, 'instruction': 9, 'barrier': 1}
controls (R39):
@@ -29,4 +29,4 @@ lever_census: 218 binaries · 4,121 TUs + 3,181 headers · coverage OK · unclas
src/shared/ov/func_80178004.h pins got 8 expected 26 N-A
ov_SC03_006 func_80184034 bare-name pins got 0 expected 3 N-A
engine_prelude.h asm sites (a macro definition only) got 0 expected 0 OK
elapsed 22.3 s
elapsed 22.5 s
+1
View File
@@ -68,3 +68,4 @@ date milestone head sites_AB pins asm bodies_AB distinct_AB marked unmarked gte_
2026-09-11 S105 f2 (4) + R44/R22 regen (3) 0076a9d2e 4132 2217 1915 2027 721 4132 0 451 314 1589 50 7800 445 76
2026-09-11 S105 f1 (4) 389373f6d 4125 2212 1913 2025 719 4125 0 451 314 1589 50 7800 445 76
2026-09-11 S105 f3 (4 + 1 proven) cadb6cacc 4111 2203 1908 2021 715 4111 0 451 314 1589 50 7800 445 76
2026-09-11 S105 f4 (5) + f5 (7) 4a503fce1 4077 2188 1889 2009 703 4077 0 451 314 1589 50 7800 445 76
1 date milestone head sites_AB pins asm bodies_AB distinct_AB marked unmarked gte_levers per_tu_asm_macros class_C class_D class_E class_F class_G
68 2026-09-11 S105 f2 (4) + R44/R22 regen (3) 0076a9d2e 4132 2217 1915 2027 721 4132 0 451 314 1589 50 7800 445 76
69 2026-09-11 S105 f1 (4) 389373f6d 4125 2212 1913 2025 719 4125 0 451 314 1589 50 7800 445 76
70 2026-09-11 S105 f3 (4 + 1 proven) cadb6cacc 4111 2203 1908 2021 715 4111 0 451 314 1589 50 7800 445 76
71 2026-09-11 S105 f4 (5) + f5 (7) 4a503fce1 4077 2188 1889 2009 703 4077 0 451 314 1589 50 7800 445 76
+4 -1
View File
@@ -114,6 +114,7 @@ counted, not marked). E, F and G belong to the canonical type layer and are the
| 2026-09-11 | S105 f2 (4) + R44/R22 regen (3) | 2217 | 1915 | **4132** | 2027 | 721 | 451 | 314 | 1589 | 50 | 7800 | 445 | 76 | `0076a9d2e` |
| 2026-09-11 | S105 f1 (4) | 2212 | 1913 | **4125** | 2025 | 719 | 451 | 314 | 1589 | 50 | 7800 | 445 | 76 | `389373f6d` |
| 2026-09-11 | S105 f3 (4 + 1 proven) | 2203 | 1908 | **4111** | 2021 | 715 | 451 | 314 | 1589 | 50 | 7800 | 445 | 76 | `cadb6cacc` |
| 2026-09-11 | S105 f4 (5) + f5 (7) | 2188 | 1889 | **4077** | 2009 | 703 | 451 | 314 | 1589 | 50 | 7800 | 445 | 76 | `4a503fce1` |
### The campaign — every batch, from the ledger (derived on every render)
@@ -415,7 +416,9 @@ counted, not marked). E, F and G belong to the canonical type layer and are the
| `s105_f1` | 2026-09-11 | E | 0 | 0 | 0 | 4 | 2 |
| `s105_f1_minlever` | 2026-09-11 | E | 0 | 0 | 0 | 3 | 0 |
| `s105_f3` | 2026-09-11 | E | 0 | 0 | 0 | 14 | 4 |
| **total** | | | **17,122** | **20,778** | **283** | **30,315** | **10,725** |
| `s105_f4` | 2026-09-11 | E | 0 | 0 | 0 | 13 | 5 |
| `s105_f5` | 2026-09-11 | E | 0 | 0 | 0 | 20 | 7 |
| **total** | | | **17,122** | **20,778** | **283** | **30,348** | **10,737** |
*Generated by `tools/lever_progress.py --render` from `.run/P36/census/lever_census.json` and `.run/P36/delever/ledger.jsonl`; the series lives in `docs/lever-progress.tsv` (R75: published numbers are generated, never typed).*
+31 -8
View File
@@ -1999,18 +1999,41 @@ accumulate here as the phase produces them.**
cannot reach — not a new generator. R22 (`.run/P36/s105/r22_c.log`) **`check-all: 218 passed, 0 failed of 218`** (83 s) → baseline at
`cadb6cacc` → `lever_census --check: 4,111 pin/asm sites, 4,111 marked !FAKE, 0 UNMARKED — OK` (exit 0) → snapshot (4,125 → **4,111**).
## 🛑 SESSION CHECKPOINT — S105 (2026-09-11, LIVE — refreshed at every landing): T0–T6 ☑, **T7 RUNNING at Drew's cap of TWO agents**. 4,152 → **4,111 sites** so far; f1–f3 landed (13/13), f4 + f5 IN FLIGHT; generator **R44** + the R22 `&&` blind-spot fix; R22 `check-all: 218 passed, 0 failed of 218` at `cadb6cacc` | `lever_census --check` exit 0 (4,111 marked, 0 UNMARKED, 0 orphans)
- **S105 — f4 and f5 landed: 12 of 12 at 0, ALL plain C, zero levers; generators R45 + R46; R22 218/218; 4,111 → 4,077 sites.**
f4 (`ov_SC04_011_jr_8017D494`, ≈366k tokens, 42 min): `func_801835B0` 3 → 0, `func_8018315C` 5 → 0, `func_80183058` 15 → 0 — three
of five by **combine's narrow-load + sign-extend split** (`combine.c:1893-1918`: an `s16` local loaded DIRECTLY and set ONCE gives the
target's `lh` + `move`; the tree's `frame_pad[N]`/"§333 aggregate" fillers were the dead shift temps' slots, deleted); `func_80182BBC`
7 → 0 (a `u16` counter tied in `qty_compare_1` with a symbol → `s32`; `localalloc_sim` 0 mismatches); `func_80183058` also carried a
`$4` pin that was a MISSING CALL ARGUMENT (the callee `func_80189410(void *)` defined in the same TU); `func_8018489C` 19 → 0 (`s16`
parameter copies at the top, the early result on the copy; the sweep's "best 13" had been measured on a free body reading the
stripped `a1v` uninitialised — a strip that leaves a read of the pinned variable is an instrument gap, noted). f5 (`ov_SC02_005_jr_8018EA04`,
≈152k tokens, 10 min — the cheapest batch of the session): two mechanisms cover the whole TU — **the derived-pointer store** (cse
pass 1 folds `(plus s0 K)` to the constant, `find_best_addr` `cse.c:2622-2740`; `p = &s0[K]` born before the store, stored through,
passed to the call — four bodies, the `$s0/$s1` swaps were the base's ref count) and **the set-once chain** (`DST = (v & 0x1F) - K;`
— a multi-set temp loses sched1's birthing boost, `sched.c:2468-2546`; the INVERSE of f3's multi-set trick, the `.sched` priority
column decides — three bodies); `func_801900B0` by two `return <const>;`; packs 4–7 each closed on the first `--try` from the TU's
lever-free sibling `func_8018FAE0`. `bank_list.sh`: `IDENTICAL … KEPT` ×12 (`a59914878`…`d49b4fc37`, `855743df1`…`bbe6bee42`). f6
(`ov_SC07_007`, 6 classes) and f7 (`ov_SC01_077`, 6) launched into the slots first. **Harvest (R16): generators R45
`derived_pointer_store`** (known-true ALONE 0 on func_8018F944 from 4; the ALL form 0 on func_8018FEA0 from 16 — an index-regex
defect caught by the selftest on the way: `_INT` matched the digit in `s0`) **and R46 `set_once_chain`** (the ALL form 0 on
func_8018FA34 from 6; the singles 2 / 4 = the agent's own numbers; a refusal when the temp is read after the store); selftest cases
with a negative control, `delever --selftest: OK`, SETUP rows, `FAMILIES` (R45 in COUNT, R46 in ORDER first). Regen `s105_r45r46`:
`604 of 604 classes judged in 27 s — MATCH 0, BEST 44` — the shapes were TU-local; 0 free banks, honestly. METHOD step 19
(f4/f5's nine readings). R22 (`.run/P36/s105/r22_d.log`) **`check-all: 218 passed, 0 failed of 218`** (82 s) → baseline at
`4a503fce1` → `lever_census --check: 4,077 pin/asm sites, 4,077 marked !FAKE, 0 UNMARKED — OK` (exit 0) → snapshot (4,111 → **4,077**;
2,188 pins + 1,889 asm in 2,009 bodies). **Session so far: 25 of 25 drawn classes at 0 (21 plain C, 4 minimum-lever), 4,152 → 4,077.**
## 🛑 SESSION CHECKPOINT — S105 (2026-09-11, LIVE — refreshed at every landing): T0–T6 ☑, **T7 RUNNING at Drew's cap of TWO agents**. 4,152 → **4,077 sites** so far; f1–f5 landed (25/25), f6 + f7 IN FLIGHT; generators **R44–R46** + the R22 `&&` blind-spot fix; R22 `check-all: 218 passed, 0 failed of 218` at `4a503fce1` | `lever_census --check` exit 0 (4,077 marked, 0 UNMARKED, 0 orphans)
### 0. How to use this block — READ THIS FIRST
A fresh session reads CLAUDE.md's load order, replays this block verbatim, confirms the effort (S105 runs at `/effort high` on Opus 5 1M;
every agent on Opus) and executes §2. **Drew's cap is TWO concurrent agents (S105 open).** What may be in flight when this is read:
**f4** (`src/ov_SC04_011/ov_SC04_011_jr_8017D494.c`: func_801835B0, func_8018315C, func_80182BBC, func_80183058, func_8018489C) and
**f5** (`src/ov_SC02_005/ov_SC02_005_jr_8018EA04.c`: func_8018F944, func_801900B0, func_8018FA34, func_8018FB8C, func_8018FCE4,
func_8018FEA0, func_8018F72C). A dead session's agents leave `body.c` + `mechanism.md` in
**f6** (`src/ov_SC07_007/ov_SC07_007_jr_8017BEBC.c`: func_8018122C, func_80180FA4, func_8017F584, func_80181F4C, func_80182184,
func_8017DFB8) and **f7** (`src/ov_SC01_077/ov_SC01_077_jr_8017AE2C.c`: func_8017EB2C, func_8017EF50, func_8017F5BC, func_80180590,
func_8017FD14, func_8017F114). A dead session's agents leave `body.c` + `mechanism.md` in
`.run/P36/agents/<alias>__<fn>/` (R67): `--try` each `body.c`; a 0 banks via `.run/P36/s105/bank_list.sh` (one line per body
`TU FN FILE LABEL MSG`; a `*minlever*` label adds `--allow-residue`); anything else is a reading to record. Briefs for the NEXT draws are
written and their packs built: `.run/P36/s105/BRIEF_f6.md` (ov_SC07_007, 6 classes), `BRIEF_f7.md` (ov_SC01_077, 6), `BRIEF_f8.md`
(ov_SC02_005_jr_80185E80, 5); `.run/P36/s105/mkbrief.py <id> <tu>` builds the packs + brief for any TU of `pick.json` — launch each as a general-purpose Agent whose prompt names the brief file (the f1/f3 prompts are the
written and their packs built: `.run/P36/s105/BRIEF_f8.md` (ov_SC02_005_jr_80185E80, 5 classes); `.run/P36/s105/mkbrief.py <id> <tu>` builds the packs + brief for any TU of `pick.json` — launch each as a general-purpose Agent whose prompt names the brief file (the f1/f3 prompts are the
pattern). First commands:
```
git log --oneline -1 && git status --short | grep -v '^??' | wc -l
@@ -2023,10 +2046,10 @@ git log --oneline -1 && git status --short | grep -v '^??' | wc -l
`.run/P36/s105/bank_list.sh` → harvest (generator + known-true on the agent's start text + selftest + SETUP row + `FAMILIES`) → regen
pass of the new family (`--exclude` every fn an agent holds) → `--bank` → commit → R22 → `--snapshot-baseline` → census (EXIT CODE)
→ `lever_progress --snapshot` → log entry → commit.
- The free sweep is SPENT: every residue class has been judged by every family R2–R44 (S105 `s105_r43_*`, `s105_r44r22`).
- The free sweep is SPENT: every residue class has been judged by every family R2–R46 (S105 `s105_r43_*`, `s105_r44r22`, `s105_r45r46`).
### 2. NEXT
1. Land f4/f5 (§0) → launch f6, f7, f8 in turn (two at a time) → then draw the next TUs from `pick.py` (ov_SC01_077 6 cls, then the
1. Land f6/f7 (§0) → launch f8, then `mkbrief.py f9 <next TU>` … (two at a time) → then draw the next TUs from `pick.py` (ov_SC01_077 6 cls, then the
5-class TUs), one brief per TU, 4–7 classes each, skipping ARG-ONLY (`$4`–`$7`-only pins = the missing-parameter shape → structs phase)
and the park list (S104 §2.4 + f2's func_800385C0 signature change).
2. The 21 UNSTRIPPABLE classes (`.run/P36/s105/unstrippable.json`: 6 comment-boundary strips, 6 macro-carried launders, 5 instructions