Session 0018.0 (Wave 9): rewrite legacy session refs in transcript bodies + README scoping

- Rewrite every legacy `Session L` / `Session M.1` etc. reference inside
  transcript bodies to the numeric form (`Session 0012.0` / `Session 0013.1`),
  via a mechanical Python sed pass scoped to canonical-filename transcripts
  only (502 replacements across 39 files; 21 files in this published repo +
  18 sibling files in `~/git/ohm-infra/`). The §23 rename was originally
  filename-only — session 0018.0 reverses that and rewrites the bodies too,
  so cross-references inside a transcript match the filename you'd browse
  to. The mapping table (`A → 0001` … `N → 0014`) lives in
  `SESSION-PROTOCOL.md` §1 (also amended this session) for anyone hitting
  an old external link.

- Amend README.md:
  - New "Where the record begins" section noting OHM started with two
    vibe-coded prototypes (no transcripts; the discipline that produced this
    record didn't exist yet). The transcripts here begin at the
    spec-driven-development phase — not at the literal beginning of OHM.
  - Update the existing "Sessions 0001 through 0013 originally shipped
    under a letter-form naming" paragraph to reflect that body refs are
    now also in numeric form.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Ben Stull
2026-05-28 09:40:06 -07:00
parent 412b6ab5d8
commit d5125190ae
21 changed files with 281 additions and 255 deletions
@@ -1,4 +1,4 @@
# Session I — Transcript
# Session 0009.0 — Transcript
> Date: 2026-05-27 → 2026-05-28
> Goal: Execute Wave 1 then Wave 2 of `ohm-rfc/ROADMAP.md` as the
@@ -230,7 +230,7 @@ flotilla deploy ohm-rfc-app
```
All 9 phases green in ~30 seconds (verify took 4.7s, similar to the
v0.3.0 deploy from Session H). `curl https://ohm.wiggleverse.org/api/health` returns `{"version":"0.4.0","status":"ok"}`.
v0.3.0 deploy from Session 0008.0). `curl https://ohm.wiggleverse.org/api/health` returns `{"version":"0.4.0","status":"ok"}`.
`deploys.id=4` recorded as `succeeded`.
@@ -299,8 +299,8 @@ Diagnosed: the VM at `/opt/ohm-app` has uncommitted modifications to
`frontend/package-lock.json`. Reconstructed timeline:
1. Pre-Session-I, the VM was at rfc-app v0.3.0. `git status` on the
VM at the start of Session I would have shown nothing (the v0.2.3
→ v0.3.0 deploy in Session H was clean — coincidentally, that
VM at the start of Session 0009.0 would have shown nothing (the v0.2.3
→ v0.3.0 deploy in Session 0008.0 was clean — coincidentally, that
release's lockfile happened to be byte-equivalent to whatever
`npm install` produces from the published `package.json`).
2. v0.4.0 deploy phase 5 ran `npm install && npm run build` on the
@@ -323,7 +323,7 @@ Per the operating instructions ("Stop on first deploy failure"), the
driver halts Wave 1 at this point. Wave 2 is not attempted.
**Recovery for the operator** (paste into a shell with `gcloud` ADC
already set up — see Session H §6 if not):
already set up — see Session 0008.0 §6 if not):
```bash
gcloud compute ssh ohm-app --zone us-central1-a --project wiggleverse-ohm -- \
@@ -749,11 +749,11 @@ Driver:
### Idempotency verification
After the bootstrap, driver ran `~/git/ohm-infra/scripts/publish-transcript.sh --dry-run SESSION-I-TRANSCRIPT.md` to confirm the
After the bootstrap, driver ran `~/git/ohm-infra/scripts/publish-transcript.sh --dry-run SESSION-0009.0-TRANSCRIPT.md` to confirm the
single-session gesture works against the now-populated repo. Output:
```
[publish-transcript] header OK: # Session I — Transcript
[publish-transcript] header OK: # Session 0009.0 — Transcript
[publish-transcript] size: 47095 bytes
[publish-transcript] cloning … -> /var/folders/…/repo
[publish-transcript] no changes — already published at 5f4f76c; exiting 0
@@ -782,7 +782,7 @@ audit-trail shape; the operator can update or archive it later.
This published transcript itself — the version on `wiggleverse/ohm-session-history` after the bootstrap commit — does not yet include
this arc. The next gesture (or the operator's first run of
`publish-transcript.sh SESSION-I-TRANSCRIPT.md` after this extension
`publish-transcript.sh SESSION-0009.0-TRANSCRIPT.md` after this extension
commits) will push the diff.
---
@@ -798,7 +798,7 @@ landed mid-conversation:
The operator asked: "let's update the session file names to give an
idea of when they happened. ISO datetime in PST start time and end
time after the SESSION-A-TRANSCRIPT."
time after the SESSION-0001.0-TRANSCRIPT."
Driver presented four format options + four start-time-derivation
options as a structured question. Operator selected:
@@ -1081,7 +1081,7 @@ Three waves complete. OHM is on v0.10.0 (`deploys.id=11`,
subagent's audit flagged this as medium severity; recommendation
was ship-as-is, but operator review before first publish is the
right discipline).
- Run `~/git/ohm-infra/scripts/publish-transcript.sh --dry-run SESSION-A-TRANSCRIPT.md` to confirm the script behaves.
- Run `~/git/ohm-infra/scripts/publish-transcript.sh --dry-run SESSION-0001.0-TRANSCRIPT.md` to confirm the script behaves.
- Decide cadence: every session at cut time vs batched. The script
supports both; v1 recommendation is "every session" since the
artifact already exists locally.
@@ -1114,13 +1114,13 @@ Three waves complete. OHM is on v0.10.0 (`deploys.id=11`,
## Prompt the operator can paste into the next Claude Code session
```
You are the OHM roadmap driver. The previous session (Session I)
You are the OHM roadmap driver. The previous session (Session 0009.0)
shipped rfc-app v0.4.0 / v0.5.0 / v0.6.0 / v0.7.0 / v0.8.0 /
v0.10.0 / v0.13.0 to OHM (deploys.id 4, 6, 8, 9, 10, 11 — v0.6.0's
deploy logged `aborted` due to a phase-7 SSE-grace timeout but is
live, see SESSION-I §19.2). OHM is currently serving v0.10.0. Item
#1 (VM rename) remains operator territory. Item #14 shipped late in
Session I: `wiggleverse/ohm-session-history` is public on
Session 0009.0: `wiggleverse/ohm-session-history` is public on
git.wiggleverse.org with Sessions AI published under CC BY 4.0,
and the session protocol is now baked into the CLAUDE.md files of
flotilla + ohm-rfc (rfc-app's CLAUDE.md update was deferred to the
@@ -1139,12 +1139,12 @@ the next session" section. The Wave 4 lineup per the roadmap text:
CLOUDFLARE_TURNSTILE_SECRET` before the v0.12.0 deploy.)
Before dispatching, check current main state — a parallel session
may have shipped a docs-feature release between Session I's close
may have shipped a docs-feature release between Session 0009.0's close
and now (typically v0.9.0 or v0.14.0, claiming the next available
slot). If so, factor the new HEAD into upgrade-from anchors in your
subagent prompts.
Same constraints as Session I: dispatch parallelizable items as
Same constraints as Session 0009.0: dispatch parallelizable items as
forked subagents in a single message, serialize the deploys,
verify each, strikethrough the version-target table when an item
ships, commit + push ohm-rfc, write the session transcript per
@@ -1160,7 +1160,7 @@ Session-I lessons to apply automatically:
- Cross-repo subagents (rfc-app work from the flotilla CWD) must
create their own `git worktree add` in the target repo.
- Migration numbers: pre-allocate slots per subagent in the prompt
(Session I used slot 014 for #6 and 015 for #8 successfully; the
(Session 0009.0 used slot 014 for #6 and 015 for #8 successfully; the
next free is 016 unless the parallel docs-feature session claimed
it — check `ls /Users/benstull/git/rfc-app/backend/migrations/`
before dispatching).