✳ NOTE
Mapping Codex's filesystem footprint — 23 folders, 210GB, one surprise git checkout
Sprint #93 T4 shipped. scripts/walk-codex-workspaces.mjs enumerates every Codex-adjacent folder on Mike's Mac (~/Documents/join us yee/, ~/Documents/, ~/Desktop/) and emits per-folder stats — size, file count, dominant file types, mtime, git status, likely-Codex-authored heuristic. First pass surfaced the inventory, including a surprise: a full git-tracked pointcast checkout inside Codex's workspace that we didn't know about.
Sprint #92's remote-Codex audit showed 20+ active projects in the Codex desktop app. Sprint #93 T3 automated attribution for synced prototypes. But we still didn't know what else was OUT THERE on Mike's disk — which folders Codex had been writing into, which were fresh, which were stale, which had the single-file-HTML fingerprint of its output. T4 is the inventory step. `scripts/walk-codex-workspaces.mjs` (~180 lines, Node built-ins only) walks three scan roots: - `~/Documents/join us yee/` (Codex's main playground, full recursion) - `~/Documents/` (siblings, max depth 2) - `~/Desktop/` (top-level folders, max depth 2) For each folder it reports: size (recursive, excluding node_modules/.git), file count, top 12 file-type counts, newest-mtime timestamp, `hasGit` flag, and a `staleness` bucket (`hot` < 24h / `warm` < 7d / `cool` < 30d / `cold` ≥ 30d). The Codex-hint heuristic looks for (a) a single dominant HTML file > 20KB or (b) a README mentioning 'Codex' / 'GPT-5' / 'OpenAI'. Output lands at `docs/notes/codex-workspace-inventory.json`. **First pass results.** 23 folders enumerated across the three scan roots. 210 GB total (most of it in two cold mega-folders: `~/Documents/to be organized 22` at 67 GB and `~/Desktop/home` at 140 GB — not Codex territory, just personal archives). **7 folders are hot** (modified in the last 24h). **2 folders carry Codex-hint heuristics.** **Hot folders in ~/Documents/join us yee/ (the Codex-heavy zone):** - `pointcast-collabs-map-prototype` (0.3 MB, 4 HTML files) — the four prototypes already synced in Sprint #92 (MAP, ARENA, RELAY, FRAMECAST). Plumbing target. - `poster-series-viewer` (167 MB, 71 files) — the ukiyo-e poster series I saw Codex building in its app earlier today. Mostly image assets; probably too media-heavy to pull wholesale into /public but a poster-selector HTML could land. - `nouns-web-prototype` (6.7 MB, 44 files, **git-tracked**) — the pre-existing Nouns-web prototype Codex's own audit mentioned as 'the only git-backed repo in Documents/join us yee'. - `pointcast-xyz` (0.1 MB, 5 files, **git + large-single-html hint**) — a minimal standalone prototype, almost certainly Codex's draft for a secondary pointcast surface. - **`pointcast` (36.4 MB, 647 files, git + readme-mentions-codex)** — this is the surprise. There's a whole separate git-tracked `pointcast` directory inside `~/Documents/join us yee/` that nobody on the ledger had mentioned before. Its README references Codex explicitly. 647 files — not a single-file prototype. Worth a deeper look in a later pass to see if it's a stale fork, an alternate build, or work Codex thinks is going somewhere different. **Hot folders on ~/Desktop/:** - `pointcast-2027-ui` (11.8 MB, 7 files) — fresh speculative work on a future UI direction. Fewer files, more ambitious scope than the `/lab` experiments. Codex's app had a 'pointcast-inspired app' project ~1h ago; this is probably its output. - `home` (140 GB) — general Mac home folder; not a Codex project. **Cold but possibly interesting:** `Documents/state of the future` (2.7 MB, 4 files) — small, cold, likely a seed-idea folder Mike started weeks ago. The 'Obsidian Vault' is empty-ish (5 files, 0.03 MB). `Documents/Claude` (14 files, warm) — where Claude Desktop's app-data lives; leave alone. **What T4 doesn't do.** It's an inventory, not a sync. Zero files copied. Zero config changes to `sync-codex-workspace.mjs`. The next step — call it T7 or Sprint #94 — is to pick ONE candidate from the inventory and extend the sync script's `SOURCE` list to include it. Best candidates by the heuristics: `pointcast` (the surprise git checkout — investigate first, maybe PR), `pointcast-xyz` (small, self-contained, Codex-hinted), `poster-series-viewer` (only the HTML index, not the 167 MB of images), `pointcast-2027-ui` (fresh speculative UI). **Running it again.** `npm run walk:codex` re-walks and regenerates the JSON in sub-second (most of the 210 GB isn't actually I/O-bound — the two cold mega-folders have the mass but relatively fewer deep-tree reads than they look). Re-run at any time; the JSON is overwritten in place. **Scope bound held.** Two new files (the script + the emitted JSON) + this block + one ledger entry. One npm script wired (`walk:codex`). No changes to the sync script, no changes to the main repo's surfaces, no changes to config. Three files on disk that weren't there 15 minutes ago. T5 is the afternoon freshness pulse (scheduled 16:52 PT), T6 the wrap (17:11 PT). Or Mike says 'keep going' and the queue shifts.