Private
Public Access
TIER-2 READ all 11 mandatory pre-flight files before <cruft_elimination_20260627>: 1. AGENTS.md 2. conductor/workflow.md 3. conductor/edit_workflow.md 4. conductor/tier2/githooks/forbidden-files.txt 5. conductor/tracks/tier2_leak_prevention_20260620/spec.md 6. conductor/product-guidelines.md (Core Value section) 7. conductor/code_styleguides/data_oriented_design.md (DOD + \u00a78.5) 8. conductor/code_styleguides/python.md (\u00a717 Banned Patterns) 9. conductor/code_styleguides/type_aliases.md 10. conductor/code_styleguides/error_handling.md 11. docs/guide_meta_boundary.md Also read: agent_memory_dimensions.md, rag_integration_discipline.md, cache_friendly_context.md, knowledge_artifacts.md, feature_flags.md, workspace_paths.md, config_state_owner.md Phase 0 baseline (measured 2026-06-27, master88a1bdcb): - Metadata: TypeAlias = dict[str, Any] at src/type_aliases.py:6 (Phase 1 target) - hasattr(f, 'path') sites: 29 (gui_2.py:18, app_controller.py:10, aggregate.py:1) - -> Optional[T] returns: 30 across 14 files - Any params: 59 - dict[str, Any] params: 10 - Metadata params: 51 - All 7 audit gates pass --strict - 17/18 per-aggregate dataclasses have from_dict() (NormalizedResponse is an output type, not wire-boundary; doesn't need from_dict) Branch: tier2/cruft_elimination_20260627 (from origin/master @88a1bdcb)
67 lines
2.3 KiB
JSON
67 lines
2.3 KiB
JSON
{
|
|
"track_id": "cruft_elimination_20260627",
|
|
"name": "C11/Python Type Promotion Mandate - Cruft Elimination",
|
|
"type": "refactor",
|
|
"scope": {
|
|
"new_files": [
|
|
"scripts/audit_boundary_layer.py",
|
|
"tests/test_boundary_layer.py",
|
|
"tests/test_metadata_fat_struct.py",
|
|
"tests/test_project_context.py",
|
|
"docs/reports/boundary_layer_20260628.md",
|
|
"docs/reports/TRACK_COMPLETION_cruft_elimination_20260627.md"
|
|
],
|
|
"modified_files": [
|
|
"src/type_aliases.py",
|
|
"src/models.py",
|
|
"src/app_controller.py",
|
|
"src/gui_2.py",
|
|
"src/aggregate.py",
|
|
"src/rag_engine.py",
|
|
"src/multi_agent_conductor.py",
|
|
"src/mcp_client.py",
|
|
"src/ai_client.py",
|
|
"src/project_manager.py"
|
|
],
|
|
"deleted_files": []
|
|
},
|
|
"blocked_by": [
|
|
"type_alias_unfuck_20260626 (SHIPPED, merged to master @ 88a1bdcb)",
|
|
"metadata_promotion_20260624 (SHIPPED)"
|
|
],
|
|
"blocks": [],
|
|
"pre_existing_failures_remaining": [],
|
|
"deferred_to_followup_tracks": [],
|
|
"verification_criteria": [
|
|
"VC1: Metadata is @dataclass(frozen=True, slots=True) (typed fat struct)",
|
|
"VC2: Zero TypeAlias = dict[str, Any] for Metadata",
|
|
"VC3: Zero dict[str, Any] parameter types in internal files",
|
|
"VC4: Zero Any parameter types in internal files",
|
|
"VC5: Zero Optional[T] return types",
|
|
"VC6: Zero hasattr(f, ...) entity dispatch checks",
|
|
"VC7: self.files is always List[FileItem]",
|
|
"VC8: flat_config returns typed ProjectContext",
|
|
"VC9: rag_engine.search() returns List[RAGChunk]",
|
|
"VC10: All 7 audit gates pass --strict",
|
|
"VC11: 10/11 batched test tiers PASS",
|
|
"VC12: Effective codepaths < 1e+18",
|
|
"VC13: Boundary layer audit written",
|
|
"VC14: The 12 per-aggregate dataclasses used at their specific paths"
|
|
],
|
|
"estimated_effort": {
|
|
"method": "scope (per workflow.md Tier 1 Track Initialization Rules). NO day estimates.",
|
|
"scope": "9 phases, ~14 sites, 12-file scope, 5-7 atomic commits"
|
|
},
|
|
"risk_register": [
|
|
{
|
|
"id": "R1",
|
|
"likelihood": "medium",
|
|
"description": "Implementation may be larger than the spec suggests (defensive isinstance checks scattered throughout)"
|
|
},
|
|
{
|
|
"id": "R2",
|
|
"likelihood": "low",
|
|
"description": "Test regressions from signature changes; FIX-IF-FAILS protocol applies"
|
|
}
|
|
]
|
|
} |