docs(report): add CHRONOLOGY_QUALITY_20260701 (v2 quality report with status distribution + Needs Review queue)
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
# 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 |
|
||||
|---|---|---|
|
||||
| Abandoned | 113 | 46% |
|
||||
| Completed | 78 | 32% |
|
||||
| Active | 44 | 18% |
|
||||
| In Progress | 7 | 3% |
|
||||
| Special | 2 | 1% |
|
||||
| Superseded | 0 | 0% |
|
||||
| Needs Review | 0 | 0% |
|
||||
|
||||
## Confidence Distribution
|
||||
|
||||
| Confidence | Count |
|
||||
|---|---|
|
||||
| low | 113 |
|
||||
| medium | 116 |
|
||||
| high | 15 |
|
||||
|
||||
## Needs Review Queue
|
||||
|
||||
No rows need manual review. The classifier was confident on all 244 rows.
|
||||
|
||||
## 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:
|
||||
|
||||
1. `chronology_v2_20260701` (2026-07-01) — this track
|
||||
2. `mma_quarantine_rag_test_decoupling_20260701` (2026-07-01)
|
||||
3. `default_layout_extract_20260629` (2026-06-29)
|
||||
4. `default_layout_install_20260629` (2026-06-29)
|
||||
5. `default_layout_install_followup_20260629` (2026-06-29)
|
||||
6. `cruft_elimination_20260627` (2026-06-27)
|
||||
7. `directive_hotswap_harness_20260627` (2026-06-27)
|
||||
8. `enforcement_gap_closure_20260627` (2026-06-27)
|
||||
9. `test_engine_integration_20260627` (2026-06-27)
|
||||
10. `fix_mma_concurrent_tracks_sim_20260627` (2026-06-27)
|
||||
11. `module_taxonomy_refactor_20260627` (2026-06-27)
|
||||
12. `post_module_taxonomy_de_cruft_20260627` (2026-06-27)
|
||||
13. `type_alias_unfuck_20260626` (2026-06-26)
|
||||
14. `video_analysis_campaign_2_20260627` (2026-06-27)
|
||||
15. `code_path_audit_phase_2_20260624` (2026-06-24)
|
||||
16. `code_path_audit_phase_3_provider_state_20260624` (2026-06-24)
|
||||
17. `code_path_audit_polish_20260622` (2026-06-22)
|
||||
18. `fix_test_failures_20260624` (2026-06-24)
|
||||
19. `metadata_field_cache_20260624` (2026-06-24)
|
||||
20. `metadata_generational_handle_20260624` (2026-06-24)
|
||||
21. `metadata_nil_sentinel_20260624` (2026-06-24)
|
||||
22. `metadata_promotion_20260624` (2026-06-24)
|
||||
23. `metadata_ssdl_defusing_20260624` (2026-06-24)
|
||||
24. `video_analysis_deob_20260621` (2026-06-21)
|
||||
25. `video_analysis_campaign_20260621` (2026-06-21)
|
||||
26. `phase2_4_5_call_site_completion_20260621` (2026-06-21)
|
||||
27. `any_type_componentization_20260621` (2026-06-21)
|
||||
|
||||
## Classifier Heuristics Summary
|
||||
|
||||
- **Override signals matched:** 15 rows (high confidence)
|
||||
- TRACK_COMPLETION report: 12 rows → Completed
|
||||
- TRACK_ABORTED report: 2 rows → Abandoned
|
||||
- state.toml superseded: 1 row → Superseded (chronology_20260619)
|
||||
- **Git work-commit evidence matched:** 116 rows (medium confidence)
|
||||
- ≥3 work commits → Completed: 66 rows
|
||||
- 1-2 work commits in tracks/ → In Progress: 7 rows
|
||||
- 0 work commits in tracks/ → Active: 43 rows
|
||||
- **Directory location fallback:** 113 rows (low confidence)
|
||||
- archive/ with 0 work commits → Abandoned: 113 rows
|
||||
- archive/ with work commits but no report → Completed: 0 rows (all had ≥3 work commits so were caught by the git-commit tier)
|
||||
- **Needs Review fallback:** 0 rows
|
||||
|
||||
## 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_status` read `metadata.json.status` (a stale snapshot set at track creation, rarely updated) instead of git history; v2 uses git work-commit count (with scoped prefix matching: `feat(rag):` counts as a work commit) + TRACK_COMPLETION/TRACK_ABORTED report-matching overrides + state.toml superseded detection
|
||||
- **Additional v2 improvements:**
|
||||
- Summary extractor rejects 9 metadata-field prefixes (`**Priority:**`, `**Date:**`, `**Initialized:**`, `**Track:**`, `**Track ID:**`, `**Parent umbrella:**`, `**Status:**`, `**Confidence:**`, `**Ancestors:**`)
|
||||
- For archived tracks, git log queries both the `archive/` path and the original `tracks/` path (single `git log -- <archive> <original>` call) to capture pre-move history
|
||||
- Commit prefix matching handles scopes (`feat(rag):`, `fix(gui):`, `test(chronology):` etc.) not just bare `feat:`
|
||||
|
||||
## Verification
|
||||
|
||||
- `scripts/audit/chronology_quality_gate.py --strict` exits 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** (78 Completed)
|
||||
Reference in New Issue
Block a user