Plan — Repo restructure

2026-refresh › repo-restructure · chore · 2026-08-05 · spec.html

Two phases: build the new skeleton and move everything into its bucket, then prove the machinery still runs from the new paths. Nothing is deleted anywhere; every file's journey is logged. Safe to stop after either phase — the repo is never left half-moved (moves are grouped and committed per phase).

F1

Create the course-studio layout and move everything into its bucket

The spec's tree made real: packages/ · courses/adv-js/ (with media symlinks) · scratch/ · new gitignore · README with the three-bucket map.

Proved byA before/after file inventory: every pre-move path mapped to its new home (or scratch/archive), zero files unaccounted for, and the repo tree matching the spec's annotated tree exactly.
the work + evidence drawers

Build

  • diffSkeleton + policy: create packages/ courses/adv-js/ scratch/; rewrite .gitignore to the three bucket rules; write the README map
    evidence — the diff
    On tick.
  • diffMove platform code: pipeline/scripts→packages/scripts, pipeline/remotion→packages/remotion; course content: curriculum→courses/adv-js/curriculum (briefings→scripts, examples→workshop), transcripts→courses/adv-js/transcripts
    evidence — the move log
    On tick.
  • logMedia symlinks under courses/adv-js/media/: source/{2016,2019,async} → the Dropbox masters, out/ → the external renders home; takes/ inbox created
    log — ls -la through every link
    On tick.
  • diffWorking junk + spikes into scratch/ (format-recon, upscale-test, pilot assets, runner, vscode-drive) under scratch/archive/; existing rendered outputs moved to media out
    evidence — the move log
    On tick.

Prove

  • logInventory reconciliation: pre-move file list vs post-move — zero unaccounted; tree matches spec; git status readable (only intended tracked files)
    log — the reconciliation output
    On tick.
F2

Re-point the pipeline and prove it still runs

Every script's paths updated for the new layout; the known-good checks re-run from the new locations.

Proved byThe masters audit re-run from packages/scripts/ against courses/adv-js/media/source/ reporting the same 96/97 match, and conform-check passing on the existing golden sample at its new path.
the work + evidence drawers

Build

  • diffUpdate paths in all packages/scripts/* (audit-masters, normalise, concat, trim, upscale, conform-check, card-props) — course paths become arguments, not constants
    evidence — the diff
    On tick.
  • diffFix internal references in curriculum HTML (triage, production sheet, verification, masters-audit) that point at moved paths
    evidence — the diff
    On tick.

Prove

  • logaudit-masters: 96/97 from new paths · conform-check passes on the golden sample · broken-link check over curriculum HTML comes back clean
    log — the three outputs
    On tick.

Decision Defaults — standing autonomy for this run

Decision Log

Empty — fills during the run (what came up · what was chosen · how to reverse).