Files
BFM-decomp/phase-ends/current/logs/T10.md
T

2.3 KiB

T10 log — residue coverage gate and 3.40 sizing

Timeline:

  • start: read card slice expert, plan Context/Interfaces/Cookbook/Research, task T10, summaries T2/T3/T4. pgrep: no restruct/type_census/delever running. HEAD a1edf89167.
  • design: one shared per-site matcher in restruct (residue_match), imported by type_census, so --check-residue and --check-casts --residue cannot disagree. Match key within body (tu, fn) = (form, s_base_norm(base), off), multiset, never line (lines drift across sweeps). Covered iff latest[("S",tu,fn)] entry verdict RESIDUAL(<cause>) and non-empty cause.
  • decision: a --residue row for a body that already has a latest S row MERGES (copies prior row incl. KEPT/MEMBER entries and verdict, appends new RESIDUAL entries); a fresh row would supersede the prior latest via ledger_latest and unback its KEPT macros.
  • decision: I/M residue capability only (selftest); not run on the tree, so the gate keeps failing on I/M per done-when.
  • c1 brief sent (restruct matcher, --forms, per-site --check-residue, merged rows, selftest, P/X rerun). Returned done: fad97b178c (tool), f991bab729 (ledger). Per-site exposed before rerun: ov 14,296 sites / 4,234 bodies; md 281/99; main 3/2; shared 0/0. Rows t10_res_ov 4,234, t10_res_md 99, t10_res_main 2 (all merged). After: uncovered 0 everywhere.
  • expert spot-check: restruct --rung S --check-residue --only main → uncovered 0 sites / 0 bodies rc 0; git log shows both c1 commits.
  • c2 brief sent (type_census --residue, residue_census.{json,txt}, selftest controls, docs/ops note, HOW_WE_WORK row). Returned done: 1246b85c38. selftest 67/67; card 6,354/7,000 chars.
  • verify (expert): .run/logs/t10_verify_a.log → type_census selftest 67/67, struct_layout 9/9, restruct 101/101, check-residue ov_/md_/main/src/shared/* each uncovered 0 sites / 0 bodies, RC=0. .run/logs/t10_verify_b.log → gate rc 1, test RC=0.
  • read .run/P37/census/residue_census.txt (77 lines) for the summary tables.

Hypotheses rejected: none needed; per-site gaps (14,580 P/X sites) were bodies with MEMBERS/KEPT rows whose undrawn-base sites were never listed (T3/T4 residue skipped any body with a row).

Retrievers: none. Reports: none. Coder logs: logs/T10.c1.md, logs/T10.c2.md (c2 log has the gate line and residue_census tables verbatim).