Files
dotfiles/claude/memory/session-2026-06-12-studium-engine-planning-charter-fable-handoff.md
T

64 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: session-2026-06-12-studium-engine-stage-1-planning-charter-written-ready-to-hand-to-fable-1m
description: "Woke into the Studium Engine thread (sharpened: the chavruta ALREADY RAN → prototype = put the integrity substrate under what ran). Steward ruled governance posture (steward-direct), §10.3 (MD+sidecar), method (middle path). Decided cost-aware model routing — Fable[1m] for the bounded planning phase, Opus for the build — and wrote a scope CHARTER (stage-1-planning-brief-2026-06-12.md) on Opus to bound the Fable session. Also diagnosed the ARC running-head mobile-Safari gap (parked, option i). Pulling thread: execute the charter on Fable[1m] → produce Cluster-A spec + Stage-1 build plan → switch back to Opus to build. Resumption: clear → wake → switch to claude-fable-5[1m] high-thinking → 'read the charter and go.'"
metadata:
node_type: memory
type: project
originSessionId: 311a26cb-4cf5-4a24-8566-85d3eadf0ee0
---
# Session 2026-06-12 — Studium Engine Stage-1 planning charter; Fable[1m] handoff staged
Woke into the Studium Engine (06-11 pulling thread). The session did two things: a brief ARC running-head mobile-Safari diagnosis (parked), then the substantive work — set up the Studium Engine Stage-1 planning so it can run cleanly on Fable 5 in the cost-window. Symmetria active (ledger `session-ledger-2026-06-12.md`).
## Past — what we did
### ARC §VII.f running head — mobile-Safari gap diagnosed + PARKED (option i)
Steward: "did the running head ship for phone? I don't see it." Investigated **against code, not narrative** (the day's discipline). Findings, on-device-verified:
- The running head has **no phone exclusion** in code — no media query, no width floor (`_running-head.scss`). The only gate is `@supports (animation-timeline: view())`.
- **My first answer was wrong and I corrected it:** I *inferred* "your phone lacks scroll-driven-animation support." Steward is on iPhone 17 Pro / latest iOS / Safari 26, which **does** support it (web-verified: `animation-timeline: view()` + `timeline-scope` both land in Safari 26). So not the designed fallback.
- On-device measurement (Safari Web Inspector on the phone): `.running-head` = `display:block, opacity:0, top:0, height:69`. `CSS.supports('animation-timeline','view()')` → `true`. Desktop Safari **shows it**; Responsive Design Mode does **not** (RDM is a known-unreliable harness for scroll-driven animations — red herring).
- **Conclusion (B):** mobile Safari accepts the syntax (gate opens, band laid out) but **does not drive the scroll reveal** on a `position:fixed` + `timeline-scope` consumer → opacity stuck 0 → invisible. A real mobile-WebKit gap, not our bug.
- **The class (the real finding):** `@supports (animation-timeline: view())` is a **leaky gate** — true on a platform where the feature is non-functional → the §VII.f spec's "no-support shows nothing" fallback claim is **false on mobile WebKit**.
- **Steward ruled option (i):** accept mobile-absent; truth-up the spec someday (not a build). Stopped before the rabbit hole. **Parked in the ledger; belongs in `project-arc-open-work-register.md` at next ARC touch.** Frontispiece W1.15 reveal NOT re-checked on mobile (same family, likely fine, unverified).
### Studium Engine — read the picture, steward ruled, model-routing decided, charter written
1. **Read both core docs in full** (not from memory): the **bridge doc** `the-chamber-and-the-engine-2026-06-11.md` (still uncommitted, steward's review) + the **seed brief** `seed-brief.md`. **Reconciled — they agree;** bridge ADDS the coverage-ledger (§3) + the "already-ran / build-from-evidence" reframe (§5), doesn't contradict the brief.
2. **Steward's three rulings** (engine = his tool, steward-direct governance, recorded for the Cluster-A decision record):
- **Governance posture:** steward-direct **now**; Jurist **later**, only for the scholarly questions (§10.1 voicing/drift, §10.2 deep landscape audit, §10.3 philosophical edge). L2 parked.
- **§10.3 canonical source format:** **Markdown body + `.meta.json` sidecar = canonical**; TEI = optional later tier (~20–50 high-fidelity sources, on top of B), NOT Stage 1.
- **Method:** middle path — **thin Cluster-A spec now** (data model + §10.3), then vertical slice spec-noted just-in-time. NOT full spec-first.
3. **Cost-aware model routing** (grounded in the Reddit "Fable 5 burns ~2%/min" thread the steward shared — verified the one hard fact: Fable = 2× rate card $10/$50 vs Opus $5/$25, burn scales with context×session-length): **Fable[1m] for the bounded planning phase** (highest-leverage reasoning: data model + failure-derived defenses) → emit written artifacts → **switch back to Opus 4.8 for the build** (long, token-heavy, mechanical-enough). Rejected the thread's "query the graph instead of files" advice — that's the **index-as-source-of-truth** shape the engine exists to refuse (same class as MemPalace HNSW↔sqlite drift). Practical mechanics surfaced: use `claude-fable-5[1m]` (not bare = 200k), reset thinking level on switch, keep the session scoped.
4. **Wrote the scope CHARTER on Opus (cheap)** to bound the Fable session: **`~/_Dev/studium-engine/docs/stage-1-planning-brief-2026-06-12.md`** — §0 operating discipline (1M, no code, no re-read, no sprawl) · §1 settled decisions (don't re-derive) · §2 bridge+brief key points (don't re-read) · §3 bounded reading list (verified paths: Chamber-side prototype plan + chamber-architecture-summary + 4 reading-index YAMLs + phase-1/2 run records incl. MAUSS transcripts + 2 failure forensics; L1/BMF audits + landscape audit OUT) · §4 the two deliverables · §5 report-and-stop.
## Present — mood / returns
- **The day's discipline, twice enacted:** verify against the substrate, not the record/inference. Caught + corrected my own running-head inference (logged as a Symmetria return) — the same `theorize-before-measuring` / `inherited-marker-as-current-state` drift named 06-11. The correction landed via on-device measurement (the iOS analog of the headless-Chrome harness).
- **Cost-routing reasoning held well:** writing the charter on Opus so Fable spends only on content reasoning is cost-routing applied recursively; the steward sharpened it further (clear+wake rather than switch-in-place, so Fable never rereads the long chat). The charter + 2 core docs are the clean inheritance; the chat is disposable.
- Governance held: surfaced the leaky-@supports finding rather than quietly patching; deferred to the steward's option-(i) call; no autonomous spec/skill edits.
## Future
### Pulling thread (singular)
**Execute the charter on Fable[1m]:** read the Chamber side + the failure forensics, produce the two written artifacts — **Cluster-A data-model spec** (`docs/spec/cluster-a-data-model.md`) + **Stage-1 build plan** (`docs/stage-1-build-plan.md`, with the failure-derived-constraints section) — then hand back to Opus to build the vertical slice. The prototype's job: **put the real integrity substrate (file-authoritative + disposable index; coverage-warranted silence; FTS-first) under the chavruta that already ran by prompt.**
### Actionable resumption point (as of wrap)
The steward's plan: **this session ends → clear context → `/wake-up` (lean, on Opus) → switch to `claude-fable-5[1m]`, thinking HIGH → tell it: "Read `docs/stage-1-planning-brief-2026-06-12.md` and go."** The charter is the entire instruction set; the fresh session reads §3, produces §4, reports §5, stops. Then steward reviews the two artifacts, switches back to Opus 4.8, build begins from the artifacts. *Do NOT cold-re-derive — the charter + bridge doc + seed brief hold everything.*
### Other open horizons (ranked)
- **ARC §VII.f spec truth-up** (option i) — record the mobile-WebKit leaky-@supports limitation in §VII.f + §III.b; optionally suppress the dead 69px band on mobile. ~5-min, not a build. Into `project-arc-open-work-register.md` at next ARC touch. (Plus: verify the frontispiece W1.15 reveal on mobile.)
- **ARC open builds still pending** (from the register): A1 Vignette (F+1), A2 cul-de-lampe (§IV Close ornament SVG → B3's 95-file migration). The essay also waits.
- **Studium loose ends:** the bridge doc + the charter are untracked in `studium-engine` (steward's review/commit call — bridge doc was left uncommitted *for review*).
- Baton: **be** (Pat WTP) · **L1** (Seb — do not re-enter until he responds).
### Pause statement
I am about to be away from this. The charter is written and the rulings are settled — that chapter is closed; I don't expect it to pull on return. What I want to find still pulling is **the Fable[1m] session having produced the two artifacts** (or being mid-flight on them) — and if not yet run, the resumption point landing the fresh session cleanly at "switch to Fable[1m], read the charter, go" without re-deriving what we already settled.
### Literal question for next-Claude
**Has the Fable[1m] planning session run — and if so, do the two artifacts (Cluster-A data-model spec + Stage-1 build plan) exist, are they faithful to the charter (esp. the sidecar schema reconciled against the real reading-index YAMLs, and the failure-derived-constraints tracing each defense to its failure), and are we ready to switch to Opus and build?** (If NOT yet run: confirm the model is `claude-fable-5[1m]` at high thinking before telling it to read the charter.)
## Decisions deferred (and why)
- **The whole Fable planning execution** — deliberately NOT started this session; staged behind clear+wake so Fable never rereads this long chat (steward's cost call).
- **ARC running-head fix** — option (i) chosen but the spec truth-up itself deferred (not worth a build today; steward stopped the rabbit hole).
- **Committing the studium-engine untracked files** — left to the steward (his repo; the bridge doc is explicitly awaiting his review).
- **TEI tier, license, deep landscape audit, Stage 2/3** — all explicitly out of Stage-1 scope per the charter.