# Chronology Migration Report

**Track:** `chronology_20260619`
**Report date:** 2026-06-20
**Status:** Pre-cross-check (Phase 5 of 10). Phase 8 will fill in the per-row log.

---

## 1. Summary

| Metric | Count |
|---|---|
| Total rows in `chronology.md.draft` | 216 |
| Rows in `conductor/tracks/` (Active) | 40 |
| Rows in `conductor/archive/` (Shipped) | 176 |
| Rows removed from `conductor/tracks.md` | 9 (4 Phase 9 + 1 Active Research + 4 Follow-up) |
| Notable non-track commits added | 0 (filled in later or by Tier 1 manually) |

**Net change:** `tracks.md` lost 9 duplicated `[x]` / `[shipped:]` entries; `chronology.md` (draft) gained 216 rows of canonical track history.

---

## 2. Counts by Status

Status values come from `metadata.json` `status` field (overrides the folder-location default per FR5). Phase 8 will normalize these to FR1's enum (Active, In Progress, Shipped, Superseded, Abandoned).

| Status (raw) | Count |
|---|---|
| `new` | 102 |
| `planned` | 34 |
| `shipped` | 27 |
| `active` | 17 |
| `completed` | 10 |
| `pending` | 7 |
| `in_progress` | 7 |
| `spec_written` | 3 |
| `future` | 2 |
| `planning` | 2 |
| `active (proposed 2026-06-08; awaiting Phase 1 user-answers)` | 1 |
| `complete` | 1 |
| `contingency (not active)` | 1 |
| `in-progress` | 1 |
| `spec_approved` | 1 |

**Total:** 216

**Note:** the diversity here is intentional (the project carries many status flavors in `metadata.json`), but for FR1's canonical chronology the values should normalize to a smaller enum. Phase 8 will document the mapping.

---

## 3. Counts by `tracks.md` Section Removed

| Section | Entries removed | Notes |
|---|---|---|
| `Phase 9: Chore Tracks` | 4 | Replaced with one-line stub pointing to `chronology.md`. Entries: Unused Scripts Cleanup, License & CVE Audit, Qwen/Llama/Grok Vendor Integration, Qwen/Llama/Grok Follow-Up. |
| `Active Research Tracks > Active` | 1 | Section header retained as a stub pointing to `chronology.md` + Active Tracks table. Entry: Fable System Prompt Review (shipped 2026-06-18). |
| `Follow-up (Planned, Not Yet Specced)` | 4 | Entries: RAG Test Failures Fix (2026-06-15), Tier 2 Autonomous Sandbox (2026-06-16), Rename send_result to send (2026-06-17), Live GUI Test Infrastructure Fixes (2026-06-18). |
| **Total** | **9** | |

**Out of scope:** `[x]` entries in `Phase 0-7` historical sections (lines 74-445 of `tracks.md`) were NOT pruned. Those sections are historical phase records, not duplicated listings — FR2 targets Phase 9, Active Research, and Follow-up only.

---

## 4. Documented Exceptions

| Folder | Reason |
|---|---|
| (none yet) | Phase 9 (completeness check) will enumerate any folder without a row. Pre-cross-check the diff is expected to be empty (the script walks both folders). |

The 7 folders without a slug-date suffix (5 archive + 2 PLACEHOLDER tracks) are NOT exceptions — they have rows in `chronology.md.draft` with the date resolved via first-commit fallback per FR1.

The 14 folders without `metadata.json` are also NOT exceptions — they have rows with summaries extracted from `spec.md` first sentence per FR5.

---

## 5. Notable Non-Track Commits Added

**None yet.** This section is filled in later (Phase 8 / Phase 9 by Tier 1 manually) for commits that aren't part of any track but a future agent reading the chronology would want to know about. Examples: one-off production fixes, infra tweaks, doc-only commits. The bar is "non-obvious work that wasn't part of a track."

---

## 6. Diff Preview (10-20 rows for user spot-check)

First 10 rows of `chronology.md.draft` (sorted by date descending):

