docs(phase-30 S7): S6c banked ×12 (all in the P27 SC07 quartet); blockers classified 7/3; §136a

- S6c (deterministic, ~0 agent tokens): 12 sibling banks across 3 of 9 jr zero-crack families
  (func_80178D40 890ins 4/4, func_801734BC 4/4, func_8012ACE0 4/4). The other 6 are ledgered:
  5 gate-fail (genuine byte DIFF) + 1 carve-fail (span table starts do not fit the span).
  R22 clean-fleet 140/140 over the whole S6c series.
- FINDING: all 12 banks landed in ov_SC07_006/007/010/011 — the four overlays P27 discovered and
  P28 made citizens (R36). P28 drained their h_exact backlog via dedup_extend; the jr/h_seq
  propagation lane was still owed. R14 GUARD AGAINST OVER-READING IT: the quartet are the top four
  overlays by remaining zero-crack residue (2,190-2,355 ins each vs 500-870 typical) but hold only
  7% of the 2,114 remaining slots — a per-overlay priority signal, NOT a bulk lever.
- BLOCKER CAPTURE for the 10 wave-4a gate failures -> .run/s7_blockers.json: 7 PLUMBING (all
  `conflicting types for func_X`) / 3 genuine byte-DIFF. 70% of "the gate refused" is declaration
  paperwork. New tool .run/s7_capture.py (any overlay/any draft dir; reverts the TU in a finally:).
- MY DEFECT, FIXED AND DISTILLED (§136a): the capture tool first classified on the EXIT STATUS, so
  its `rc == 0 => byte DIFF` branch was UNREACHABLE — `make build` runs `check`, so a draft that
  compiles perfectly and merely differs in bytes also exits non-zero, and all 3 real DIFFs were
  filed as "unknown". Now classifies on the OUTPUT ([FAIL]/got/want vs a non-warning error line);
  the warning-exclusion matters because `conflicting types` also appears benignly for builtins.
- Also probe-discipline: my first S6c probe reported 1/9, which was 1 bank + 8 CORRECT REFUSALS —
  jtbl_family_bank refuses on a dirty config/+src/ (its per-sibling revert restores from HEAD).
  Driver now commits between families. A uniform failure across N functions is a statement about
  the mechanism, not the functions (§134).
- cookbook-index 364 -> 371 sections, --check green. CURRENT_PHASE SESSION-31 checkpoint refreshed
  with the queue re-derived at HEAD (the S30 ROI-floor trigger stays REFUTED — do not close on it).
