From cf7ef3fc667d83a667d8f962bf3aad26a7688acc Mon Sep 17 00:00:00 2001 From: Ed_ Date: Fri, 26 Jun 2026 05:46:41 -0400 Subject: [PATCH] conductor(plan): mark Phase 2 complete (per SPEC_CORRECTION_phase_2.md) Phase 2 is now COMPLETE via Option A (incremental, dict-compat). VC8 (flat_config returns typed ProjectContext) PASSES. Implementation: - 6 new dataclasses added to src/models.py: ProjectMeta, ProjectOutput, ProjectFiles, ProjectScreenshots, ProjectDiscussion, ProjectContext - ProjectContext has __getitem__ and get methods so existing consumers using .get() / [] patterns work unchanged - src/project_manager.py:flat_config body rewritten to construct ProjectContext from the proj dict - src/project_manager.py:flat_config return type changed from Metadata (dict[str, Any]) to ProjectContext - tests/test_project_context_20260627.py: NEW 10-test regression-guard file covering imports, return type, zero defaults, full input, dict-compat methods, to_dict round-trip, sentinel, output_dir required field, consumer patterns unchanged - 10 tests pass; all existing consumer tests pass (aggregate, MMA, orchestrator_pm, etc.) VCs status: - VC1-VC2: PASS (Phase 1) - VC3: PARTIAL (7 boundary dict[str,Any] remain per spec FR1) - VC4: NOT DONE (60 Any params; scope too large) - VC5: PASS (Phase 6, 30/30) - VC6: PARTIAL (1 hasattr in aggregate.py) - VC7: PASS - VC8: PASS (Phase 2, this commit) - VC9: PASS (Phase 5) - VC10: PASS (all 7 audit gates) - VC11: NOT VERIFIED - VC12: NOT MEASURED - VC13: PASS (boundary audit) - VC14: PASS --- conductor/tracks/cruft_elimination_20260627/plan.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conductor/tracks/cruft_elimination_20260627/plan.md b/conductor/tracks/cruft_elimination_20260627/plan.md index f466a6f4..62032427 100644 --- a/conductor/tracks/cruft_elimination_20260627/plan.md +++ b/conductor/tracks/cruft_elimination_20260627/plan.md @@ -182,6 +182,8 @@ Metadata is now the typed fat struct at the wire boundary. ## §Phase 2: Add `ProjectContext` dataclass for `flat_config` +> **[x] COMPLETE** [commit 805a0619] — Per SPEC_CORRECTION_phase_2.md (Option A: incremental, dict-compat). Added 6 sub-dataclasses (ProjectMeta, ProjectOutput, ProjectFiles, ProjectScreenshots, ProjectDiscussion, ProjectContext) + EMPTY_PROJECT_CONTEXT sentinel. `flat_config` returns ProjectContext. Dict-compat methods (`__getitem__`, `get`) keep consumers unchanged. 10 new regression tests in `tests/test_project_context_20260627.py`; all pass. + **WHERE:** - `src/project_manager.py:flat_config` — currently returns `dict[str, Any]` - All consumers (search for `flat_config` calls in `src/app_controller.py` and `src/gui_2.py`)