{ "track_id": "chronology_20260619", "name": "Conductor Chronology", "created": "2026-06-19", "status": "spec_written", "blocked_by": [], "blocks": [], "priority": "C", "rationale": "conductor/tracks.md currently has duplicated completed-track listings across 3 sections (Phase 9 Chore Tracks, Active Research Tracks [x], Follow-up [shipped]). This track creates conductor/chronology.md as the single canonical index of all tracks (active + shipped + superseded + abandoned) plus notable non-track commits, removes the duplicates from tracks.md, and documents the new convention in workflow.md. The per-track spec/plan/metadata in tracks/ and archive/ remain the source of truth for each track's details.", "type": "documentation + tooling (no production code change)", "scope": { "new_files": [ "conductor/chronology.md", "scripts/audit/generate_chronology.py", "docs/reports/CHRONOLOGY_MIGRATION_20260619.md" ], "modified_files": [ "conductor/tracks.md", "conductor/workflow.md" ], "deleted_files": [] }, "estimated_effort": { "method": "scope (per conductor/workflow.md Tier 1 Track Initialization Rules). NO day estimates.", "phase_1": "1 task: data extraction audit + draft helper script (FR5)", "phase_2": "1 task: run script, generate conductor/chronology.md.draft", "phase_3": "1 task: prune [x]/[shipped] entries from conductor/tracks.md (FR2)", "phase_4": "1 task: add 3-step archiving convention to conductor/workflow.md (FR3)", "phase_5": "1 task: write docs/reports/CHRONOLOGY_MIGRATION_20260619.md (FR4)", "phase_6": "1 task: user review of draft", "phase_7": "1 task: final commit (rename draft to canonical)", "phase_8": "165+ tasks: per-row cross-check (FR6 hard gate; one task per track)", "phase_9": "1 task: completeness check (FR6 hard gate; folder set vs row set)", "phase_10": "1 task: user sign-off (FR6 hard gate; user is the quality gate)", "summary": "10 phases, 165+ cross-check tasks, 3 new files, 2 modified files. Per the user directive (2026-06-19), the cross-check (Phases 8-10) is the hard gate; nothing is committed until every row is verified and the user signs off." }, "verification_criteria": [ "conductor/chronology.md exists and is populated with one row per track (active + shipped + superseded + abandoned) per FR1", "Each row has: date, backticked track ID, status badge, one-sentence summary (≤25 words), folder link, range line (.. with commit count)", "Notable Non-Track Commits section is sorted newest first with date + SHA + description per row", "conductor/tracks.md no longer contains any [x] or [shipped] entries; the 3 sections (Phase 9, Active Research, Follow-up) either are removed or are one-line stubs pointing to chronology.md (FR2)", "conductor/workflow.md 'Notes > Editing this file' section includes the new 3-step archiving convention (FR3)", "docs/reports/CHRONOLOGY_MIGRATION_20260619.md exists with count summaries + diff preview + per-row cross-check log (FR4)", "conductor/chronology.md is sorted newest first", "Every track folder in conductor/tracks/ and conductor/archive/ has a corresponding row in chronology.md OR a documented exception in the migration report (FR6 completeness check)", "Per-row cross-check completed: every row's 5 fields (date, ID, status, summary, range) were verified by Tier 1 before the file was committed (FR6, VC10)", "User sign-off recorded in the migration report (FR6, VC12)", "No new src/*.py files created (per AGENTS.md File Size and Naming Convention rule)", "End-of-track report at docs/reports/TRACK_COMPLETION_chronology_20260619.md (if executed by Tier 2)" ], "risk_register": [ { "id": "R1", "title": "Migration is incomplete (some tracks missed)", "likelihood": "medium", "scope_impact": "implementation may be larger than the spec suggests if many tracks lack spec.md or have ambiguous status", "mitigation": "The migration report (FR4) explicitly lists skipped tracks; VC11 checks for 'every folder has a row OR a documented exception.'" }, { "id": "R2", "title": "Brief summaries are too long or too vague", "likelihood": "medium", "scope_impact": "implementation may require manual editing of ~165 summaries", "mitigation": "The helper script (FR5) extracts the first sentence of spec.md; the cross-check (FR6) reviews and trims every row." }, { "id": "R3", "title": "Commit ranges are wrong (init SHA or end SHA)", "likelihood": "low", "scope_impact": "minimal - git log is authoritative", "mitigation": "The cross-check (FR6 field 5) verifies init SHA and end SHA exist; the range is recomputed by the script per track folder." }, { "id": "R4", "title": "Date source is ambiguous (slug vs first-commit date)", "likelihood": "low", "scope_impact": "minimal", "mitigation": "Rule (per FR1): use the slug date. If the slug date disagrees with the first commit (older tracks), the slug wins because the slug is the project's convention. Documented in FR1." }, { "id": "R5", "title": "User changes mind on the format after seeing the migration", "likelihood": "medium", "scope_impact": "implementation may be larger than the spec suggests", "mitigation": "The migration is reviewed (Phase 6 + Phase 10 user sign-off) BEFORE the chronology.md is finalized. The draft phase (FR5) is the early review point; the final review is Phase 10." }, { "id": "R6", "title": "tracks.md pruning breaks a link the user uses", "likelihood": "low", "scope_impact": "minimal", "mitigation": "The pruning is by section + status badge; the user-visible in-flight entries are untouched. The 'Status legend' at the bottom of tracks.md is preserved." }, { "id": "R7", "title": "Cross-check (FR6) is shallow or skipped (USER DIRECTIVE 2026-06-19)", "likelihood": "high", "scope_impact": "the whole track is not 'done' until every row is verified - this is a hard gate", "mitigation": "FR6 is a hard gate (VC10/VC11/VC12). The migration report logs the cross-check. The user signs off on the final result. 'No shortcut is acceptable' clause in FR6." }, { "id": "R8", "title": "Folder has no spec.md (older tracks)", "likelihood": "medium", "scope_impact": "minimal - the summary is unknown", "mitigation": "Use metadata.json.description if present; else use the first non-empty line of plan.md; else write a generic placeholder like 'Imported from archive (no spec)' and flag in the migration report." }, { "id": "R9", "title": "Track folder exists but is not a real track (e.g., a research note, a scratch dir)", "likelihood": "medium", "scope_impact": "minimal", "mitigation": "The completeness check (FR6) catches this: the folder is enumerated, the row is added with status 'Special' and a one-line explanation, OR the folder is renamed/removed and the migration report documents it." } ], "architecture_reference": { "primary_documents": [ "conductor/tracks.md (line 459: existing 'lightweight chronology' reference)", "conductor/workflow.md 'Notes > Editing this file' (existing archive convention)" ], "related_tracks": [ "conductor/archive/tier2_autonomous_sandbox_20260616/ (precedent for one-page reports at docs/reports/)", "conductor/tracks/test_sandbox_hardening_20260619/ (precedent for spec/plan/metadata schema)" ], "styleguides": [ "conductor/code_styleguides/feature_flags.md (helper script is 'delete to turn off')" ] }, "deferred_to_followup_tracks": [ { "title": "Auto-generation of chronology.md on every commit", "description": "Per the user's 'manual maintenance' choice (2026-06-19), there is no auto-generation. A future track could add a git hook that updates chronology.md on every archive-move commit, but this is explicitly out of scope for this track.", "track_status": "not requested" }, { "title": "GUI integration of the chronology", "description": "The chronology is a markdown file for in-repo reading. A future track could add a GUI panel that visualizes it (e.g., a timeline view), but no GUI integration is in scope.", "track_status": "not requested" } ], "regressions_and_pre_existing_failures": [], "pre_existing_failures_remaining": [], "user_directives": [ "Helper script may be used (approved 2026-06-19) but EVERY SINGLE ENTRY MUST BE CROSS CHECKED TO MAKE SURE IT'S STILL CORRECT, AND NOTHING WAS MISSED.", "Manual maintenance is the ongoing workflow (approved 2026-06-19). The helper script is a one-shot extraction tool, not part of the ongoing workflow.", "Date source is the track slug (not the first-commit date) per FR1. If the slug date disagrees with the first commit (older tracks), the slug wins.", "Notable non-track commits section: 'if they look notable maybe we should note them' (user 2026-06-19). The bar is non-obvious work that wasn't part of a track.", "chronology.md is manually maintained like tracks.md; the helper script (FR5) is draft-only.", "No day estimates per conductor/workflow.md Tier 1 Track Initialization Rules (added 2026-06-16). Scope measured in files/sites." ] }