diff --git a/spec/HANDOFF_2026-08-07.md b/spec/HANDOFF_2026-08-07.md index 8fc4431..93c7764 100644 --- a/spec/HANDOFF_2026-08-07.md +++ b/spec/HANDOFF_2026-08-07.md @@ -1,17 +1,70 @@ # Handoff — 2026-08-07 -Written at `be244df`, pushed to `origin/main`. Working tree clean. +Written at `ada751c`, pushed to `origin/main`. Working tree clean, no stashes, no +unpushed commits on any branch. -**Scope note, stated first because it bounds everything below.** This handoff is -written from the **spec / Pass-13 / format-epoch** session. A second session has -been committing to this repository in parallel, and its files were placed -explicitly out of bounds for this one — `spec/PLAN_EDITOR_APP.md`, +**Scope note, stated first because it bounds §2.** This handoff is written from +the **spec / Pass-13 / format-epoch** session. A second session has been +committing to this repository in parallel, and its files were placed explicitly +out of bounds for this one — `spec/PLAN_EDITOR_APP.md`, `spec/CONTRACT_EDITOR_*.md`, `spec/ANALYSIS_*.md`, `spec/DRAFT_T4_FIXTURE_RECIPE.md`, the whole `spikes/` tree, `crates/epiphany-editor-gui/**`, `crates/epiphany-render-svg/**`, `crates/epiphany-glyphs/**`, and the root -`Cargo.toml`. **§2 is therefore not an assessment of that work.** It is what is -visible from outside the boundary, plus a precise list of what to ask that -session for. Do not treat §2 as authoritative the way §1 is. +`Cargo.toml`. **§2 is therefore not an assessment of that work**; it is the view +from outside the boundary plus what to ask that session for. §0, §1, §3 and §4 +are verified. + +--- + +## §0. Transfer manifest — what `git clone` does NOT carry + +**The good news first, because it is most of the risk retired.** `spikes/` is +**tracked** (106 files), so the T4 spike moves with the repository. The +`editor-t4` worktree is **clean** — zero uncommitted, zero untracked, zero +unpushed. No stashes anywhere. Every commit on every local branch is already on +`origin`. **There is no unpushed work on this machine.** + +What a fresh `git clone` will nevertheless *not* give you: + +### 0.1 Gitignored files that exist locally + +| File | Size | Status | +|---|---|---| +| `HANDOFF.md` (repo root) | 18 KB, last touched 2026-06-21 | **Not regenerable — carry it.** Deliberately gitignored as "a planning briefing, not committed" | +| `ALL_DECISIONS_AND_READMES.md` | 99 KB | Regenerable — it is a concatenation of the tracked per-crate `DECISIONS.md` and `README.md` | +| `out.svg` | 50 KB | Regenerable — `cargo run -p epiphany-render-svg --example render_fixture` | +| `target/`, `spec/*.aux` etc. | — | Build artifacts; let them rebuild | + +Note the root `HANDOFF.md` is a *different, older* document from this one +(`spec/HANDOFF_2026-08-07.md`, which is tracked and will transfer normally). + +### 0.2 Local git state that is not on the remote + +- **The branch ref `editor-t4-packet2b` does not exist on `origin`.** `origin` + has only `refs/heads/main`. Its *commits* are safe — they are reachable through + the `f33673d` merge — but the branch pointer is local. **If that thread intends + to keep working on that branch, push it before wiping this machine:** + `git push -u origin editor-t4-packet2b`. +- **The worktree is local by nature.** Recreate on the other machine with: + `git worktree add .claude/worktrees/editor-t4 editor-t4-packet2b`. +- `.claude/settings.local.json` is untracked — local permissions/settings. + +### 0.3 Outside the repository entirely + +- **Agent memory: `~/.claude/projects/-home-jeans-Repos-active-epiphany/memory/`** + — 21 files, 228 KB, including the track notes both threads have accumulated + (`format-epoch-track`, `editor-app-plan-track`, `editor-core-editing-track`, + `genesis-ops-track`, `pass12-g-pass`, `schema-major-1-track`, and the + method/lesson notes). This lives outside the repo and will **not** move with + it. Copy the directory to the same path on the other machine. +- **Session/conversation state for both threads cannot transfer at all.** That is + the irreducible loss in a machine move, and it is the reason this document and + the other thread's own handoff exist. + +### 0.4 Environment (see §3 for detail) + +Toolchains 1.95.0 + 1.85, a TeX Live with **`xelatex`** and `fontspec`, and the +GUI apt packages. None of it is in the repo. --- @@ -277,16 +330,38 @@ to mutate against. --- -## §4. Recommended first moves after the move +## §4. Order of operations for the move -1. Reproduce the green baseline in §3.5. -2. Get the other session's own handoff for §2. This one is deliberately not a - substitute for it. -3. **Dispatch P13-S27.** It is the only unblocked item on the critical path, its - contract is complete, and it discharges the three inherited obligations plus - ends the no-canonical-base interval that currently constrains every other - piece of bundle work. -4. Then **P13-S16**, which becomes dispatchable the moment S27 lands. -5. Take a ruling on **S8** (reject one spelling vs. keep both canonical) whenever - convenient — it needs a decision, not an implementation, and it blocks nothing - in the meantime. +### 4.1 Before wiping this machine + +1. **`git push -u origin editor-t4-packet2b`** — the only ref that exists here + and not on the remote (§0.2). Its commits are safe either way; the pointer is + not. +2. Copy off the four local-only items: root `HANDOFF.md`, + `.claude/settings.local.json`, and the out-of-repo + `~/.claude/projects/-home-jeans-Repos-active-epiphany/memory/` directory + (§0.1, §0.3). `ALL_DECISIONS_AND_READMES.md` and `out.svg` regenerate. +3. Confirm both sessions have written their handoffs — this one covers §1; the + editor/T4 thread's own is still owed (§2). + +### 4.2 On arrival + +4. `git clone`, then restore the memory directory to the same path, then + `git worktree add .claude/worktrees/editor-t4 editor-t4-packet2b` if that + thread is resuming there. +5. Install the environment in §3, including **`xelatex`** — `pdflatex` fails + outright on `fontspec`. +6. **Reproduce the green baseline in §3.5 before starting new work.** 1570 + passing. This thread's whole method depends on a known-green baseline to + mutate against; if the number differs, reconcile that first. + +### 4.3 Then, in priority order + +7. **Dispatch P13-S27.** The only unblocked item on the critical path, its + contract is complete, and landing it discharges the three inherited + obligations *and* ends the no-canonical-base interval that currently + constrains every other piece of bundle work (§1.2). +8. Then **P13-S16**, dispatchable the moment S27 lands. +9. Take a ruling on **S8** (reject one spelling vs. keep both canonical) whenever + convenient — it needs a decision, not an implementation, and blocks nothing in + the meantime.