Files
BFM-decomp/phase-ends
Drew T 3233ff3f81 docs(phase-29): T71 — the byte-variant stall is an AUDIT GAP, not an immediate-engine limit
The next-list item was "measure the T2a immediate-resolution rate". The log refutes that framing: of
T70's 10 families only 152 members were refused at remap for unresolved immediates — 1,346 failed the
GATE. The immediate engine is not the bottleneck.

Diagnosed the largest failed family (0x80131eec, 15 ins x 289 members, class=IMM, cross-address):
member ov_SC01_000 @ func_80151944, imm_map entries 0 (nothing to resolve), verdict PLUMBING —
`conflicting types for func_80151944`, with the §85 guard correctly refusing to bend the draft.

Same header-vs-byte-truth class as T63/T64/T68 — but audit_header_sigs.py never flagged it:
  func_80151944 definitions in src/ : 0 (a stub in all 138)
  declarations                      : 2,022
  engine_core.h says                : s32 func_80151944(void)
  byte truth (exemplar func_80131EEC): void func_80131EEC(void *a0)

THE GAP: the audit compares a header decl against definitions OF THE SAME NAME and skips a function
that has none. For a CROSS-ADDRESS family member the byte truth is the EXEMPLAR's definition, under a
different name at a different address — so every such member is invisible to the audit while being
blocked by exactly the defect the audit exists to find. That is why item 5 keeps hitting header
conflicts the audit said were not there.

THE EXTENSION: feed .run/family_hseq.json in, so an undefined member inherits its exemplar's
signature as truth. This one would then class as ARITY ((void) vs (void *a0)) and need §99 treatment
— the extension makes the blocker VISIBLE AND NAMED, not automatically fixable.

No src/ or config/ change: no bank, no metric move. Tree clean.
2026-07-29 00:15:06 -06:00
..
2026-06-10 22:02:07 -06:00

phase-ends/ — the living record

  • PhaseEnd_Phase[N].md — written at each phase boundary (format defined in PROJECT_CONTEXT.md). Append-only history: build log, deviations, commit message, rules added, changelog. Never deleted.
  • CURRENT_PHASE.md — the in-phase autonomous log: approved phase plan, per-task checkboxes, current task pointer, blockers. Created at phase start, updated after every task, absorbed into the PhaseEnd file and deleted at phase close. This is the crash/compaction recovery point.
  • Sessions read PROJECT_CONTEXT.md, then every PhaseEnd_*.md in numeric order, then CURRENT_PHASE.md (if present) — in that order, every session.