The targeting oracle stamped its scope as "the N OVERLAYS only (no main, no resident)" while
load() has scanned the md_* modules and the resident since S44. Measured at this HEAD: 141 location
overlays + 70 md_* modules + the resident = 212 binaries. That is the §159 coverage law broken by
the file that documents coverage, on the repo's most load-bearing targeting instrument — and it is
how "main is structurally barren" survived two phases unexamined.
The COUNT beside it was already derived, with a comment saying "report the scope we ACTUALLY
scanned, never a hardcoded count". The PROSE describing what the count meant was hardcoded and
rotted. Both are derived now.
Caught while fixing it: my first cut read glob(".run/sig.main.jsonl") and stamped "main INCLUDED"
the moment that file existed — while load() still did not glob it. Same defect one layer down: a
stamp describing the filesystem instead of the run. Now derived from the loaded instances.
Also added a glossary line: "zero-crack" means n_matched == 0 (needs its FIRST crack) in this map,
and the OPPOSITE (a matched exemplar awaiting propagation) in roadmap §3 T3 — a ~30x mis-scope risk
for any session reading one against the other.
NOT DONE — main inclusion (0c) is still blocked on settling the attribution. Confirmed the
mechanism: main has 49 LINKED PsyQ subsegs, corpus.stubs('main') returns 2,002 INCLUDING them,
progress.py correctly excludes them and reports 1,034 game-code stubs. progress.linked_subsegs'
own docstring records this exact trap ("an importer then classifies ~1,300 already-byte-identical
LINKED library stubs as outstanding game-code work") — and my sig-main seeded from corpus.stubs,
so it inherited the LINKED rows, which is why G2's 207-family finding was inflated.
My partition probe is NOT trustworthy: 954 of 2,002 stubs returned no asm path from
corpus.asm_path, so 199 LINKED / 849 game / 954 unresolved does not reconcile with 1,034. Fix the
probe before trusting any main-scope number.
6.0 KiB
Phase 26 — h_seq family survey (T1)
Glossary —
zero-crackin THIS file meansn_matched == 0: the family has no matched member anywhere and needs its FIRST crack. (Roadmap §3 T3 uses the phrase for the OPPOSITE case — an already-matched exemplar awaiting propagation.)
Generated by
tools/family_hseq.pyfrom the 212 binary sigs + per-binary src stubs. Ranked by TEMPLATABLE byte-weight (PURE+IMM members × nins × 4). The byte-gate is the arbiter.Scope (212 binaries): 141 location overlays + 70 md_ modules + the resident · MAIN IS EXCLUDED* · generated at HEAD
commit:1573· stub set derived fromcorpus.stubs— the same oracleprogress.pycounts, so same-tree overlay totals agree by construction; compare digests only at the same HEAD.
Fleet (overlays): 96.5% fn / 95.0% instr / 89.5% distinct-code matched. Unmatched: 12,516 instances / 678,195 ins (10,690 distinct classes).
Tail cross-check (Phase-25 close): 7,991 tail fns / 430,755 ins → 516 h_seq families ≥2, 137 substantial (nins≥80) / 79,058 ins.
Full frontier (all unmatched by h_seq): 2181 target families (≥2 members or a matched sibling) + 4513 singletons (Step-D residue). Substantial: 381 families / 175,107 templatable ins, 70 with a matched sibling (zero-crack). Substantial member classes: 1,120 PURE · 33 IMM · 6 STRUCT-excluded.
Top substantial families (by templatable byte-weight)
| # | nins | members (P/I/S) | #addr/#ov | tag | class | matched | jr | exemplar | templ. ins |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 246 | 16 (16/0/0) | 6/16 | cross-address | PURE | 0 | · | 0x8017c294 draft-ov077 | 3,936 |
| 2 | 551 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80189540 modal | 2,755 |
| 3 | 611 | 4 (4/0/0) | 4/4 | cross-address | PURE | 1 | · | 0x80186e24 matched | 2,444 |
| 4 | 770 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80144b9c matched-ov077 | 2,310 |
| 5 | 407 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x8017c3bc modal | 2,035 |
| 6 | 562 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015ae2c matched-ov077 | 1,686 |
| 7 | 281 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80186270 modal | 1,686 |
| 8 | 557 | 3 (3/0/0) | 3/3 | cross-address | PURE | 2 | Y | 0x80189030 matched | 1,671 |
| 9 | 326 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x8017d730 modal | 1,630 |
| 10 | 536 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8017a4ac matched-ov077 | 1,608 |
| 11 | 493 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015a3c8 matched-ov077 | 1,479 |
| 12 | 490 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013f350 matched-ov077 | 1,470 |
| 13 | 291 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x8017d2a4 modal | 1,455 |
| 14 | 470 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x80191320 modal | 1,410 |
| 15 | 279 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017f2d4 modal | 1,395 |
| 16 | 188 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | Y | 0x8016ab6c matched-ov077 | 1,316 |
| 17 | 438 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x801380e0 matched-ov077 | 1,314 |
| 18 | 187 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x8013dd68 matched-ov077 | 1,309 |
| 19 | 424 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80131340 matched-ov077 | 1,272 |
| 20 | 254 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188e1c modal | 1,270 |
| 21 | 198 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80185f58 modal | 1,188 |
| 22 | 385 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | Y | 0x8018ff98 modal | 1,155 |
| 23 | 185 | 6 (6/0/0) | 6/6 | cross-address | PURE | 0 | Y | 0x80187aec modal | 1,110 |
| 24 | 218 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x8017cf3c modal | 1,090 |
| 25 | 363 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015444c matched-ov077 | 1,089 |
| 26 | 102 | 10 (0/10/0) | 9/10 | scattered | IMM | 78 | · | 0x8017d290 matched | 1,020 |
| 27 | 337 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80159c84 matched-ov077 | 1,011 |
| 28 | 329 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013c414 matched-ov077 | 987 |
| 29 | 324 | 3 (3/0/0) | 2/3 | cross-address | PURE | 0 | Y | 0x80183324 draft-ov077 | 972 |
| 30 | 188 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017cbc8 modal | 940 |
| 31 | 312 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x8013faf8 matched-ov077 | 936 |
| 32 | 187 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | · | 0x8017df40 modal | 935 |
| 33 | 231 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017f83c modal | 924 |
| 34 | 890 | 1 (1/0/0) | 1/1 | per-location | PURE | 140 | Y | 0x80178d40 matched-ov077 | 890 |
| 35 | 127 | 7 (7/0/0) | 1/7 | per-location | PURE | 134 | · | 0x80145cec matched-ov077 | 889 |
| 36 | 289 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x80135eb0 matched-ov077 | 867 |
| 37 | 213 | 4 (4/0/0) | 1/4 | per-location | PURE | 137 | Y | 0x8013ffd8 matched-ov077 | 852 |
| 38 | 166 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x80188b84 modal | 830 |
| 39 | 165 | 5 (5/0/0) | 5/5 | cross-address | PURE | 0 | Y | 0x801818f0 modal | 825 |
| 40 | 272 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8013b83c matched-ov077 | 816 |
| 41 | 271 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | Y | 0x8015b950 matched-ov077 | 813 |
| 42 | 406 | 2 (2/0/0) | 2/2 | cross-address | PURE | 0 | Y | 0x80184938 modal | 812 |
| 43 | 266 | 3 (3/0/0) | 1/3 | per-location | PURE | 138 | · | 0x80130d48 matched-ov077 | 798 |
| 44 | 196 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | Y | 0x8017ffd0 modal | 784 |
| 45 | 257 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x80192b60 modal | 771 |
| 46 | 255 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x8018e9bc modal | 765 |
| 47 | 254 | 3 (3/0/0) | 3/3 | cross-address | PURE | 0 | · | 0x80192768 modal | 762 |
| 48 | 251 | 3 (3/0/0) | 3/3 | cross-address | PURE | 3 | Y | 0x80180b04 matched | 753 |
| 49 | 147 | 5 (5/0/0) | 4/5 | cross-address | PURE | 0 | Y | 0x8017ed5c modal | 735 |
| 50 | 181 | 4 (4/0/0) | 4/4 | cross-address | PURE | 0 | · | 0x8017d7c0 modal | 724 |