```
| 2026-06-20 | `result_migration_baseline_cleanup_20260620` | active | **Track ID:** `result_migration_baseline_cleanup_20260620` | `conductor/tracks/result_migration_baseline_cleanup_20260620` | `e9016749..e9016749` (0) |
| 2026-06-20 | `tier2_leak_prevention_20260620` | shipped | **Track:** `tier2_leak_prevention_20260620` | `conductor/tracks/tier2_leak_prevention_20260620` | `9224be7a..9224be7a` (0) |
| 2026-06-19 | `chronology_20260619` | spec_written | This track creates `conductor/chronology.md`, a complete, manually-maintained index of all tracks (active, shipped, archived, superseded) for the Manual Slop conductor system, plus a small section… | `conductor/tracks/chronology_20260619` | `87923c93..ee9f42e9` (3) |
| 2026-06-19 | `result_migration_gui_2_20260619` | active | **Track ID:** `result_migration_gui_2_20260619` | `conductor/tracks/result_migration_gui_2_20260619` | `ac24b2f6..4116e14e` (18) |
| 2026-06-19 | `superpowers_review_20260619` | spec_written | **Status:** Spec approved 2026-06-19 (brainstorming dialogue complete; awaiting user review of written spec). | `conductor/tracks/superpowers_review_20260619` | `8dce46ac..4fd79abc` (3) |
| 2026-06-19 | `test_sandbox_hardening_20260619` | spec_written | This track adds a hard file-I/O sandbox for the test suite so that a misbehaving | `conductor/tracks/test_sandbox_hardening_20260619` | `ec0716c9..eec44a09` (9) |
| 2026-06-18 | `live_gui_test_fixes_20260618` | active | This track addresses 2 test failures reported as "documented issues" by the `result_migration_small_files_20260617` sub-track Phase 13 (commit `30ca3265`). | `conductor/tracks/live_gui_test_fixes_20260618` | `ff40138f..6ce55cba` (2) |
| 2026-06-18 | `result_migration_app_controller_20260618` | active | **Track ID:** `result_migration_app_controller_20260618` | `conductor/tracks/result_migration_app_controller_20260618` | `93d906fb..c99df4b0` (17) |
| 2026-06-18 | `tier2_no_appdata_20260618` | active | **Track ID:** `tier2_no_appdata_20260618` | `conductor/archive/tier2_no_appdata_20260618` | `93d906fb..93d906fb` (0) |
| 2026-06-17 | `fable_review_20260617` | spec_approved | **Status:** Spec approved 2026-06-17 | `conductor/tracks/fable_review_20260617` | `058e2c93..22d3234b` (42) |
```

Last 10 rows (oldest tracks):

```
| 2026-02-26 | `logging_refactor_20260226` | new | Review logging used throughout the project. The log directory has several categories of logs and they are getting quite large in number. We need sub-directories and we need a way to prune logs that aren't valuable to keep. | `conductor/archive/logging_refactor_20260226` | `507154f8..507154f8` (0) |
| 2026-02-26 | `mma_orchestrator_integration_20260226` | in-progress | Implement the full hierarchical orchestration loop, connecting Tier 1 (PM) strategic planning with Tier 2 (Tech Lead) tactical ticket generation. | `conductor/archive/mma_orchestrator_integration_20260226` | `6e094846..6e094846` (0) |
| 2026-02-26 | `mma_utilization_refinement_20260226` | new | Refine MMA utilization by segregating tiers, enhancing sub-agent tooling with AST skeletons, and improving observability via dedicated logging. | `conductor/archive/mma_utilization_refinement_20260226` | `4374b91f..db118f0a` (2) |
| 2026-02-25 | `deepseek_support_20260225` | new | Add support for the deepseek api as a provider. | `conductor/archive/deepseek_support_20260225` | `d0308975..d0308975` (0) |
| 2026-02-25 | `gemini_cli_parity_20260225` | new | Make sure gemini cli behavior and feature set have full parity with regular direct gemini api usage in ai_client.py and elsewhere | `conductor/archive/gemini_cli_parity_20260225` | `659f0c91..659f0c91` (0) |
| 2026-02-25 | `manual_slop_headless_20260225` | new | Support headless manual_slop for making an unraid gui docker frontend and a unraid server backend down the line. | `conductor/archive/manual_slop_headless_20260225` | `147c10d4..147c10d4` (0) |
| 2026-02-25 | `mma_formalization_20260225` | new | Improve conductors use of 4-tier mma architecture workflow, skills, subagents. Introduce a seaprate skill for each dedicated tier and a dedicated cli tool to execute the roles appropriate/gather context as defined for that role's domain. | `conductor/archive/mma_formalization_20260225` | `3a6a53d0..3a6a53d0` (0) |
| 2026-02-25 | `mma_verification_20260225` | new | MMA Tiered Architecture Verification | `conductor/archive/mma_verification_20260225` | `96e40f05..96e40f05` (0) |
| 2026-02-25 | `mma_verification_mock` | new | Mock Track for MMA Delegation Verification | `conductor/archive/mma_verification_mock` | `96e40f05..96e40f05` (0) |
| 2026-02-25 | `test_curation_20260225` | new | Review all tests that exist, some like the mma are conductor only (gemini cli, not related to manual slop program) and must be blacklisted from running when testing manual_slop itself. I think some tests are failing right now. Also no curation of the current tests has been done. They have been made incremetnally, on demand per track needs and have accumulated that way without any second-pass conslidation and organization. We problably can figure out a proper ordering, either add or remove tests based on redundancy or lack thero-of of an openly unchecked feature or process. This is important to get right now before doing heavier tracks. | `conductor/archive/test_curation_20260225` | `8abf5e07..8abf5e07` (0) |
| 2026-02-24 | `documentation_refresh_20260224` | new | Update ./docs/* & ./Readme.md, review ./MainContext.md significance (should we keep it..). | `conductor/archive/documentation_refresh_20260224` | `cf7938a8..cf7938a8` (0) |
```

---

## 7. Per-Row Cross-Check Log

**Status:** Phase 8 in progress. Bulk structural verification complete (216/216 rows pass). Content-quality fixes applied to 23 rows (summary extraction bug). Per-row manual verification of remaining rows continues.

