Private
Public Access
docs(report): update CHRONOLOGY_QUALITY_20260701 with corrected status distribution (167 Completed / 43 Abandoned) + manual review notes
This commit is contained in:
@@ -16,26 +16,34 @@
|
||||
|
||||
| Status | Count | Percentage |
|
||||
|---|---|---|
|
||||
| Abandoned | 113 | 46% |
|
||||
| Completed | 78 | 32% |
|
||||
| Active | 44 | 18% |
|
||||
| In Progress | 7 | 3% |
|
||||
| Special | 2 | 1% |
|
||||
| Superseded | 0 | 0% |
|
||||
| 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 |
|
||||
|---|---|
|
||||
| low | 113 |
|
||||
| medium | 116 |
|
||||
| high | 15 |
|
||||
| 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:
|
||||
@@ -70,29 +78,36 @@ The following tracks were created after 2026-06-20 (when v2 was specced) and wer
|
||||
|
||||
## 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
|
||||
The classifier uses a 4-tier evidence-priority chain:
|
||||
|
||||
1. **Override signals (highest confidence):** state.toml status (human-set: completed/abandoned/superseded/archived), TRACK_COMPLETION/TRACK_ABORTED report matching
|
||||
2. **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
|
||||
3. **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
|
||||
4. **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_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:`
|
||||
- **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 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_status` bug: quote-stripping was done before comment removal, causing `superseded"` instead of `superseded` — fixed
|
||||
- state.toml `completed`/`abandoned`/`archived` not 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
|
||||
|
||||
@@ -100,4 +115,5 @@ The following tracks were created after 2026-06-20 (when v2 was specced) and wer
|
||||
- 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)
|
||||
- Status distribution sanity (≥1 Completed): **YES** (167 Completed)
|
||||
- Manual per-row cross-check of Abandoned rows: **DONE** (43 Abandoned are genuinely ambiguous; documented above)
|
||||
Reference in New Issue
Block a user