This commit is contained in:
Drew T
2026-08-03 09:32:36 -06:00
parent d74f63a74b
commit fdb5813fc1
5 changed files with 172 additions and 31 deletions
+4 -2
View File
@@ -2,7 +2,7 @@
> **Generated by `tools/cookbook_index.py` — do not hand-edit** (R33). Regenerate after adding a cookbook section.
>
> `docs/matching-cookbook.md` is ~716 KB / 370 sections. Grepping it blind is how three P30 wave-1 agents each "discovered" an idiom that was already written down. **Start here, then read the section.** A section appears under every symptom it addresses.
> `docs/matching-cookbook.md` is ~716 KB / 371 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.
@@ -516,7 +516,7 @@
- **§3-The** — meta-lesson <sub>L8250</sub>
- **Wave** — economics (measured, for the next batch's sizing) <sub>L8943</sub>
### (unbucketed — title matched no symptom vocabulary) (103)
### (unbucketed — title matched no symptom vocabulary) (104)
- **§3-How** — to use this <sub>L30</sub>
- **§1** — Idiom catalog (asm pattern → C that produces it) <sub>L39</sub>
@@ -621,6 +621,7 @@
- **§3-The** — codegen idioms <sub>L8763</sub>
- **§3-The** — wave shape that produced these <sub>L8812</sub>
- **§136** — The LOCAL-VARIABLE lever: how many C locals, at what scope (P30 wave 4a, 25 byte-verified banks) <sub>L8830</sub>
- **§136a** — Blocker capture: classify on the OUTPUT, never on the exit status <sub>L8966</sub>
## All sections, in order
@@ -995,3 +996,4 @@
- **§3-The** — scheduling rules (refining §135-2 and §135-4) <sub>L8902</sub>
- **§3-The** — declaration surface (integration, not codegen) <sub>L8931</sub>
- **Wave** — economics (measured, for the next batch's sizing) <sub>L8943</sub>
- **§136a** — Blocker capture: classify on the OUTPUT, never on the exit status <sub>L8966</sub>
+18 -18
View File
@@ -2,13 +2,13 @@
> Generated by `tools/family_hseq.py` from the 138 overlay sigs + per-overlay src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.
>
> **Scope: the 138 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1354` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
> **Scope: the 138 OVERLAYS only** (no main, no resident) · generated at HEAD `commit:1358` · stub set derived from `corpus.stubs` — the same oracle `progress.py` counts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
**Fleet (overlays):** 95.7% fn / 92.9% instr / 86.5% distinct-code matched. Unmatched: 15,138 instances / 933,914 ins (11,496 distinct classes).
**Fleet (overlays):** 95.8% fn / 93.0% instr / 86.9% distinct-code matched. Unmatched: 14,884 instances / 911,088 ins (11,262 distinct classes).
**Tail cross-check (Phase-25 close):** 8,678 tail fns / 422,483 ins → 463 h_seq families ≥2, **125 substantial (nins≥80) / 113,566 ins**.
**Tail cross-check (Phase-25 close):** 8,641 tail fns / 418,067 ins → 460 h_seq families ≥2, **122 substantial (nins≥80) / 109,184 ins**.
**Full frontier (all unmatched by h_seq):** 2242 target families (≥2 members or a matched sibling) + 3767 singletons (Step-D residue). Substantial: **451 families / 410,083 templatable ins**, 32 with a matched sibling (zero-crack). Substantial member classes: 2,388 PURE · 31 IMM · 6 STRUCT-excluded.
**Full frontier (all unmatched by h_seq):** 2223 target families (≥2 members or a matched sibling) + 3767 singletons (Step-D residue). Substantial: **439 families / 392,870 templatable ins**, 20 with a matched sibling (zero-crack). Substantial member classes: 2,218 PURE · 31 IMM · 6 STRUCT-excluded.
## Top substantial families (by templatable byte-weight)
@@ -27,20 +27,20 @@
| 10 | 246 | 16 (16/0/0) | 6/16 | cross-address | PURE | 0 | · | 0x8017c294 draft-ov077 | 3,936 |
| 11 | 766 | 5 (5/0/0) | 3/5 | cross-address | PURE | 0 | · | 0x8017df84 modal | 3,830 |
| 12 | 328 | 11 (11/0/0) | 11/11 | scattered | PURE | 0 | · | 0x801833f0 modal | 3,608 |
| 13 | 890 | 4 (4/0/0) | 1/4 | per-location | PURE | 134 | Y | 0x80178d40 matched-ov077 | 3,560 |
| 14 | 237 | 15 (15/0/0) | 15/15 | scattered | PURE | 0 | · | 0x801832a8 modal | 3,555 |
| 15 | 253 | 14 (14/0/0) | 10/14 | scattered | PURE | 0 | · | 0x8017c9bc modal | 3,542 |
| 16 | 491 | 7 (7/0/0) | 6/7 | cross-address | PURE | 0 | Y | 0x801863cc modal | 3,437 |
| 17 | 166 | 20 (20/0/0) | 20/20 | scattered | PURE | 0 | · | 0x8017fac0 modal | 3,320 |
| 18 | 293 | 11 (11/0/0) | 4/11 | cross-address | PURE | 0 | · | 0x8017c43c modal | 3,223 |
| 19 | 770 | 4 (4/0/0) | 1/4 | per-location | PURE | 134 | · | 0x80144b9c matched-ov077 | 3,080 |
| 20 | 611 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | · | 0x80186e24 modal | 3,055 |
| 21 | 263 | 11 (11/0/0) | 11/11 | scattered | PURE | 0 | · | 0x80182fd4 modal | 2,893 |
| 22 | 557 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80186570 modal | 2,785 |
| 23 | 185 | 15 (15/0/0) | 13/15 | scattered | PURE | 0 | · | 0x8018b23c modal | 2,775 |
| 24 | 551 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80189540 modal | 2,755 |
| 25 | 125 | 22 (22/0/0) | 22/22 | scattered | PURE | 0 | Y | 0x80185440 modal | 2,750 |
| 26 | 386 | 7 (7/0/0) | 6/7 | cross-address | PURE | 0 | · | 0x80186b78 modal | 2,702 |
| 13 | 237 | 15 (15/0/0) | 15/15 | scattered | PURE | 0 | · | 0x801832a8 modal | 3,555 |
| 14 | 253 | 14 (14/0/0) | 10/14 | scattered | PURE | 0 | · | 0x8017c9bc modal | 3,542 |
| 15 | 491 | 7 (7/0/0) | 6/7 | cross-address | PURE | 0 | Y | 0x801863cc modal | 3,437 |
| 16 | 166 | 20 (20/0/0) | 20/20 | scattered | PURE | 0 | · | 0x8017fac0 modal | 3,320 |
| 17 | 293 | 11 (11/0/0) | 4/11 | cross-address | PURE | 0 | · | 0x8017c43c modal | 3,223 |
| 18 | 770 | 4 (4/0/0) | 1/4 | per-location | PURE | 134 | · | 0x80144b9c matched-ov077 | 3,080 |
| 19 | 611 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | · | 0x80186e24 modal | 3,055 |
| 20 | 263 | 11 (11/0/0) | 11/11 | scattered | PURE | 0 | · | 0x80182fd4 modal | 2,893 |
| 21 | 557 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80186570 modal | 2,785 |
| 22 | 185 | 15 (15/0/0) | 13/15 | scattered | PURE | 0 | · | 0x8018b23c modal | 2,775 |
| 23 | 551 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80189540 modal | 2,755 |
| 24 | 125 | 22 (22/0/0) | 22/22 | scattered | PURE | 0 | Y | 0x80185440 modal | 2,750 |
| 25 | 386 | 7 (7/0/0) | 6/7 | cross-address | PURE | 0 | · | 0x80186b78 modal | 2,702 |
| 26 | 890 | 3 (3/0/0) | 1/3 | per-location | PURE | 135 | Y | 0x80178d40 matched-ov077 | 2,670 |
| 27 | 177 | 15 (15/0/0) | 13/15 | scattered | PURE | 0 | · | 0x8018aa98 modal | 2,655 |
| 28 | 513 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x801878e8 modal | 2,565 |
| 29 | 154 | 15 (15/0/0) | 15/15 | scattered | PURE | 0 | · | 0x8018389c modal | 2,310 |
+26
View File
@@ -8962,3 +8962,29 @@ an Opus pass on most of the 60–120 band.**
`index_hit` was **13 true / 18 false** — the index is now the bottleneck the cookbook itself was in
wave 1, which is why the 31 gap reports above are worth more than the matches.
### §136a — Blocker capture: classify on the OUTPUT, never on the exit status
The reconcile lane only runs 12/12 because each agent is handed the compiler's own error line
(§135, the S29 law). Capturing those lines needs one care point, learned the hard way this session:
**`make build` runs `check`, so a draft that COMPILES PERFECTLY and merely produces different bytes
also exits non-zero.** A capture tool that branches on `returncode == 0` to mean "compiled fine ⇒
byte DIFF" therefore has an **unreachable branch**, and silently files every genuine byte-DIFF under
"unknown". Classify on what the build PRINTED:
| what the output shows | class | route |
|---|---|---|
| a non-`warning` line matching `error` / `conflicting types` / `undefined` | **PLUMBING** | reconcile lane — hand the agent the line verbatim |
| no compiler error, but `[FAIL] / got <sha> / want <sha>` | **DIFF** | redraft lane — the C is wrong, not the declarations |
| neither | UNKNOWN | investigate; do not route |
Note the filter must exclude `warning:` lines: the same `conflicting types for …` text appears as a
*warning* for built-ins (`memcpy`) and for benign external-decl mismatches, and those do NOT block
the bank. Only the hard-error form does.
Measured on wave 4a's 10 gate failures: **7 PLUMBING / 3 DIFF** — i.e. **70% of "the gate refused"
was declaration paperwork, not codegen.** That ratio is why the capture step is worth its ~10 builds
before any reconcile fan-out. Tool: `.run/s7_capture.py` (any overlay, any draft dir; the
ov_SC01_077-only `.run/uc_capture.py` is its ancestor). It reverts the TU in a `finally:` — a killed
process performs no undo (the S27 law).
+10 -10
View File
@@ -4,16 +4,16 @@
# cross-binary collapsible-byte leverage: docs/duplicates.cross.md.
# THREE progress metrics (all matter — see the labels):
FLEET fn-count byte-ident: 337779 / 353721 = 95.49% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12168323 / 13141652 = 92.6% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 4841288 / 5634875 = 85.9% (76180/87459 unique fns; the DISTINCT-RE number)
FLEET fn-count byte-ident: 337791 / 353721 = 95.50% (REAL+LINKED+empties; FUNCTION-count, ×134-inflated — one crack counts per overlay)
FLEET instr-weighted : 12172119 / 13141652 = 92.6% (shipped .text across main + resident + 138 overlays; the decomp.dev-DISPLAY number)
FLEET distinct-code(uniq): 4845084 / 5634875 = 86.0% (76192/87459 unique fns; the DISTINCT-RE number)
MAIN game-code weighted : 436 / 60201 = 0.7% (INCLUDED in the fleet numbers above since 2026-07-22 — roadmap §1 metrics contract; LINKED-excluding Ghidra sig dated 2026-06-14; caveat is R34: no independent second oracle for a PS-X EXE, NOT drift)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12167887 / 13081451 = 93.0%)
(fleet EXCLUDING main, for continuity with pre-2026-07-22 readings: 12171683 / 13081451 = 93.0%)
FLEET REAL substantive : 335924 (of which dedup-shared 240422 via 1905 groups / 240496 instances)
FLEET REAL substantive : 335936 (of which dedup-shared 240422 via 1905 groups / 240496 instances)
FLEET LINKED PsyQ objs : 959
FLEET NON_MATCHING : 7 (0 in any default build — G4)
FLEET INCLUDE_ASM stubs : 15935
FLEET INCLUDE_ASM stubs : 15923
FLEET matchable : 353721
| binary | REAL | shared | LINKED | byte-ident | matchable | byte-ident % |
@@ -152,9 +152,9 @@ FLEET matchable : 353721
| ov_SC07_000 | 2413 | 1748 | 0 | 2415 | 2521 | 95.8% |
| ov_SC07_001 | 2390 | 1744 | 0 | 2392 | 2454 | 97.5% |
| ov_SC07_002 | 2430 | 1744 | 0 | 2434 | 2579 | 94.4% |
| ov_SC07_006 | 2281 | 1560 | 0 | 2361 | 2456 | 96.1% |
| ov_SC07_007 | 2310 | 1592 | 0 | 2394 | 2613 | 91.6% |
| ov_SC07_006 | 2284 | 1560 | 0 | 2364 | 2456 | 96.3% |
| ov_SC07_007 | 2313 | 1592 | 0 | 2397 | 2613 | 91.7% |
| ov_SC07_008 | 2373 | 1744 | 0 | 2373 | 2386 | 99.5% |
| ov_SC07_009 | 2382 | 1744 | 0 | 2384 | 2430 | 98.1% |
| ov_SC07_010 | 2292 | 1614 | 0 | 2375 | 2524 | 94.1% |
| ov_SC07_011 | 2311 | 1591 | 0 | 2391 | 2449 | 97.6% |
| ov_SC07_010 | 2295 | 1614 | 0 | 2378 | 2524 | 94.2% |
| ov_SC07_011 | 2314 | 1591 | 0 | 2394 | 2449 | 97.8% |
+114 -1
View File
@@ -147,7 +147,120 @@ stub on a named wall/behemoth/queue ledger** — 140/140 byte-identical througho
---
# 🛑 SESSION-30 CHECKPOINT (2026-08-01, S6 complete through wave 3) — FRESH SESSION SAFE HERE
# 🛑 SESSION-31 CHECKPOINT (2026-08-03, wave 4a + S6c banked) — FRESH SESSION SAFE HERE
> Supersedes SESSION-30 below. **Nothing is running. Tree lock FREE. Tree CLEAN** but for the R23
> `db.*.gbf` churn — never stage it. Effort: **ultracode** (Drew enabled at session start).
> `make tools-health` **RC=0 at session open**. **R22 clean-fleet run TWICE this session, 140/140
> both times** (after wave 4a, and after the S6c series).
## FLEET — R22 clean-fleet **140 passed / 0 failed of 140** (`make clean` + extract-all + check-all)
**95.50% fn-count · 92.6% instr-weighted · 86.0% distinct-code** (76,192 / 87,459 unique fns) ·
dedup **1905/0** · C1 240496/240496 · **0 NON_MATCHING** in any default build (G4).
Phase opened 92.00 / 87.5 / 78.0 ⇒ **+3.50pp fn, +5.1pp instr, +8.0pp distinct this phase.**
*(`.run/family_hseq.json`'s metrics read ~0.3–1.0pp higher — that is the OVERLAY-ONLY denominator,
not a disagreement. `make report` is the authoritative fleet number.)*
## WHAT S7 DID — 286 function-instances, two lanes
**Lane 1 — wave 4a (agents): 274 instances from 33 drafted targets.**
**Lane 2 — S6c (deterministic, ~0 agent tokens): 12 sibling banks.**
`commit:1355` — 33 targets / 46 agents / **4.44M tokens** / 29 min → 29 claimed `match_one` MATCH →
whole-binary gate **BANKED 23/33 (70%)** → `family_sweep --hseq --band all` propagated
**251 member-matches across 69 overlays** (13 failed, 4 STRUCT skipped by design).
**Bank rate by the tier that produced the FINAL draft** (derived per-function; the workflow's
`by_tier` counts CLAIMED matches and sums to 29, not 23 — do not read it as banks):
| tier | banked / attempted |
|---|---|
| Opus direct (≥90 ins) | 10 / 14 |
| Haiku direct (≤89 ins) | **3 / 8** |
| Opus escalation after a Haiku miss | **10 / 11** |
⇒ on the 60–120-ins band the cheap tier is **triage, not a substitute** (it is ≡ Opus only at
≤~50 ins). The two-lane shape still pays *because the escalation almost never fails.*
## S6c — the 9 jr zero-crack families: 12 banked, 6 families ledgered, ALL banks in the SC07 quartet
Probe-one-sibling-per-family first (R37) — it spared ~20 builds each on six families:
| family | ins | slots | outcome |
|---|---|---|---|
| `func_80178D40` | 890 | 4 | **4/4 BANKED** |
| `func_801734BC` | 34 | 4 | **4/4 BANKED** |
| `func_8012ACE0` | 25 | 4 | **4/4 BANKED** |
| `func_801380E0` · `func_80191C50` · `func_8019059C` · `func_8013FFD8` · `func_8016AE5C` | 438/710/673/213/85 | 10 | **gate-fail — genuine byte DIFF** |
| `func_8016AB6C` | 188 | 4 | **carve-fail** — span table starts do not fit the span |
**Every one of the 12 banks landed in `ov_SC07_006/007/010/011`** — the four overlays P27 discovered
and P28 made citizens (R36). P28 drained their **h_exact** backlog via `dedup_extend`; the **jr/h_seq
propagation lane was still owed**, and this was it. ⚠️ **But do NOT over-read that:** the SC07 quartet
are the top four overlays by remaining zero-crack residue (2,190–2,355 ins each vs 500–870 typical,
~3–4×) yet hold only **7% of the 2,114 remaining slots**. It is a per-overlay priority signal, NOT a
bulk lever — the non-jr zero-crack residue is genuinely fleet-wide (120 families / 65,946 ins).
## 🎯 THE 10 WAVE-4a GATE FAILURES ARE CAPTURED AND CLASSIFIED → `.run/s7_blockers.json`
**7 PLUMBING / 3 genuine byte-DIFF** — i.e. **70% of "the gate refused" is declaration paperwork.**
- **PLUMBING (→ reconcile lane, feed each agent its line VERBATIM):** `func_80185254`(SC02_026,
`conflicting types for func_8012C1B8`) · `func_8018362C`(SC02_035, `func_8012B200`) ·
`func_80183A14` + `func_80183B20`(SC02_035, both `func_80183E68` — ONE shared TU, so **forbid agent
builds**, §135) · `func_8017E654`(SC02_041, `func_8012BF4C`) · `func_8017BF50`(SC03_001,
`func_8012913C`) · `func_8017CDB0`(SC03_002, `func_801439C0`).
- **DIFF (→ redraft, the C is wrong, not the declarations):** `func_8017E978`(SC01_005) ·
`func_80184494`(SC02_026) · `func_80184960`(SC04_018). *(`func_8017E978`'s original agent died on
the session limit, so it is effectively undrafted.)*
- Tool: **`.run/s7_capture.py`** — any overlay, any draft dir (the ov_SC01_077-only
`.run/uc_capture.py` is its ancestor); reverts the TU in a `finally:`.
## 📓 COOKBOOK §136 + §136a — the phase's largest single-wave idiom yield (R30, written in-session)
19 byte-verified idioms from 25 banked functions' `index_gap` reports. The finding:
**in the 60–120-ins band most "regalloc residuals" are decided by HOW MANY C LOCALS YOU DECLARE AND
AT WHAT SCOPE, not by register pins** — `local-alloc.c:472` refuses a local allocno with
`REG_N_DEATHS > 1`, promoting it to a global allocno that loses the low register. One case
explicitly **refutes the pin** as the lever for a redundant copy (source position is the lever).
**§136a** adds the capture law: **classify on the build's OUTPUT, never its exit status** —
`make build` runs `check`, so a draft that compiles perfectly and merely differs in bytes ALSO exits
non-zero; an `rc == 0 ⇒ DIFF` branch is unreachable and files every real byte-DIFF under "unknown"
(my own defect this session, caught and fixed). Index regenerated **364 → 371** sections, green.
⚠️ Agents self-reported `index_hit` **13 true / 18 false** — *discoverability of our own knowledge,
not the compiler, is the drafting bottleneck.* The 31 gap reports are worth more than the matches.
## ⚠️ THREE THINGS A FRESH SESSION MUST NOT INHERIT UNCHECKED
1. **The T6 ROI-floor trigger stays REFUTED** (S30's finding, re-confirmed): the ×138-era-ends
trigger was wrong. Re-derive from a freshly regenerated `family_hseq` before any close.
2. **My S6c probe first reported 1/9 — it was 1 bank + 8 CORRECT REFUSALS, not 8 failures.**
`jtbl_family_bank` refuses on a dirty `config/`+`src/` (its per-sibling revert restores from
HEAD, so an uncommitted prior bank would be destroyed). My driver did not commit between
families. **A uniform failure across N different functions is a statement about the mechanism,
not the functions** (§134). Fixed: `.run/s7_s6c.py` now commits between families.
3. **The session hit the agent limit mid-wave** (3 agents died on it; resets 4:20am America/Denver).
Agent capacity is NOT assumable — and the measured economics favour the deterministic lanes
anyway (S30: sweeps ≈0 tokens for +0.5pp; wave-3 ≈4.1M for +0.3pp).
## 📊 THE LIVE QUEUE — re-derived at HEAD from the regenerated map (overlay-only ins)
| lever | families | templ ins | note |
|---|---|---|---|
| B-shape ≥20 memb, ≤60 ins | **0** | 0 | exhausted (was 36 at S30 open) |
| B-shape ≥10 memb, **61-120 ins** | **10** | **10,003** | wave 4a consumed 23 of the 33 |
| B-shape 10-19 memb, ≤60 ins | **111** | **33,554** | **wave 4b, staged in 3 batches of 37** |
| zero-crack `has_mid_jr` (S6c) | 6 | ~5,600 | **DONE** — 12 banked; the 6 left are gate/carve-fail, ledger material |
| zero-crack non-jr residue | 120 | 65,946 | fleet-wide (2,114 slots); SC07 quartet = top 4 but only 7% |
| fresh ×2-9 | 1,872 | 362,591 | worst multiplier — deprioritised |
| fresh ×1 singletons | 3,800 | 231,284 | ×1 — deprioritised |
Unmatched fleet-wide: **14,887 instances / 912,037 ins**.
## ▶ RESUME HERE (nothing blocked, nothing running; the agent limit resets 4:20am America/Denver)
1. **The reconcile lane on the 7 PLUMBING failures** — blockers already captured in
`.run/s7_blockers.json`; hand each agent ITS line verbatim. **`func_80183A14` + `func_80183B20`
share one TU ⇒ forbid agent builds for those two** (§135's concurrency hazard). This lane has run
**12/12** across waves 2–3 and is the most reliable stage in the pipeline.
2. **Wave 4b** — 3 batches of 37, args at `.run/s7_wave4b_{1,2,3}.json`, script
`.run/s7_wave4b.js` (takes `{targets, extra}`; **`extra` is where §136's idioms go** — that
promotion is the 83%→93% law). Batch 1 carries the 4 wave-3 retries with pointers to their prior
drafts. Both wave scripts now parse args-as-string and assert `Array.isArray`, so the roadmap's
"args must be an array" gotcha cannot silently kill a launch again (it killed wave 4a's first).
3. **The 3 DIFF failures** → redraft lane, not reconcile (their C is wrong, byte-proven).
4. **T5 close** — only after re-deriving from a freshly regenerated `family_hseq`; the checklist's
ROI-floor trigger is REFUTED and must not be used to close the phase.
---
# 🛑 (superseded) SESSION-30 CHECKPOINT (2026-08-01, S6 complete through wave 3)
> **Nothing is running. Tree lock FREE. Tree CLEAN** (0 non-ghidra entries; the `db.*.gbf` churn is
> R23 restart-noise — never stage). **HEAD `commit:1352`.** Effort: xHigh → **ultracode** (Drew enabled
> mid-session for the waves). `make tools-health` green at session open; frontier REGENERATED at HEAD