diff --git a/.claude-state/ledger/wsl-phase3.39.jsonl.gz b/.claude-state/ledger/wsl-phase3.39.jsonl.gz new file mode 100644 index 0000000000..4ef4f214b5 Binary files /dev/null and b/.claude-state/ledger/wsl-phase3.39.jsonl.gz differ diff --git a/GENERATION_PLAN.md b/GENERATION_PLAN.md index f757a4ad2a..0b7cda8e78 100644 --- a/GENERATION_PLAN.md +++ b/GENERATION_PLAN.md @@ -12,7 +12,7 @@ Numbering: this is the project's Gen3 continued (Gen1 = P1-7, Gen2 = P8-34, Gen3 Order = build order. `depends:` names phase ids or `—`. Only plan_edit.py gen-close|gen-open flips `status:`. --> - 3.38 Struct unification | milestone: `make tools-health` OK and `make kit-corpus` clean at phase start; `PY tools/type_census.py --check` → 0 duplicate defs, 0 dead names, controls 4/4 (from 7,255 defs / 206 dup classes / 40 variant camps / 26 `pad` names); 0 parse-error decls in the census; R22 218/218 | scope: old Phase 38 (legacy P37 carry T5) — owed tools-health + kit-corpus, R22 baseline, `delever_oracle --snapshot-baseline` + `--calibrate ov_SC04_011 ov_SC03_015 md_SC07_004 main -j 16` before the first batch; unify head types first (`Unkstruct_80126B58` entity, `Unkstruct_80078E00` player block, `Unkstruct_800B5CB8`), union-vs-split per offset decided by the expert at `effort: high`; then the long tail via `tools/lift_types.py`; the 1,537 types-floor lying decls, 417 conflicting types, 45 TU-CONFLICT rows; owed fixes `docs/actor-struct.md` and the 13 syntax-error units in `src/800.c` | depends: — | status: closed | phase-end: phase-ends/PhaseEnd_Phase3.38.md -- 3.39 Casts to declared data | milestone: 0 raw address casts in the 4 census forms (reinterpret macros counted apart, each with its instrument); `PY tools/lever_census.py --check --strict` 0 (from 3,730); lying-decl census 0 outside ledgered exceptions; R22 218/218 | scope: legacy T6 — the 503,016 cast sites become member accesses / declared symbols, kept casts only where the gate proves the spelling moves bytes (cookbook §458, per-site minimal kept-cast set); GTE `_m` variants and direct GTE statements to one spelling; the surviving pins that the unified types now explain; body and declaration rewrites are expected, the object bytes are the gate; header edits batched (one header edit re-fans ~3,900 objects, ~6 min) | depends: 3.38 | status: open | phase-end: phase-ends/PhaseEnd_Phase3.39.md +- 3.39 Casts to declared data | milestone: 0 raw address casts in the 4 census forms (reinterpret macros counted apart, each with its instrument); `PY tools/lever_census.py --check --strict` 0 (from 3,730); lying-decl census 0 outside ledgered exceptions; R22 218/218 | scope: legacy T6 — the 503,016 cast sites become member accesses / declared symbols, kept casts only where the gate proves the spelling moves bytes (cookbook §458, per-site minimal kept-cast set); GTE `_m` variants and direct GTE statements to one spelling; the surviving pins that the unified types now explain; body and declaration rewrites are expected, the object bytes are the gate; header edits batched (one header edit re-fans ~3,900 objects, ~6 min) | depends: 3.38 | status: closed | phase-end: phase-ends/PhaseEnd_Phase3.39.md - 3.40 Residue lane (toggleable) | milestone: every residue item from 3.39's ledger either off at the gate or marked with its pass, instrument and cause; `lever_census --check` 0 UNMARKED; R22 218/218 | scope: legacy T7 — the func_801A1E94/func_801A5C44 pair, same-address copies of 5 functions, 5 return-type lies, func_8016BF50, and whatever 3.39 ledgers as agent-shaped; developer decision: whether it runs and at what agent cap is decided when 3.39's ledger is known (no cap set now); skipped (closed as not-run) if declined | depends: 3.39 | status: open | phase-end: phase-ends/PhaseEnd_Phase3.40.md - 3.41 Types validated and mirrored | milestone: `type_census --check` wired into `make tools-health` and green; `attribution_check` folded into `lever_census`; canonical types authored into the Ghidra database from text and `tools/ghidra_rebuild.sh --proof` PASS; `PY tools/doc_links.py --strict` 0/0; clean-tree R22 218/218 | scope: legacy T8+T9 — the gates that keep 3.38-3.40 from regressing, the Ghidra mirror, the record (cookbook, wiki chapter, §396(a) correction, kit corpus regenerated) | depends: 3.38, 3.39 | status: open | phase-end: phase-ends/PhaseEnd_Phase3.41.md - 3.42 Rename harness and shared-function form | milestone: a rename scanner (R32) asserts every reference to a renamed symbol rewritten, proven on one known rename and one planted miss; 3,801 cross-address classes in the parameterized `SHARED_FN` form (0 left) and the 20 trampoline families shared; a leverage ranking of data symbols and functions (xrefs, struct ownership, shared-body fan-out) written with its denominator; R22 218/218; ghidra `--proof` PASS | scope: the byte-neutral naming machinery before any name — symbol-file renames mirrored through `tools/ghidra_apply_symbols.sh`, the S1 one-source-per-function gate kept at 0 violations | depends: 3.41 | status: open | phase-end: phase-ends/PhaseEnd_Phase3.42.md @@ -49,3 +49,4 @@ Numbering: this is the project's Gen3 continued (Gen1 = P1-7, Gen2 = P8-34, Gen3 - 2026-09-30 router: phase 3.38 status -> closed +- 2026-10-02 router: phase 3.39 status -> closed diff --git a/docs/ops/INDEX.md b/docs/ops/INDEX.md index d879091ce0..89dbad3b3e 100644 --- a/docs/ops/INDEX.md +++ b/docs/ops/INDEX.md @@ -53,10 +53,13 @@ ops-setup-decomp.md | extract the medium and verify against the committed manife wsl-disk-capped-75gb.md | wsl-disk-capped-75gb | 34 p38-t4-2026-09-29-restruct-head-fold-mode.md | §P38 T4 — 2026-09-29: restruct rung L head-fold mode | 9 p39-t1-2026-10-01-restruct-stale-supersede-timeline-check.md | §P39 T1 — 2026-10-01: restruct stale-row supersede; timeline --check | 5 -p39-t3-2026-10-02-restruct-rung-s-residue-head-types-add-pads.md | §P39 T3 — 2026-10-02: restruct rung S residue/check-residue; head_types --add-pads | 6 +p39-t3-2026-10-02-restruct-rung-s-residue-head-types-add-pads.md | §P39 T3 — 2026-10-02: restruct rung S residue/check-residue; head_types --add-pads | 8 p39-t4-2026-10-02-restruct-only-main.md | §P39 T4 — 2026-10-02: restruct --only main | 5 -p39-t10-2026-10-02-check-casts-residue.md | §P39 T10 — 2026-10-02: type_census --check-casts --residue; restruct --forms per-site residue | 5 -p39-t5-2026-10-02-restruct-im-recipes.md | §P39 T5 — 2026-10-02: restruct rung S --forms I,M recipe ladder; residue GADDR | 6 +p39-t10-2026-10-02-check-casts-residue.md | §P39 T10 — 2026-10-02: type_census --check-casts --residue; restruct --forms per-site residue | 7 +p39-t5-2026-10-02-restruct-im-recipes.md | §P39 T5 — 2026-10-02: restruct rung S --forms I,M recipe ladder; residue GADDR | 9 +p39-t6-2026-10-02-restruct-rung-d-callers.md | §P39 T6 — 2026-10-02: restruct rung D caller-only units, alias defs, shared-header scope | 6 +p39-t71-2026-10-02-gte-one-spelling.md | §P39 T7.1 — 2026-10-02: GTE to one spelling | 5 +p39-t8-2026-10-02-lever-residue.md | §P39 T8 — 2026-10-02: lever_census --write-residue; config/lever_residue.tsv | 2 | p39-t6-2026-10-02-restruct-rung-d-callers.md | §P39 T6 — 2026-10-02: restruct rung D caller-only units, alias defs, shared-header def scope | 4 | p39-t71-2026-10-02-gte-one-spelling.md | §P39 T7.1 — 2026-10-02: lever_census strict via-header filter; gte_consolidate header variants, --keep-levers | 4 | p39-t8-2026-10-02-lever-residue.md | §P39 T8 — 2026-10-02: lever_census --write-residue; config/lever_residue.tsv columns and cause vocabulary | 2 diff --git a/phase-ends/DISCUSSION_INDEX.md b/phase-ends/DISCUSSION_INDEX.md index 1436f83fee..67c93ccf1a 100644 --- a/phase-ends/DISCUSSION_INDEX.md +++ b/phase-ends/DISCUSSION_INDEX.md @@ -1,3 +1,5 @@ # Discussions -- cumulative # phase | id | topic | date | status | path 3.38 | D1 | - | 2026-09-29 | executed | phase-ends/current/phase-3.38/discussions/D1.md +3.39 | I1 | Phase 3.39 first task: regenerate the timeline and README after the 3.38 close (tools/timeline.py; tools/progress.py --r | 2026-10-01 | planned:3.39/T1 | phase-ends/current/phase-3.39/discussions/inbox-20261001-101339.md +3.39 | D1 | README debt chart tracking and P3.39 progress; keeping the developer in the loop | 2026-10-02 | executed | phase-ends/current/phase-3.39/discussions/D1.md diff --git a/phase-ends/RESEARCH_INDEX.md b/phase-ends/RESEARCH_INDEX.md index 6010a8c563..cdc0e7e638 100644 --- a/phase-ends/RESEARCH_INDEX.md +++ b/phase-ends/RESEARCH_INDEX.md @@ -3,3 +3,4 @@ 3.38 | R3.38-001 | remaining work after P37 close (T5-T10, P35/P36 end-state, Gen3 roadmap, constraints, open decisions) | What remains after Phase 37; shape of next generation | phase37, phase38, structs, gen3, roadmap, constraints | retriever-digest | 2026-09-29 | 35 lines | phase-3.38/research/R3.38-001.md 3.38 | R3.38-002 | dup-class tiers, dead_canon_names, outside_canon, check-structs, selftest, lift_types scope | type_census / lift_types mechanics | type_census, lift_types, tier, dead_canon, check-structs | retriever-code | 2026-09-30 | 31 lines | phase-3.38/research/R3.38-002.md 3.38 | R3.38-003 | terse chronological digest of T5.1 coder logs for writing logs/T5.1.md and tasks/T5.1.md | T5.1 coder-log digest (c1..c8) | T5.1, bfm-decomp, type_census, lift_types, struct_twins | retriever-digest | 2026-09-30 | 41 lines | phase-3.38/research/R3.38-003.md +3.39 | R3.39-001 | find instruments for phase 3.39 | P39 cast/lever/lying-decl instruments | type_census, lever_census, argcheck, gte_inline | retriever-code | 2026-10-01 | 21 lines | phase-3.39/research/R3.39-001.md diff --git a/phase-ends/TASK_INDEX.md b/phase-ends/TASK_INDEX.md index 70000afd32..806f9a33c8 100644 --- a/phase-ends/TASK_INDEX.md +++ b/phase-ends/TASK_INDEX.md @@ -11,3 +11,15 @@ 3.38 | T8 | done | docs/formats.md: LIST.CD verified on US, runtime reader, repack note, LZSS ring + terminator rules | - | phase-3.38/tasks/T8.md | phase-3.38/logs/T8.md | - 3.38 | T9 | review | story §10 + retrospective §7 for P37 T5-close, PA3 migration and P38 | - | phase-3.38/tasks/T9.md | phase-3.38/logs/T9.md | - 3.38 | T10 | done | publish the P38 type census in README and timeline | - | phase-3.38/tasks/T10.md | phase-3.38/logs/T10.md | - +3.39 | T1 | done | phase-start health, carry cleanup and baselines | - | phase-3.39/tasks/T1.md | phase-3.39/logs/T1.md | R3.39-001 +3.39 | T2 | done | cast and lying gate instruments, reinterpret-macro set | - | phase-3.39/tasks/T2.md | phase-3.39/logs/T2.md | - +3.39 | T3 | done | rung S sweep, overlays (forms P and X) | - | phase-3.39/tasks/T3.md | phase-3.39/logs/T3.md | - +3.39 | T4 | blocked | rung S sweep, md_*, main and shared bodies (forms P and X) | - | phase-3.39/tasks/T4.md | phase-3.39/logs/T4.md | - +3.39 | T10 | done | residue coverage gate (--check-casts --residue) and 3.40 sizing | - | phase-3.39/tasks/T10.md | phase-3.39/logs/T10.md | - +3.39 | T5 | done | globals and absolute addresses to declared symbols (forms I and M, residual non-struct bases) | - | phase-3.39/tasks/T5.md | phase-3.39/logs/T5.md | - +3.39 | T11 | done | progress snapshot and chart catch-up | - | phase-3.39/tasks/T11.md | phase-3.39/logs/T11.md | - +3.39 | T6 | done | lying declarations to 0 outside the ledger | - | phase-3.39/tasks/T6.md | phase-3.39/logs/T6.md | - +3.39 | T7.1 | done | GTE to one spelling (predicate read as the census documents it) | - | phase-3.39/tasks/T7.1.md | phase-3.39/logs/T7.1.md | - +3.39 | T8 | done | pins and asm the unified types explain; residue ledger | - | phase-3.39/tasks/T8.md | phase-3.39/logs/T8.md | - +3.39 | T9 | done | milestone gate and record (Phase 3.39, the cast campaign, reading A) | - | phase-3.39/tasks/T9.md | phase-3.39/logs/T9.md | - +3.39 | T12 | done | phase-close docs: README graphs, story and hindsight lessons, wiki (Phase 3.39) | - | phase-3.39/tasks/T12.md | phase-3.39/logs/T12.md | - diff --git a/phase-ends/current/discussions/INDEX.md b/phase-ends/current/discussions/INDEX.md index df8756974b..30845492f5 100644 --- a/phase-ends/current/discussions/INDEX.md +++ b/phase-ends/current/discussions/INDEX.md @@ -1,4 +1,2 @@ # Discussions -- one line per record # id | topic | date | status | path -I1 | Phase 3.39 first task: regenerate the timeline and README after the 3.38 close (tools/timeline.py; tools/progress.py --r | 2026-10-01 | planned:3.39/T1 | phase-ends/current/discussions/inbox-20261001-101339.md -D1 | README debt chart tracking and P3.39 progress; keeping the developer in the loop | 2026-10-02 | executed | phase-ends/current/discussions/D1.md diff --git a/phase-ends/current/research/INDEX.md b/phase-ends/current/research/INDEX.md index 46e9e7502d..0284445f70 100644 --- a/phase-ends/current/research/INDEX.md +++ b/phase-ends/current/research/INDEX.md @@ -1,3 +1,2 @@ # Research reports -- this phase # id | task | title | tags | agent | date | lines -R3.39-001 | find instruments for phase 3.39 | P39 cast/lever/lying-decl instruments | type_census, lever_census, argcheck, gte_inline | retriever-code | 2026-10-01 | 21 lines diff --git a/phase-ends/current/tasks/INDEX.md b/phase-ends/current/tasks/INDEX.md index da98fe6ffb..e4871fee82 100644 --- a/phase-ends/current/tasks/INDEX.md +++ b/phase-ends/current/tasks/INDEX.md @@ -1,14 +1,2 @@ # Task summaries -- this phase # id | status | title | tags | summary | log | research -T1 | done | phase-start health, carry cleanup and baselines | - | tasks/T1.md | logs/T1.md | R3.39-001 -T2 | done | cast and lying gate instruments, reinterpret-macro set | - | tasks/T2.md | logs/T2.md | - -T3 | done | rung S sweep, overlays (forms P and X) | - | tasks/T3.md | logs/T3.md | - -T4 | blocked | rung S sweep, md_*, main and shared bodies (forms P and X) | - | tasks/T4.md | logs/T4.md | - -T10 | done | residue coverage gate (--check-casts --residue) and 3.40 sizing | - | tasks/T10.md | logs/T10.md | - -T5 | done | globals and absolute addresses to declared symbols (forms I and M, residual non-struct bases) | - | tasks/T5.md | logs/T5.md | - -T11 | done | progress snapshot and chart catch-up | - | tasks/T11.md | logs/T11.md | - -T6 | done | lying declarations to 0 outside the ledger | - | tasks/T6.md | logs/T6.md | - -T7.1 | done | GTE to one spelling (predicate read as the census documents it) | - | tasks/T7.1.md | logs/T7.1.md | - -T8 | done | pins and asm the unified types explain; residue ledger | - | tasks/T8.md | logs/T8.md | - -T9 | done | milestone gate and record (Phase 3.39, the cast campaign, reading A) | - | tasks/T9.md | logs/T9.md | - -T12 | done | phase-close docs: README graphs, story and hindsight lessons, wiki (Phase 3.39) | - | tasks/T12.md | logs/T12.md | - diff --git a/phase-ends/phase-3.39/INBOX.md b/phase-ends/phase-3.39/INBOX.md new file mode 100644 index 0000000000..f7061a848e --- /dev/null +++ b/phase-ends/phase-3.39/INBOX.md @@ -0,0 +1,13 @@ +# INBOX + + + +- diff --git a/phase-ends/current/PHASE_PLAN.md b/phase-ends/phase-3.39/PHASE_PLAN.md similarity index 100% rename from phase-ends/current/PHASE_PLAN.md rename to phase-ends/phase-3.39/PHASE_PLAN.md diff --git a/phase-ends/current/PHASE_PLAN.v1.md b/phase-ends/phase-3.39/PHASE_PLAN.v1.md similarity index 100% rename from phase-ends/current/PHASE_PLAN.v1.md rename to phase-ends/phase-3.39/PHASE_PLAN.v1.md diff --git a/phase-ends/current/RECAP.md b/phase-ends/phase-3.39/RECAP.md similarity index 100% rename from phase-ends/current/RECAP.md rename to phase-ends/phase-3.39/RECAP.md diff --git a/phase-ends/phase-3.39/discussions/D1.md b/phase-ends/phase-3.39/discussions/D1.md new file mode 100644 index 0000000000..0a021f7eb5 --- /dev/null +++ b/phase-ends/phase-3.39/discussions/D1.md @@ -0,0 +1,20 @@ +# D1 — README debt chart tracking and P3.39 progress; keeping the developer in the loop (2026-10-02, session router) +Status: executed + +## Decisions +- Option 3 (recommended; developer said /proceed without picking another): catch-up chart task after T5 + standing per-task snapshot rule. +- New task after T5: readability_progress --snapshot, timeline.py, progress.py --readme; README Types reads live check-casts numbers + uncovered split. +- binding: every census-moving task closes with readability_progress --snapshot "P T", timeline.py, progress.py --readme in its T commit, and a `progress:` line in its summary's Done (raw P/I/X/M, uncovered, levers, lying, milestone gates passed). +- Facts behind it: chart panel exists (timeline.py ← docs/readability-progress.tsv, docs/lever-progress.tsv) but last cast row = P38 close 502,983; raw now 337,889 (−165,094, −32.8%; tasks/T1.md, T10.md); 281,252 P/X ledgered RESIDUAL (TNC dominant), I 35,625 / M 14,762 uncovered (T5). + +## Plan edits +- PY tools/plan_edit.py add-task --after T5 --title "progress snapshot and chart catch-up" --done-when "docs/readability-progress.tsv has a P39 row at this commit; timeline.py --check fresh; README Types reads the live check-casts numbers and the uncovered split" --files docs/readability-progress.tsv,docs/story-timeline.md,docs/story-timeline.svg,README.md,docs/progress.json --verify "PY tools/readability_progress.py --check && PY tools/timeline.py --check" --by developer (executed: no) +- PY tools/plan_edit.py append-change --by developer "D1 2026-10-02: every census-moving task closes with readability_progress --snapshot, timeline.py, progress.py --readme in its commit and a 'progress:' line in its summary Done" (executed: no) + +## Open +- Router quoting each task's `progress:` line to the developer at task close: harness (.claude/) change, developer's own edit or next planner session. +- Levers 3,711 in working tree (vs 3,729 at T1) is uncommitted, likely T5; unverified. +- Card (HOW_WE_WORK.md) row for the binding rule: lands at phase end via the binding: path. + +## Deferred +- deferred: "uncovered" series beside raw casts in the timeline chart (so green-by-ledger does not read as debt gone) → 3.40 diff --git a/phase-ends/phase-3.39/discussions/INDEX.md b/phase-ends/phase-3.39/discussions/INDEX.md new file mode 100644 index 0000000000..df8756974b --- /dev/null +++ b/phase-ends/phase-3.39/discussions/INDEX.md @@ -0,0 +1,4 @@ +# Discussions -- one line per record +# id | topic | date | status | path +I1 | Phase 3.39 first task: regenerate the timeline and README after the 3.38 close (tools/timeline.py; tools/progress.py --r | 2026-10-01 | planned:3.39/T1 | phase-ends/current/discussions/inbox-20261001-101339.md +D1 | README debt chart tracking and P3.39 progress; keeping the developer in the loop | 2026-10-02 | executed | phase-ends/current/discussions/D1.md diff --git a/phase-ends/current/discussions/inbox-20261001-101339.md b/phase-ends/phase-3.39/discussions/inbox-20261001-101339.md similarity index 100% rename from phase-ends/current/discussions/inbox-20261001-101339.md rename to phase-ends/phase-3.39/discussions/inbox-20261001-101339.md diff --git a/phase-ends/current/logs/T1.c1.md b/phase-ends/phase-3.39/logs/T1.c1.md similarity index 100% rename from phase-ends/current/logs/T1.c1.md rename to phase-ends/phase-3.39/logs/T1.c1.md diff --git a/phase-ends/current/logs/T1.c2.md b/phase-ends/phase-3.39/logs/T1.c2.md similarity index 100% rename from phase-ends/current/logs/T1.c2.md rename to phase-ends/phase-3.39/logs/T1.c2.md diff --git a/phase-ends/current/logs/T1.md b/phase-ends/phase-3.39/logs/T1.md similarity index 100% rename from phase-ends/current/logs/T1.md rename to phase-ends/phase-3.39/logs/T1.md diff --git a/phase-ends/current/logs/T10.c1.md b/phase-ends/phase-3.39/logs/T10.c1.md similarity index 100% rename from phase-ends/current/logs/T10.c1.md rename to phase-ends/phase-3.39/logs/T10.c1.md diff --git a/phase-ends/current/logs/T10.c2.md b/phase-ends/phase-3.39/logs/T10.c2.md similarity index 100% rename from phase-ends/current/logs/T10.c2.md rename to phase-ends/phase-3.39/logs/T10.c2.md diff --git a/phase-ends/current/logs/T10.md b/phase-ends/phase-3.39/logs/T10.md similarity index 100% rename from phase-ends/current/logs/T10.md rename to phase-ends/phase-3.39/logs/T10.md diff --git a/phase-ends/current/logs/T11.c1.md b/phase-ends/phase-3.39/logs/T11.c1.md similarity index 100% rename from phase-ends/current/logs/T11.c1.md rename to phase-ends/phase-3.39/logs/T11.c1.md diff --git a/phase-ends/current/logs/T11.md b/phase-ends/phase-3.39/logs/T11.md similarity index 100% rename from phase-ends/current/logs/T11.md rename to phase-ends/phase-3.39/logs/T11.md diff --git a/phase-ends/current/logs/T12.c1.md b/phase-ends/phase-3.39/logs/T12.c1.md similarity index 100% rename from phase-ends/current/logs/T12.c1.md rename to phase-ends/phase-3.39/logs/T12.c1.md diff --git a/phase-ends/current/logs/T12.md b/phase-ends/phase-3.39/logs/T12.md similarity index 100% rename from phase-ends/current/logs/T12.md rename to phase-ends/phase-3.39/logs/T12.md diff --git a/phase-ends/current/logs/T2.c1.md b/phase-ends/phase-3.39/logs/T2.c1.md similarity index 100% rename from phase-ends/current/logs/T2.c1.md rename to phase-ends/phase-3.39/logs/T2.c1.md diff --git a/phase-ends/current/logs/T2.c2.md b/phase-ends/phase-3.39/logs/T2.c2.md similarity index 100% rename from phase-ends/current/logs/T2.c2.md rename to phase-ends/phase-3.39/logs/T2.c2.md diff --git a/phase-ends/current/logs/T2.c3.md b/phase-ends/phase-3.39/logs/T2.c3.md similarity index 100% rename from phase-ends/current/logs/T2.c3.md rename to phase-ends/phase-3.39/logs/T2.c3.md diff --git a/phase-ends/current/logs/T2.md b/phase-ends/phase-3.39/logs/T2.md similarity index 100% rename from phase-ends/current/logs/T2.md rename to phase-ends/phase-3.39/logs/T2.md diff --git a/phase-ends/current/logs/T3.c1.md b/phase-ends/phase-3.39/logs/T3.c1.md similarity index 100% rename from phase-ends/current/logs/T3.c1.md rename to phase-ends/phase-3.39/logs/T3.c1.md diff --git a/phase-ends/current/logs/T3.c2.md b/phase-ends/phase-3.39/logs/T3.c2.md similarity index 100% rename from phase-ends/current/logs/T3.c2.md rename to phase-ends/phase-3.39/logs/T3.c2.md diff --git a/phase-ends/current/logs/T3.c3.md b/phase-ends/phase-3.39/logs/T3.c3.md similarity index 100% rename from phase-ends/current/logs/T3.c3.md rename to phase-ends/phase-3.39/logs/T3.c3.md diff --git a/phase-ends/current/logs/T3.c4.md b/phase-ends/phase-3.39/logs/T3.c4.md similarity index 100% rename from phase-ends/current/logs/T3.c4.md rename to phase-ends/phase-3.39/logs/T3.c4.md diff --git a/phase-ends/current/logs/T3.c5.md b/phase-ends/phase-3.39/logs/T3.c5.md similarity index 100% rename from phase-ends/current/logs/T3.c5.md rename to phase-ends/phase-3.39/logs/T3.c5.md diff --git a/phase-ends/current/logs/T3.c6.md b/phase-ends/phase-3.39/logs/T3.c6.md similarity index 100% rename from phase-ends/current/logs/T3.c6.md rename to phase-ends/phase-3.39/logs/T3.c6.md diff --git a/phase-ends/current/logs/T3.c7.md b/phase-ends/phase-3.39/logs/T3.c7.md similarity index 100% rename from phase-ends/current/logs/T3.c7.md rename to phase-ends/phase-3.39/logs/T3.c7.md diff --git a/phase-ends/current/logs/T3.c8.md b/phase-ends/phase-3.39/logs/T3.c8.md similarity index 100% rename from phase-ends/current/logs/T3.c8.md rename to phase-ends/phase-3.39/logs/T3.c8.md diff --git a/phase-ends/current/logs/T3.md b/phase-ends/phase-3.39/logs/T3.md similarity index 100% rename from phase-ends/current/logs/T3.md rename to phase-ends/phase-3.39/logs/T3.md diff --git a/phase-ends/current/logs/T3.progress1.md b/phase-ends/phase-3.39/logs/T3.progress1.md similarity index 100% rename from phase-ends/current/logs/T3.progress1.md rename to phase-ends/phase-3.39/logs/T3.progress1.md diff --git a/phase-ends/current/logs/T3.progress2.md b/phase-ends/phase-3.39/logs/T3.progress2.md similarity index 100% rename from phase-ends/current/logs/T3.progress2.md rename to phase-ends/phase-3.39/logs/T3.progress2.md diff --git a/phase-ends/current/logs/T4.c1.md b/phase-ends/phase-3.39/logs/T4.c1.md similarity index 100% rename from phase-ends/current/logs/T4.c1.md rename to phase-ends/phase-3.39/logs/T4.c1.md diff --git a/phase-ends/current/logs/T4.c2.md b/phase-ends/phase-3.39/logs/T4.c2.md similarity index 100% rename from phase-ends/current/logs/T4.c2.md rename to phase-ends/phase-3.39/logs/T4.c2.md diff --git a/phase-ends/current/logs/T4.md b/phase-ends/phase-3.39/logs/T4.md similarity index 100% rename from phase-ends/current/logs/T4.md rename to phase-ends/phase-3.39/logs/T4.md diff --git a/phase-ends/current/logs/T4.progress1.md b/phase-ends/phase-3.39/logs/T4.progress1.md similarity index 100% rename from phase-ends/current/logs/T4.progress1.md rename to phase-ends/phase-3.39/logs/T4.progress1.md diff --git a/phase-ends/current/logs/T4.progress2.md b/phase-ends/phase-3.39/logs/T4.progress2.md similarity index 100% rename from phase-ends/current/logs/T4.progress2.md rename to phase-ends/phase-3.39/logs/T4.progress2.md diff --git a/phase-ends/current/logs/T5.c1.md b/phase-ends/phase-3.39/logs/T5.c1.md similarity index 100% rename from phase-ends/current/logs/T5.c1.md rename to phase-ends/phase-3.39/logs/T5.c1.md diff --git a/phase-ends/current/logs/T5.c2.md b/phase-ends/phase-3.39/logs/T5.c2.md similarity index 100% rename from phase-ends/current/logs/T5.c2.md rename to phase-ends/phase-3.39/logs/T5.c2.md diff --git a/phase-ends/current/logs/T5.c3.md b/phase-ends/phase-3.39/logs/T5.c3.md similarity index 100% rename from phase-ends/current/logs/T5.c3.md rename to phase-ends/phase-3.39/logs/T5.c3.md diff --git a/phase-ends/current/logs/T5.c4.md b/phase-ends/phase-3.39/logs/T5.c4.md similarity index 100% rename from phase-ends/current/logs/T5.c4.md rename to phase-ends/phase-3.39/logs/T5.c4.md diff --git a/phase-ends/current/logs/T5.c5.md b/phase-ends/phase-3.39/logs/T5.c5.md similarity index 100% rename from phase-ends/current/logs/T5.c5.md rename to phase-ends/phase-3.39/logs/T5.c5.md diff --git a/phase-ends/current/logs/T5.md b/phase-ends/phase-3.39/logs/T5.md similarity index 100% rename from phase-ends/current/logs/T5.md rename to phase-ends/phase-3.39/logs/T5.md diff --git a/phase-ends/current/logs/T5.progress1.md b/phase-ends/phase-3.39/logs/T5.progress1.md similarity index 100% rename from phase-ends/current/logs/T5.progress1.md rename to phase-ends/phase-3.39/logs/T5.progress1.md diff --git a/phase-ends/current/logs/T6.c1.md b/phase-ends/phase-3.39/logs/T6.c1.md similarity index 100% rename from phase-ends/current/logs/T6.c1.md rename to phase-ends/phase-3.39/logs/T6.c1.md diff --git a/phase-ends/current/logs/T6.c1.progress1.md b/phase-ends/phase-3.39/logs/T6.c1.progress1.md similarity index 100% rename from phase-ends/current/logs/T6.c1.progress1.md rename to phase-ends/phase-3.39/logs/T6.c1.progress1.md diff --git a/phase-ends/current/logs/T6.c2.md b/phase-ends/phase-3.39/logs/T6.c2.md similarity index 100% rename from phase-ends/current/logs/T6.c2.md rename to phase-ends/phase-3.39/logs/T6.c2.md diff --git a/phase-ends/current/logs/T6.md b/phase-ends/phase-3.39/logs/T6.md similarity index 100% rename from phase-ends/current/logs/T6.md rename to phase-ends/phase-3.39/logs/T6.md diff --git a/phase-ends/current/logs/T7.1.c1.md b/phase-ends/phase-3.39/logs/T7.1.c1.md similarity index 100% rename from phase-ends/current/logs/T7.1.c1.md rename to phase-ends/phase-3.39/logs/T7.1.c1.md diff --git a/phase-ends/current/logs/T7.1.c2.md b/phase-ends/phase-3.39/logs/T7.1.c2.md similarity index 100% rename from phase-ends/current/logs/T7.1.c2.md rename to phase-ends/phase-3.39/logs/T7.1.c2.md diff --git a/phase-ends/current/logs/T7.1.c3.md b/phase-ends/phase-3.39/logs/T7.1.c3.md similarity index 100% rename from phase-ends/current/logs/T7.1.c3.md rename to phase-ends/phase-3.39/logs/T7.1.c3.md diff --git a/phase-ends/current/logs/T7.1.md b/phase-ends/phase-3.39/logs/T7.1.md similarity index 100% rename from phase-ends/current/logs/T7.1.md rename to phase-ends/phase-3.39/logs/T7.1.md diff --git a/phase-ends/current/logs/T7.md b/phase-ends/phase-3.39/logs/T7.md similarity index 100% rename from phase-ends/current/logs/T7.md rename to phase-ends/phase-3.39/logs/T7.md diff --git a/phase-ends/current/logs/T8.c1.md b/phase-ends/phase-3.39/logs/T8.c1.md similarity index 100% rename from phase-ends/current/logs/T8.c1.md rename to phase-ends/phase-3.39/logs/T8.c1.md diff --git a/phase-ends/current/logs/T8.c2.md b/phase-ends/phase-3.39/logs/T8.c2.md similarity index 100% rename from phase-ends/current/logs/T8.c2.md rename to phase-ends/phase-3.39/logs/T8.c2.md diff --git a/phase-ends/current/logs/T8.c3.md b/phase-ends/phase-3.39/logs/T8.c3.md similarity index 100% rename from phase-ends/current/logs/T8.c3.md rename to phase-ends/phase-3.39/logs/T8.c3.md diff --git a/phase-ends/current/logs/T8.c4.md b/phase-ends/phase-3.39/logs/T8.c4.md similarity index 100% rename from phase-ends/current/logs/T8.c4.md rename to phase-ends/phase-3.39/logs/T8.c4.md diff --git a/phase-ends/current/logs/T8.md b/phase-ends/phase-3.39/logs/T8.md similarity index 100% rename from phase-ends/current/logs/T8.md rename to phase-ends/phase-3.39/logs/T8.md diff --git a/phase-ends/current/logs/T8.progress1.md b/phase-ends/phase-3.39/logs/T8.progress1.md similarity index 100% rename from phase-ends/current/logs/T8.progress1.md rename to phase-ends/phase-3.39/logs/T8.progress1.md diff --git a/phase-ends/current/logs/T9.c1.md b/phase-ends/phase-3.39/logs/T9.c1.md similarity index 100% rename from phase-ends/current/logs/T9.c1.md rename to phase-ends/phase-3.39/logs/T9.c1.md diff --git a/phase-ends/current/logs/T9.md b/phase-ends/phase-3.39/logs/T9.md similarity index 100% rename from phase-ends/current/logs/T9.md rename to phase-ends/phase-3.39/logs/T9.md diff --git a/phase-ends/current/research/.next b/phase-ends/phase-3.39/research/.next similarity index 100% rename from phase-ends/current/research/.next rename to phase-ends/phase-3.39/research/.next diff --git a/phase-ends/phase-3.39/research/INDEX.md b/phase-ends/phase-3.39/research/INDEX.md new file mode 100644 index 0000000000..46e9e7502d --- /dev/null +++ b/phase-ends/phase-3.39/research/INDEX.md @@ -0,0 +1,3 @@ +# Research reports -- this phase +# id | task | title | tags | agent | date | lines +R3.39-001 | find instruments for phase 3.39 | P39 cast/lever/lying-decl instruments | type_census, lever_census, argcheck, gte_inline | retriever-code | 2026-10-01 | 21 lines diff --git a/phase-ends/current/research/R3.39-001.md b/phase-ends/phase-3.39/research/R3.39-001.md similarity index 100% rename from phase-ends/current/research/R3.39-001.md rename to phase-ends/phase-3.39/research/R3.39-001.md diff --git a/phase-ends/phase-3.39/tasks/INDEX.md b/phase-ends/phase-3.39/tasks/INDEX.md new file mode 100644 index 0000000000..da98fe6ffb --- /dev/null +++ b/phase-ends/phase-3.39/tasks/INDEX.md @@ -0,0 +1,14 @@ +# Task summaries -- this phase +# id | status | title | tags | summary | log | research +T1 | done | phase-start health, carry cleanup and baselines | - | tasks/T1.md | logs/T1.md | R3.39-001 +T2 | done | cast and lying gate instruments, reinterpret-macro set | - | tasks/T2.md | logs/T2.md | - +T3 | done | rung S sweep, overlays (forms P and X) | - | tasks/T3.md | logs/T3.md | - +T4 | blocked | rung S sweep, md_*, main and shared bodies (forms P and X) | - | tasks/T4.md | logs/T4.md | - +T10 | done | residue coverage gate (--check-casts --residue) and 3.40 sizing | - | tasks/T10.md | logs/T10.md | - +T5 | done | globals and absolute addresses to declared symbols (forms I and M, residual non-struct bases) | - | tasks/T5.md | logs/T5.md | - +T11 | done | progress snapshot and chart catch-up | - | tasks/T11.md | logs/T11.md | - +T6 | done | lying declarations to 0 outside the ledger | - | tasks/T6.md | logs/T6.md | - +T7.1 | done | GTE to one spelling (predicate read as the census documents it) | - | tasks/T7.1.md | logs/T7.1.md | - +T8 | done | pins and asm the unified types explain; residue ledger | - | tasks/T8.md | logs/T8.md | - +T9 | done | milestone gate and record (Phase 3.39, the cast campaign, reading A) | - | tasks/T9.md | logs/T9.md | - +T12 | done | phase-close docs: README graphs, story and hindsight lessons, wiki (Phase 3.39) | - | tasks/T12.md | logs/T12.md | - diff --git a/phase-ends/current/tasks/T1.md b/phase-ends/phase-3.39/tasks/T1.md similarity index 100% rename from phase-ends/current/tasks/T1.md rename to phase-ends/phase-3.39/tasks/T1.md diff --git a/phase-ends/current/tasks/T10.md b/phase-ends/phase-3.39/tasks/T10.md similarity index 100% rename from phase-ends/current/tasks/T10.md rename to phase-ends/phase-3.39/tasks/T10.md diff --git a/phase-ends/current/tasks/T11.md b/phase-ends/phase-3.39/tasks/T11.md similarity index 100% rename from phase-ends/current/tasks/T11.md rename to phase-ends/phase-3.39/tasks/T11.md diff --git a/phase-ends/current/tasks/T12.md b/phase-ends/phase-3.39/tasks/T12.md similarity index 100% rename from phase-ends/current/tasks/T12.md rename to phase-ends/phase-3.39/tasks/T12.md diff --git a/phase-ends/current/tasks/T2.md b/phase-ends/phase-3.39/tasks/T2.md similarity index 100% rename from phase-ends/current/tasks/T2.md rename to phase-ends/phase-3.39/tasks/T2.md diff --git a/phase-ends/current/tasks/T3.md b/phase-ends/phase-3.39/tasks/T3.md similarity index 100% rename from phase-ends/current/tasks/T3.md rename to phase-ends/phase-3.39/tasks/T3.md diff --git a/phase-ends/current/tasks/T4.md b/phase-ends/phase-3.39/tasks/T4.md similarity index 100% rename from phase-ends/current/tasks/T4.md rename to phase-ends/phase-3.39/tasks/T4.md diff --git a/phase-ends/current/tasks/T5.md b/phase-ends/phase-3.39/tasks/T5.md similarity index 100% rename from phase-ends/current/tasks/T5.md rename to phase-ends/phase-3.39/tasks/T5.md diff --git a/phase-ends/current/tasks/T6.md b/phase-ends/phase-3.39/tasks/T6.md similarity index 100% rename from phase-ends/current/tasks/T6.md rename to phase-ends/phase-3.39/tasks/T6.md diff --git a/phase-ends/current/tasks/T7.1.md b/phase-ends/phase-3.39/tasks/T7.1.md similarity index 100% rename from phase-ends/current/tasks/T7.1.md rename to phase-ends/phase-3.39/tasks/T7.1.md diff --git a/phase-ends/current/tasks/T7.md b/phase-ends/phase-3.39/tasks/T7.md similarity index 100% rename from phase-ends/current/tasks/T7.md rename to phase-ends/phase-3.39/tasks/T7.md diff --git a/phase-ends/current/tasks/T8.md b/phase-ends/phase-3.39/tasks/T8.md similarity index 100% rename from phase-ends/current/tasks/T8.md rename to phase-ends/phase-3.39/tasks/T8.md diff --git a/phase-ends/current/tasks/T9.md b/phase-ends/phase-3.39/tasks/T9.md similarity index 100% rename from phase-ends/current/tasks/T9.md rename to phase-ends/phase-3.39/tasks/T9.md