Files
BFM-decomp/docs/family-hseq.md
T
Drew T d5fbd2630f fix(phase-30 S47): family_hseq derives its own SCOPE, not just its own count; + a zero-crack glossary
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.
2026-08-11 13:42:40 -06:00

6.0 KiB
Raw Blame History

Phase 26 — h_seq family survey (T1)

Glossary — zero-crack in THIS file means n_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.py from 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 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): 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