Files
BFM-decomp/docs/autopsy.md
T
Drew T 93d2851ab2 feat(phase-30): T0e2+T0f — autopsy refreshed (108 stranded MATCHes); frontier regenerated; the three populations PINNED (docs/frontier-p30.md)
- Autopsy 1,349 rows: 1,178 near / 63 nobuild / 108 match_one-MATCH (T1 fuel, 3x the S16 sample);
  0 classifier errors; second-oracle agree.
- THE -O0 PIN: 18 fam / 2,192 open members = 2,131 o0b-route-eligible + 61 SC07-only; 15/18
  exemplar-matched. The 'WALLED ~1,287' framing dissolves — T2 generalizes rollout_801457a4_o0.py
  (proven 130/130); jr+o0 composites (0x8013c414, 0x8013c0f8) probe x1 first.
- Zero-crack: 114 fam / 3,166 members / ~204k w-ins (28 substantial). Concentration top-20 24.0% /
  top-100 44.8%. Worklist fresh: 101 live / 261,789 gain-ins (stale 160/583k gone).
- T0 COMPLETE (a-f) — report point #1 = docs/frontier-p30.md
2026-07-30 16:45:09 -06:00

4.3 KiB

Autopsy — the permuter's failures, classified

Generated by tools/autopsy.py report from .run/autopsy/residuals.jsonl (built by collect, which recompiles every open backlog draft through tools/match_one.py and classifies the FULL residual with tools/residual_class.py).

A verdict here is a candidate, never a bank: the whole-binary byte-gate remains the sole arbiter (G3/P9).

Corpus: 1349 record(s) · 1286 classified · status {'near': 1178, 'nobuild': 63, 'match': 108}

Buckets — what tool each failure actually wants

bucket fns reach-weighted meaning
redraft 669 1068 the stored draft is NOT this function — un-attempted work misfiled as a near-miss; route to a fresh crack, not to a wall
structural 483 3551 local mutation CANNOT introduce it — wants a C-level idiom, not CPU
integration 108 1446 byte-correct standalone; blocked on plumbing (§58/§59 reconcile ladder)
permuter 24 157 local mutation CAN reach it — permuter fuel (a plateau here is a missing-transform candidate)
unknown 2 2 the residue the LLM tier is for

Classes

class fns reach-weighted bucket permuter profile
SIZE-MISMATCH 669 1068 redraft —
LENGTH-DRIFT 307 2843 structural —
MATCH 108 1446 integration —
OPCODE-MIXED 70 336 structural —
WIDTH 39 305 structural —
IMM-OFFSET 36 36 structural —
BRANCH-POLARITY 18 18 structural —
ADDRESSING 15 15 structural cse
DELAY-SLOT 12 145 permuter schedule
REGALLOC-PERM 6 6 permuter regalloc
IMM-VALUE 4 4 permuter cse
MIXED 2 2 unknown —

Top clusters (the batch-autopsy work items)

One representative per signature diagnoses the whole cluster — that is what makes the LLM pass a batch autopsy rather than N per-function reads.

# signature fns reach-weighted example
1 SIZE-MISMATCH/short 594 993 func_8017FF90 (close=4, 2 ins)
2 LENGTH-DRIFT/-1? 108 777 func_8018312C (close=5, 7 ins)
3 MATCH 108 1446 func_80168B70 (close=0, 27 ins)
4 SIZE-MISMATCH/long 75 75 func_8017E06C (close=6, 9 ins)
5 OPCODE-MIXED 61 327 func_80161C24 (close=1, 29 ins)
6 LENGTH-DRIFT/-2? 57 856 func_80190480 (close=3, 4 ins)
7 LENGTH-DRIFT/1? 55 454 func_80187074 (close=4, 7 ins)
8 LENGTH-DRIFT/2? 42 308 func_80181B8C (close=5, 11 ins)
9 LENGTH-DRIFT/-7 32 32 func_80184590 (close=9, 2 ins)
10 IMM-OFFSET/1 17 17 func_801827C4 (close=1, 13 ins)
11 WIDTH/lhu!=lh 9 9 func_80142A10 (close=1, 28 ins)
12 DELAY-SLOT/1 9 142 func_8016BA68 (close=1, 29 ins)
13 BRANCH-POLARITY/beqz!=bnez 8 8 func_8017FDB0 (close=1, 12 ins)
14 BRANCH-POLARITY/bnez!=beqz 7 7 func_80185E38 (close=1, 12 ins)
15 OPCODE-MIXED/addressing,width 5 5 func_8017F114 (close=5, 75 ins)
16 ADDRESSING/lui!=addiu 5 5 func_8017D468 (close=3, 13 ins)
17 WIDTH/sh!=lw 5 5 func_8018AFDC (close=3, 8 ins)
18 WIDTH/lw!=lhu 4 270 func_8015FBE0 (close=1, 58 ins)
19 IMM-VALUE 4 4 func_801879B0 (close=2, 10 ins)
20 WIDTH/sw!=sh 4 4 func_80185000 (close=2, 12 ins)
21 REGALLOC-PERM/$a0>$a1 3 3 func_801863D4 (close=1, 8 ins)
22 IMM-OFFSET/-3 3 3 func_80182A8C (close=1, 13 ins)
23 WIDTH/sw!=addiu 2 2 func_8017F474 (close=8, 14 ins)
24 LENGTH-DRIFT/-4? 2 135 func_80161A90 (close=26, 30 ins)
25 IMM-OFFSET/-48 2 2 func_801807D8 (close=1, 4 ins)

Second oracle — deterministic verdict vs the recorded label

The recorded klass is what a wave agent typed months ago; the verdict is derived from today's bytes. Neither is authoritative — the disagreement is the finding, and it is exactly the mis-classified bucket (a wrongly-labelled residual sends the directed search at the wrong levers, so it plateaus and then reads as a wall).

  • labelled records comparable: 1 · agree 1 · disagree 0