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.gitignoreto the three bucket rules; write the README mapevidence — 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/transcriptsevidence — 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 createdlog — ls -la through every link
On tick. - diffWorking junk + spikes into
scratch/(format-recon, upscale-test, pilot assets, runner, vscode-drive) underscratch/archive/; existing rendered outputs moved to media outevidence — 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 constantsevidence — 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
- Exact sub-folder names within the agreed tree, and where individual stray files land, are the builder's call — logged.
- gitignore pattern details are the builder's call so long as the three bucket rules hold.
- Not covered (always a stop): deleting anything · touching the Dropbox folder layout · renaming the repo root (Asim's action) · changing the agreed top-level tree · recording a verdict without a verifier's report · amending this plan (parent's, on the record).
Decision Log
Empty — fills during the run (what came up · what was chosen · how to reverse).