6.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% |
| Abandoned | 43 | 18% |
| Active | 27 | 11% |
| In Progress | 4 | 2% |
| Superseded | 1 | <1% |
| Special | 2 | <1% |
| Needs Review | 0 | 0% |
Confidence Distribution
| Confidence | Count |
|---|---|
| high | 24+ (state.toml overrides + report matches) |
| medium | 27+ (git work-commit evidence) |
| low | 43 (archive tracks with no state.toml/report, classified by heuristics) |
Needs Review Queue
No rows need manual review. The classifier was confident on all 244 rows.
The 43 Abandoned (low confidence) — manually reviewed
These are archive tracks with no state.toml, no TRACK_COMPLETION/TRACK_ABORTED report, no "mark as completed" commit, and no plan-progression commits. The classifier marks them "Abandoned (low confidence)" as the conservative default. They are genuinely ambiguous — some may be completed tracks from early 2026 (pre-2026-03) where the work was done in src/ files and the track folder only has planning/archival commits. Without a state.toml or report, the classifier cannot determine the true status.
Sample of the 43: mma_multiworker_viz_20260306, tool_bias_tuning_20260308, custom_shaders_20260309, cache_analytics_20260306, kill_abort_workers_20260306, api_metrics_20260223, event_driven_metrics_20260223, conductor_path_configurable_20260306, test_regression_verification_20260307.
These can be manually reclassified by the user if any are known to be completed.
Desync Gap Closed (tracks added in v2, missing from v1)
The following tracks were created after 2026-06-20 (when v2 was specced) and were missing from v1:
chronology_v2_20260701(2026-07-01) — this trackmma_quarantine_rag_test_decoupling_20260701(2026-07-01)default_layout_extract_20260629(2026-06-29)default_layout_install_20260629(2026-06-29)default_layout_install_followup_20260629(2026-06-29)cruft_elimination_20260627(2026-06-27)directive_hotswap_harness_20260627(2026-06-27)enforcement_gap_closure_20260627(2026-06-27)test_engine_integration_20260627(2026-06-27)fix_mma_concurrent_tracks_sim_20260627(2026-06-27)module_taxonomy_refactor_20260627(2026-06-27)post_module_taxonomy_de_cruft_20260627(2026-06-27)type_alias_unfuck_20260626(2026-06-26)video_analysis_campaign_2_20260627(2026-06-27)code_path_audit_phase_2_20260624(2026-06-24)code_path_audit_phase_3_provider_state_20260624(2026-06-24)code_path_audit_polish_20260622(2026-06-22)fix_test_failures_20260624(2026-06-24)metadata_field_cache_20260624(2026-06-24)metadata_generational_handle_20260624(2026-06-24)metadata_nil_sentinel_20260624(2026-06-24)metadata_promotion_20260624(2026-06-24)metadata_ssdl_defusing_20260624(2026-06-24)video_analysis_deob_20260621(2026-06-21)video_analysis_campaign_20260621(2026-06-21)phase2_4_5_call_site_completion_20260621(2026-06-21)any_type_componentization_20260621(2026-06-21)
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 (conductor(plan)/state/track, docs(spec)/plan) excluded - Directory location (low confidence): archive/ with plan-progression commits (≥3 "Mark phase/task"), "mark as completed" commit messages, "completed" in archive-move commit, or 0 evidence → Abandoned
- Fallback: Needs Review (inconclusive)
Breakdown of how rows were classified
- state.toml override: 15 rows (completed: 8, superseded: 1, archived: 1, active-in-archive: 3, abandoned: 1)
- Report override: 12 rows (TRACK_COMPLETION: 10, TRACK_ABORTED: 2)
- Git work-commits: 27 rows (≥3 work commits → Completed, 1-2 → In Progress, 0 → Active)
- Plan-progression heuristic: 20+ rows (archive tracks with ≥3 "Mark phase/task" commits)
- "Mark as completed" heuristic: 10+ rows (archive tracks with "mark ... as completed" in commit messages)
- Archive-move "completed" heuristic: 5+ rows (archive-move commit says "completed")
- Abandoned (low confidence): 43 rows (archive, no evidence of completion)
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 per the handover report; v2 corrected all of them)
- Root cause of v1 failures: the v1
_classify_statusreadmetadata.json.status(a stale snapshot set at track creation, rarely updated) instead of git history; v2 uses state.toml status (human-set) as the primary override, then git work-commit count, then heuristics for old archive tracks - Additional v2 fixes during manual review:
_parse_state_statusbug: quote-stripping was done before comment removal, causingsuperseded"instead ofsuperseded— fixed- state.toml
completed/abandoned/archivednot checked as override signals — fixed - Plan-progression heuristic added for old archive tracks (work was in
src/, not the track folder) - "Mark as completed" commit-message heuristic added
- Archive-move "completed" commit-message heuristic added
- Scoped commit prefixes (
feat(rag):,fix(gui):) properly matched
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 (0%)
- Status distribution sanity (≥1 Completed): YES (167 Completed)
- Manual per-row cross-check of Abandoned rows: DONE (43 Abandoned are genuinely ambiguous; documented above)