87923c93af
Conductor Chronology is a manually-maintained, complete index of all tracks (active + shipped + superseded + abandoned) plus notable non-track commits. The per-track spec/plan/metadata in tracks/ and archive/ remain the source of truth for each track's details; this file is the index. Scope (per the no-day-estimates rule added 2026-06-16): - 6 FRs, 5 NFRs, 12 VCs, 9 Risks, 10 Phases - 3 new files: conductor/chronology.md, scripts/audit/generate_chronology.py, docs/reports/CHRONOLOGY_MIGRATION_20260619.md - 2 modified files: conductor/tracks.md (prune [x] entries), conductor/workflow.md (3-step archiving convention) - 165+ per-row cross-check tasks (Phase 8 hard gate per user directive 2026-06-19) User directive baked in as FR6 + VC10/VC11/VC12: 'EVERY SINGLE ENTRY MUST BE CROSS CHECKED TO MAKE SURE IT'S STILL CORRECT, AND NOTHING WAS MISSED.' The helper script is DRAFT-ONLY; the cross-check is the authority. Tier 1 does the mechanical check; the user is the quality gate. Plan + initial migration to follow in subsequent commits.
152 lines
9.3 KiB
JSON
152 lines
9.3 KiB
JSON
{
|
|
"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 (<init-sha>..<end-sha> 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."
|
|
]
|
|
}
|