Skip to content

docs: refresh §9 refactor state — R4 complete (ADR-0004 shipped) - #96

Merged
KraHsu merged 1 commit into
devfrom
docs/r4-refactor-state
May 22, 2026
Merged

KraHsu merged 1 commit into
devfrom
docs/r4-refactor-state

Conversation

@KraHsu

@KraHsu KraHsu commented May 22, 2026

Copy link
Copy Markdown
Owner

What

Refresh ROADMAP §9 to reflect Phase R4 (CLI dispatcher decomposition) complete — R4.1 (#92), R4.2 (#94), R4.3 (#95) all merged; ADR-0004 shipped. Docs-only PR, matching the prior #93 pattern.

Changes (ROADMAP.md)

  • §9.0 status: phase header → R0–R4 complete; status table R4 row → ✅ complete (PRs refactor: cli/_distributed.py owns multi-GPU plumbing (R4.1 / ADR-0004) #92/refactor: cli/_multi_seed.py owns multi-seed orchestration (ROADMAP §9 PR R4.2 / ADR-0004) #94/refactor: cli/_dispatch.py owns play/train dispatch (ROADMAP §9 PR R4.3 / ADR-0004) #95); ADR-0004 → Accepted.
  • Completed + Tests-run entries added for R4.2 and R4.3 (verbatim moves, byte-identical audits, no-cycle smoke checks, monkeypatch-target repoints).
  • R4 risk row marked resolved; importlinter baseline notes relabeled "Post-R4" (still 21 / 2 broken — all of R4 was intra-cli).
  • Next steps / suggested slice rewritten: R5 (ADR-0006) and R6 (ADR-0007) now fan out in parallel.
  • §9.2 sequencing diagram + prose: R3 ✅ → R4 ✅.
  • Phase R4 detail block: header → COMPLETE, PR4.2/PR4.3 markers, and completion criteria honestly recording the ≤400-LoC target as NOT met (645 LoC) — the residue is Typer wiring ADR-0004 deliberately kept; reaching ≤400 is a documented follow-up.
  • New lessons captured: (1) a TYPE_CHECKING forward-ref breaks the annotation-only cycle; (2) co-locate a moved function's runtime-only deps with it; (3) relocating a function breaks monkeypatch.setattr("genelab.cli.…") string paths that find_referencing_symbols can't see — grep tests/ for them; (4) an ADR's LoC target is an estimate, its enumerated scope is the contract.

Note

CLAUDE.md and plans/ (incl. ADR-0004's Accepted flip + implementation notes) are gitignored local artifacts; they were refreshed in the same pass for future local sessions, but only the tracked ROADMAP.md is committed here — same as docs PR #93.

🤖 Generated with Claude Code

Update ROADMAP §9 to reflect Phase R4 (CLI dispatcher decomposition)
complete: R4.1 (#92), R4.2 (#94), R4.3 (#95) all merged.

- §9.0 phase header + status table: R0–R4 complete; ADR-0004 → Accepted.
- Add R4.2 / R4.3 "Completed" entries and "Tests run" lines.
- R4 risk row marked resolved; importlinter baseline notes updated
  ("Post-R4": still 21 / 2 broken — all of R4 was intra-cli).
- Rewrite "Next steps" / "Suggested next slice": R5 (ADR-0006) and R6
  (ADR-0007) now fan out in parallel; R4 is done.
- §9.2 sequencing diagram + prose: R3 ✅ → R4 ✅.
- Phase R4 detail block: header → COMPLETE, PR4.2/PR4.3 markers, and
  completion criteria (the <=400-LoC target is recorded as NOT met at
  645 LoC — the residue is Typer wiring ADR-0004 deliberately kept; a
  documented follow-up).
- New lessons: TYPE_CHECKING forward-ref breaks the annotation cycle;
  co-locate runtime-only deps with the moved function; relocating a
  function breaks string-form monkeypatch paths invisible to
  find_referencing_symbols; an ADR's LoC target is an estimate, its
  enumerated scope is the contract.

(CLAUDE.md and plans/ are gitignored local artifacts and were refreshed
locally in the same pass; only the tracked ROADMAP.md is committed, matching
the prior docs-refresh PR #93.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@KraHsu
KraHsu merged commit fb22155 into dev May 22, 2026
3 checks passed
@KraHsu
KraHsu deleted the docs/r4-refactor-state branch May 22, 2026 06:30
KraHsu added a commit that referenced this pull request Jun 5, 2026
docs: refresh §9 refactor state — R4 complete (ADR-0004 shipped)
KraHsu added a commit that referenced this pull request Jun 5, 2026
Update ROADMAP §9 to reflect Phase R5 (task-specific rewards split) complete:
R5.1 (#97), R5.2 (#98) merged.

- §9.0 phase header + status table: R0–R5 complete; ADR-0006 → Accepted;
  R7 row regated on "R6 landing + cross-layer follow-ups".
- Add R5.1 / R5.2 "Completed" entries and "Tests run" lines (incl. the
  whole-family move variance and the bit-equivalence test).
- R5.2 risk row marked resolved.
- "Next steps" / "Suggested next slice" rewritten: R6 is the last structural
  R-phase; R5/R6 no longer "fan out" (R5 done).
- §9.2 sequencing diagram + prose: R5 ✅.
- Phase R5 detail block: header → COMPLETE, scope/PR/test "as shipped",
  completion criteria (jaccard collapse by construction; the Unitree G1
  reference-run check superseded by the bit-equivalence test — no
  reference-runs doc exists yet, deferred to M1.7).
- New lessons: an ADR's enumerated symbol list goes stale (re-audit before a
  move); pin pre-refactor bodies in a test for a *merging* refactor; prefer
  thin def wrappers over functools.partial for back-compat shims.

(CLAUDE.md and plans/ are gitignored local artifacts and were refreshed locally
in the same pass; only the tracked ROADMAP.md is committed, matching docs PRs
#93 and #96.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
KraHsu added a commit that referenced this pull request Jun 5, 2026
…0009 shipped)

The architecture refactor is done: importlinter is now a required CI gate with a
clean 6-contract / 0-violation baseline. Update ROADMAP §9 accordingly.

- §9.0 phase header + status table: R6 (#100) and R7 (#101–#106) marked complete;
  ADR-0007/0008/0009 → Accepted; ADR-0010 deferred. Reviewed against dev @ b9f7e0a.
- Add "Completed" entries for R6, R7.1, R7.2, R7.3a–d and matching "Tests run"
  lines (incl. the R6 cv2/Qt subprocess-isolation incident and the R7.3d 6/0
  baseline).
- Dependency-graph note: 3,982 nodes / 11,433 edges post-R7 (net growth from new
  modules + deprecation shims; cross-layer imports 24 → 0).
- R4/R5.2/R7 risk rows marked resolved; the "21 violations gating R7" notes
  rewritten to reflect the cleared baseline.
- §9.2 diagram + prose: all phases ✅; Phase R6/R7 detail headers → COMPLETE.
- New lessons: layers-contract forbids intra-band siblings (use forbidden
  contracts); fix-the-layer beats DI; precise contract beats blanket ban + waivers;
  subprocess-isolate cv2-importing tests.
- "Next steps" rewritten: refactor complete; remaining items are optional
  follow-ups (BaseTermManager for metrics/curriculum is the recommended next
  slice; ADR flips; ≤400 cli target; test_cli split; shim removal; ADR-0010).

(CLAUDE.md, plans/adr/0007–0009, and the ADR status flips are gitignored local
artifacts, refreshed in the same pass; only ROADMAP.md is committed — matching
docs PRs #93 / #96 / #99.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant