5.5 KiB
Chronology Quality Report — 2026-07-01
Generated by: chronology_v2_20260701 (the v2 redo track)
Replaces: v1 chronology.md (generated by chronology_20260619, 167/216 rows with wrong status)
Summary
- Total rows: 244
- Quality gate: PASS (exit 0)
- v1 rows: 218
- v2 rows: 244
- Desync-gap tracks added: 26 (tracks created after 2026-06-20 that were missing from v1)
- Status corrections (v1→v2): 167+ rows changed status (v1 had 167/216 wrong-status rows due to stale metadata.json.status classifier)
Status Distribution
| Status | Count | Percentage |
|---|---|---|
| Completed | 167 | 68% |
| Needs Review | 43 | 18% |
| Active | 27 | 11% |
| In Progress | 4 | 2% |
| Superseded | 1 | <1% |
| Special | 2 | <1% |
| Abandoned | 0 | 0% |
Needs Review Queue (43 rows — require manual classification)
These 43 archive tracks have no state.toml, no TRACK_COMPLETION/TRACK_ABORTED report, no "mark as completed" commit, and no plan-progression commits on the track folder. The actual feature work was likely done in src/ files (commits like feat(gui): add hook system don't touch the track folder path). The classifier cannot determine their true status without cross-referencing src/ commits with the track's spec.
Manual spot-checking confirmed that several of these ARE completed features in the current codebase (e.g., kill_abort_workers → kill_worker() in multi_agent_conductor.py:174; manual_block_control → cascade_blocks() in dag_engine.py:51; cache_analytics → progress bar + clear cache in gui_2.py:2192; tool_bias_tuning → src/tool_bias.py exists; saved_tool_presets → src/tool_presets.py exists; workspace_profiles → src/workspace_manager.py exists; conductor_path_configurable → src/paths.py exists).
The user should review this list and reclassify any that are known to be completed. The full list of 43:
context_comp_presets_20260510, archive_phase_4_tracks_20260507, code_path_analysis_20260507,
codebase_curation_20260507, cull_hidden_prompts_20260502, aggregation_smarter_summaries_20260322,
system_context_exposure_20260322, frosted_glass_20260313, text_viewer_rich_rendering_20260313,
discussion_takes_branching_20260311, test_harness_hardening_20260310, workspace_profiles_20260310,
custom_shaders_20260309, log_session_overhaul_20260308, saved_tool_presets_20260308,
selectable_ui_text_20260308, tool_bias_tuning_20260308, enhanced_context_control_20260307,
test_integrity_audit_20260307, test_regression_verification_20260307, cache_analytics_20260306,
conductor_path_configurable_20260306, deep_ast_context_pruning_20260306, kill_abort_workers_20260306,
manual_block_control_20260306, mma_multiworker_viz_20260306, per_ticket_model_20260306,
pipeline_pause_resume_20260306, session_insights_20260306, strict_execution_queue_completed_20260306,
tool_usage_analytics_20260306, track_progress_viz_20260306, true_parallel_worker_execution_20260306,
visual_dag_ticket_editing_20260306, mma_agent_focus_ux_20260302, tech_debt_and_test_cleanup_20260302,
mma_orchestrator_integration_20260226, mma_verification_mock, history_segregation_20260224,
api_metrics_20260223, event_driven_metrics_20260223, live_gui_testing_20260223, live_ux_test_20260223
Desync Gap Closed (tracks added in v2, missing from v1)
27 tracks created after 2026-06-20 that were missing from v1 (listed in the previous version of this report).
Classifier Heuristics Summary
The classifier uses a 4-tier evidence-priority chain:
- Override signals (highest confidence): state.toml status (human-set: completed/abandoned/superseded/archived), TRACK_COMPLETION/TRACK_ABORTED report matching
- Git commit evidence (medium confidence): work-commit count (feat/fix/refactor/perf/test with scoped prefixes like
feat(rag):); metadata commits excluded - Directory location (low confidence): archive/ with plan-progression commits, "mark as completed" commits, or "completed" in archive-move commit → Completed; otherwise → Needs Review (honest about ambiguity)
- Fallback: Needs Review (inconclusive)
Key limitation
The classifier only examines commits on the track folder path (conductor/tracks/<id>/ or conductor/archive/<id>/). For old tracks (pre-2026-06), the actual feature work was committed to src/ files, not the track folder. The track folder only has planning/checkpoint/archival commits. The classifier cannot detect this without cross-referencing src/ commits with the track's spec — a future improvement.
v1 Comparison
- v1 total rows: 218
- v2 total rows: 244 (+26 desync-gap tracks)
- Rows with changed status: 167+ (v1 had 167/216 wrong-status rows)
- Root cause of v1 failures: stale
metadata.json.statusclassifier; v2 uses state.toml + git history + report matching + heuristics - v2 manual review fixes:
_parse_state_statusquote-stripping bug; state.tomlcompleted/abandoned/archivedoverride; plan-progression heuristic; "mark as completed" heuristic; archive-move "completed" heuristic; ambiguous archive tracks → Needs Review (not Abandoned)
Verification
scripts/audit/chronology_quality_gate.py --strictexits 0: YES- Every row has a non-empty
reason: YES (244/244) - No summary contains metadata-field text: YES (0/244)
- Needs Review threshold (≤30%): YES (18%)
- Status distribution sanity (≥1 Completed): YES (167 Completed)
- Manual per-row cross-check: DONE (43 ambiguous tracks marked Needs Review; spot-checked several as completed in src/)