router: T7.1 done

This commit is contained in:
Drew T
2026-10-02 19:08:39 -06:00
parent 4ddd7f89c1
commit 9504eac300
+2 -1
View File
@@ -92,7 +92,7 @@ R3.38-001 (remaining work after P37; Gen3 constraints), R3.38-002 (type_census /
Runs after T5 so declarations are drawn on the final symbol types (wait-for keeps the tree single-writer; no file overlap with T3-T5 otherwise). Shared-header prototypes conform in every includer at once.
- T7 | superseded | expert-opus55 | title: GTE to one spelling | coder: opus55 | effort: medium | files: include/gte_inline.h, src/**/*.c, tools/gte_consolidate.py | done-when: 0 direct GTE statements in bodies and 0 per-TU asm macro definitions (lever_census --strict counts); every `_m` variant either replaced by its canonical macro (byte-proven IDENTICAL) or kept as a header-level variant in include/gte_inline.h with a `// !FAKE:` marker naming pass and instrument (R113), one definition per variant; call vs inline left per site (§195-J); gte_inline.h regenerated by gte_consolidate --header, not hand-edited; R22 green | verify: PY tools/gte_consolidate.py --selftest && PY tools/lever_census.py --check && make clean && make extract-all JOBS=16 && make check-all JOBS=16 | reads: T1, T2 | deps: T6 | est-ctx: 130k | review: no | wait-for: —
If gte_consolidate cannot express a header-level variant, extend it (decomp tool, in scope). gte-lever sites after this task are marked levers; under reading A they enter T8's residue ledger, under B T8 removes them.
- T7.1 | next | expert-opus55 | coder: opus55 | effort: medium | title: GTE to one spelling (predicate read as the census documents it) | files: include/gte_inline.h, src/**/*.c, tools/gte_consolidate.py, tools/lever_census.py | done-when: 0 GTE asm statements in bodies outside calls of include/gte_inline.h macros: lever_census --strict direct_gte (:1133) gains the via filter its own docstring (:1127-1128, 'spelled inline instead of as the header's macro call') describes, i.e. kind gte/gte-unsigned sites not via a gte_inline.h macro, with selftest controls (a via-macro call passes --strict, an inline statement fails; the 207 inline + 270 gte-unsigned sites reach 0 by respelling, each batch byte-proven); 0 per-TU asm macro definitions of kind gte (150 -> 0; the 164 launder/instruction/barrier defs are T8's, counted apart in the summary); every _m/_v variant either replaced by its canonical macro (byte-proven IDENTICAL) or kept as a header-level variant in include/gte_inline.h with a // !FAKE: marker naming pass and instrument (R113), one definition per variant (extend gte_consolidate render_header, JSON-only variants become header definitions); gte-lever sites (434) marked, left for T8's residue ledger; call vs inline left per site (§195-J); gte_inline.h regenerated by gte_consolidate --header, not hand-edited; lever_census via-macro/direct/pt-by-kind counts before and after in the summary; R22 green | verify: PY tools/gte_consolidate.py --selftest && PY tools/lever_census.py --selftest && PY tools/lever_census.py --check && make clean && make extract-all JOBS=16 && make check-all JOBS=16 | reads: T1, T2, T7 | deps: T6 | est-ctx: 130k | review: no | wait-for: —
- T7.1 | done | expert-opus55 | coder: opus55 | effort: medium | title: GTE to one spelling (predicate read as the census documents it) | files: include/gte_inline.h, src/**/*.c, tools/gte_consolidate.py, tools/lever_census.py | done-when: 0 GTE asm statements in bodies outside calls of include/gte_inline.h macros: lever_census --strict direct_gte (:1133) gains the via filter its own docstring (:1127-1128, 'spelled inline instead of as the header's macro call') describes, i.e. kind gte/gte-unsigned sites not via a gte_inline.h macro, with selftest controls (a via-macro call passes --strict, an inline statement fails; the 207 inline + 270 gte-unsigned sites reach 0 by respelling, each batch byte-proven); 0 per-TU asm macro definitions of kind gte (150 -> 0; the 164 launder/instruction/barrier defs are T8's, counted apart in the summary); every _m/_v variant either replaced by its canonical macro (byte-proven IDENTICAL) or kept as a header-level variant in include/gte_inline.h with a // !FAKE: marker naming pass and instrument (R113), one definition per variant (extend gte_consolidate render_header, JSON-only variants become header definitions); gte-lever sites (434) marked, left for T8's residue ledger; call vs inline left per site (§195-J); gte_inline.h regenerated by gte_consolidate --header, not hand-edited; lever_census via-macro/direct/pt-by-kind counts before and after in the summary; R22 green | verify: PY tools/gte_consolidate.py --selftest && PY tools/lever_census.py --selftest && PY tools/lever_census.py --check && make clean && make extract-all JOBS=16 && make check-all JOBS=16 | reads: T1, T2, T7 | deps: T6 | est-ctx: 130k | review: no | wait-for: —
- T8 | queued | expert-opus55 | title: pins and asm the unified types explain; residue ledger | coder: opus55 | effort: medium | files: src/**/*.c, config/lever_residue.tsv, docs/levers.md | done-when: delever (rungs A/B strip, R recipes with --propagate) run over every lever-carrying body rewritten by T3-T7, removals R22-green and committed; reading A: every remaining pin/asm/gte-lever site has a config/lever_residue.tsv row (pass, instrument, cause; agent-shaped ones flagged for 3.40) and `lever_census --check --strict --residue config/lever_residue.tsv` exits 0; reading B: literal --strict 0 under the developer's cap; lever_census --check 0 UNMARKED | verify: PY tools/lever_census.py --check && PY tools/lever_census.py --check --strict --residue config/lever_residue.tsv | reads: T1, T2, T7 | deps: T7 | est-ctx: 140k | review: no | wait-for: —
Calibration current before delever --apply (R56). Seed rung D only with the tree's own lever-free body (C0503). The residue ledger is 3.40's input: the 3.40 planner reads it, so causes must be specific (head class, missing parameter, carve, singleton).
- T9 | queued | expert-opus55 | title: milestone gate and record | coder: opus55 | effort: medium | files: docs/readability.md, docs/readability-progress.tsv, docs/levers.md, docs/story-timeline.md, README.md, cookbook/ | done-when: on one commit from a clean tree: type_census --check-casts --residue 0, restruct --rung S --check-residue 0 for ov_*/md_*/main/src/shared/*, --check-structs 0, lever_census --check --strict (as the developer's reading) 0, R22 218/218, make tools-health OK; delever snapshot + calibrate and restruct --selftest --real green; lever_progress --snapshot taken; readability and lever series rendered; timeline/README regenerated; cookbook entries for the phase's byte facts added; summary states before/after per form, covered residue by form and cause (from residue_census, the 3.40 canonical-types input), kept casts by cause, lying ledger size, lever residue size | verify: PY tools/type_census.py --check-casts --residue && PY tools/restruct.py --rung S --check-residue --only "ov_*" && PY tools/restruct.py --rung S --check-residue --only "md_*" && PY tools/restruct.py --rung S --check-residue --only main && PY tools/restruct.py --rung S --check-residue --only "src/shared/*" && PY tools/lever_census.py --check --strict --residue config/lever_residue.tsv && make clean && make extract-all JOBS=16 && make check-all JOBS=16 && make tools-health | reads: T1, T2, T3, T4, T5, T6, T7, T8 | deps: T8 | est-ctx: 100k | review: no | wait-for: —
@@ -126,3 +126,4 @@ R3.38-001 (remaining work after P37; Gen3 constraints), R3.38-002 (type_census /
- 2026-10-02 router: T6 next -> done
- 2026-10-02 critic: reopened T7 as T7.1 — GTE to one spelling (predicate read as the census documents it)
- 2026-10-02 critic: 2026-10-02 critic (T7 question): T7 -> T7.1, done-when clauses read as lever_census's own docstring defines them (direct = not via a gte_inline.h macro; per-TU defs of kind gte). T8 done-when gains: per-TU asm macro definitions (lever_census pt, the 164 non-GTE launder/instruction/barrier defs left after T7.1) reach 0 by deletion or by a residue-row shape for definitions (config/lever_residue.tsv kind asm-macro, func = macro name, strict_failures :1142-1143 matches rows instead of the synthetic entry, selftest control). Milestone gate wording unchanged: lever_census --check --strict --residue config/lever_residue.tsv exit 0.
- 2026-10-02 router: T7.1 next -> done