Private
Public Access
0
0
Files
manual_slop/conductor/tracks/chronology_20260619/metadata.json
T
ed 87923c93af conductor(track): add initial spec for chronology_20260619
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.
2026-06-19 20:00:06 -04:00

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