### Bulk Verification (Phase 8 batch 1 — automated)

`scripts/audit/check_chronology_rows.py` and `scripts/audit/check_commit_counts.py`:

| Check | Rows | Pass | Fail |
|---|---|---|---|
| Folder exists | 216 | 216 | 0 |
| `init_sha` matches `git log --reverse --format=%h` | 216 | 216 | 0 |
| `end_sha` matches `git log -1 --format=%h` | 216 | 216 | 0 |
| Date format `YYYY-MM-DD` | 216 | 216 | 0 |
| Status field non-empty | 216 | 216 | 0 |
| Summary field non-empty | 216 | 216 | 0 |
| `commit_count` matches git log | 216 | 216 | 0 |

### Content Quality Fix (Phase 8 batch 1 — script + commit)

**Issue:** 23 rows had summaries starting with `**Status:** Spec approved YYYY-MM-DD` (metadata, not description of the work).

**Root cause:** `extract_summary()` picked the first non-heading line of spec.md. Many specs have `**Status:** ...` as the first content line.

**Fix:** Skip lines starting with `**Status:**`, `**Track ID:**`, `**Track:**`, and `>` (blockquote). Use the first substantive line instead.

**Test added:** `test_summary_extraction_skips_status_metadata_line`.

**Script change:** `scripts/audit/generate_chronology.py:extract_summary`.

**Rows updated:** 23 (all `**Status:**` summaries replaced with their next substantive line).

### Per-Row Manual Verification

For rows NOT covered by the bulk verification (content accuracy, summary adequacy, status semantic correctness), the per-row manual verification continues. The full 9-batch × 20-row per-row check as planned in `plan.md` Phase 8 is the dominant work; this report tracks the structural-verification batch and the script-fix batch.

**Recommendation for followup:** The next agent (or human Tier 1) should run the 9-batch manual cross-check on the per-row summary adequacy — verify each row's summary describes the most important fact, trim/rewrite as needed, and log fixes here.

---

## 8. User Sign-Off

The user reviews the final `chronology.md` + this report + the Phase 9 completeness check. Confirms:

- [ ] (a) **Format** is correct (FR1: markdown table with 6 columns: Date, ID, Status, Summary, Folder, Range).
- [ ] (b) **Summaries** are accurate (≤ 25 words, describes the most important fact).
- [ ] (c) **Commit ranges** are right (init SHA + end SHA both exist, count is plausible).
- [ ] (d) **Nothing was missed** (every folder in `tracks/` and `archive/` has a corresponding row, OR is documented in §4 exceptions).

**Sign-off:** _____________________  Date: _____________

---

## Appendix A: Spec/Plan Deviations

The following deviations from the original `spec.md` / `plan.md` were taken during execution:

1. **Phase 4 location:** The spec/plan referenced `conductor/workflow.md` "Notes > Editing this file" section per FR3, but that section doesn't exist in `workflow.md` — the actual "Editing this file" section is in `conductor/tracks.md`. The new 3-step convention was appended to `tracks.md` (where the existing convention lives) per the spec's intent. The deviation is documented inline in `tracks.md`.

2. **Status values:** The script reads `metadata.json.status` directly. Many values in the project use lowercase + underscored forms (`active`, `in_progress`, `spec_written`, etc.) that differ from FR1's expected titlecase enum (Active, In Progress, Spec Written). Phase 8 will normalize or document the mapping.

3. **Documented exceptions (§4):** Pre-Phase 9, no folders are missing rows. The 7 folders without slug dates and 14 folders without `metadata.json` are handled by the script's fallback chain, not by exception entries.

---

## Appendix B: Audit Script Provenance

- **Script:** `scripts/audit/generate_chronology.py` (1 file, FR5)
- **Tests:** `tests/test_generate_chronology.py` (1 file, 5 tests, all passing)
- **CLI:** `uv run python scripts/audit/generate_chronology.py --draft > conductor/chronology.md.draft`
- **Status:** DRAFT-ONLY per user directive (2026-06-19). The cross-check (Phase 8) is the authority.

---

## Appendix C: Atomic Commit Log (Phases 1-5)

| Phase | Commit | Description |
|---|---|---|
| 1.2 | `e9f4a09` | test(chronology): failing tests for generate_chronology.py extraction logic |
| 1.3 | `32eb5b9` | feat(chronology): add draft-only helper script (FR5) |
| 1.4 | `959c89c` | conductor(checkpoint): Phase 1 complete — script + tests green |
| 3.1 | `be38dd5` | conductor(track): prune Phase 9 Chore Tracks section from tracks.md (FR2) |
| 3.2 | `cca4767` | conductor(track): prune [x] entry from Active Research Tracks (FR2) |
| 3.3 | `b3a9c45` | conductor(track): prune [shipped] entries from Follow-up section (FR2) |
| 3.4 | `df25ca5` | conductor(checkpoint): Phase 3 complete — tracks.md pruned |
| 4.1 | `b697cd8` | conductor(track): document 3-step archiving convention in tracks.md (FR3) |

Phase 2 (draft generation) is intentionally not committed per the plan (draft is not canonical until Phase 7).
