{
  "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."
  ]
}
