session 2026-06-12: Studium Engine Stage-1 planning charter + Fable[1m] routing decision; ARC running-head mobile-Safari gap parked (opt i); skill-harvest proposals

This commit is contained in:
David F Glidden
2026-06-12 12:58:08 +02:00
parent b947512d12
commit a510fb6a44
4 changed files with 107 additions and 0 deletions
+3
View File
@@ -38,6 +38,9 @@ permalink: claude-memory/memory
- [Be (laundromat)](project-be-laundromat.md) — canonical workstream tracker established 2026-06-08 (Seb-relay of locked decisions). Be = Skemantix startup (Seb+David) funding CapableMind's funding-ladder; **bridge, not venture**. Decisions LOCKED: entity/exit (CapableMind decoupled, grant-funded), pricing (Living $12.99/mo · Archive $69.99/yr · Memorial $49.99/yr · Renovate ~$199 · $8.99 floor), CF Self-Serve Agency + versioned-template-package infra. **a11y gate MERGED (Pat 100/100/100).** Pre-revenue: the WTP gate = renovate Pat → charge her. **Discipline: stop adding spec until the gate clears → nothing for executor on be until then.** Repo @ `f43a0fd`.
## Active Session
- [Session 2026-06-12 — Studium Engine Stage-1 planning charter; ready for Fable[1m]](session-2026-06-12-studium-engine-planning-charter-fable-handoff.md) — Read both core engine docs (bridge doc + seed brief — reconciled, they agree); steward ruled **governance** (steward-direct now, Jurist later for scholarly Qs only), **§10.3** (Markdown body + `.meta.json` sidecar canonical; TEI optional later tier, not Stage 1), **method** (middle path — thin Cluster-A spec now, then just-in-time slice). Decided **cost-aware model routing** (Fable[1m] for the bounded planning phase, Opus for the build; grounded in the verified Fable-5 2× burn) + wrote a scope **CHARTER** `~/_Dev/studium-engine/docs/stage-1-planning-brief-2026-06-12.md` on Opus to bound the Fable session (read §3 list → produce **Cluster-A spec** + **Stage-1 build plan** → stop). Rejected "query the graph not files" (= the index-as-source-of-truth shape the engine refuses). Also diagnosed the **ARC §VII.f running-head mobile-Safari gap** (parked, option i): `@supports(animation-timeline:view())` is a **leaky gate** — `true` on iOS Safari 26 but WebKit won't drive the scroll reveal on a `fixed`+`timeline-scope` consumer (display:block, opacity 0); desktop Safari works; the spec's "no-support shows nothing" fallback is **false on mobile WebKit** → ~5-min spec truth-up owed at next ARC touch (`project-arc-open-work-register.md`). **PULLING THREAD: execute the charter on Fable[1m] → 2 artifacts → switch back to Opus to build. RESUMPTION: clear → wake → `claude-fable-5[1m]` high-thinking → "read the charter and go" (do NOT cold-re-derive).**
## Archived (2026-06-11 — §VII.f running head SHIPPED + ARC open-work register)
- [Session 2026-06-11 — §VII.f running head SHIPPED + the ARC open-work register (records drift BOTH ways)](session-2026-06-11-vii-f-running-head-shipped-arc-open-work-register.md) — Woke into the essay; steward pivoted to **§VII.f — the one ready-to-build apparatus never shipped.** BUILT it (zero-JS CSS `view-timeline` reveal; per-type `content-types.yml` binding; progressive-enhancement fallback) through a long render-rulings refinement: **body-column-axis alignment** (the −2rem grid asymmetry; grid tokens moved `_sidenotes`→`_variables` byte-identical), **soft fading rule** (`$rh-fade`), **full-width occluding ground with the dissolve anchored below the rule** (`$rh-dissolve`) — every step headless-Chrome-measured, not theorized. **W1.15 false premise surfaced not papered** (frontispiece doesn't scroll) → reframed scroll→**presence-reveal** (zero-JS cursor-approach; touch rests gently-present). Shipped `b220620`, deployed, **live-verified**; specs reconciled; PENDING-39 / REVIEWED-43 (steward-placed). **THEN the deeper arc:** steward corrected my "§VII.f = the *only* unbuilt element" overclaim → **the colophon is SHIPPED** (I misread a stale index line — 3rd stale-index misread of the turn) → **records drift BOTH ways** → built **[`project-arc-open-work-register.md`](project-arc-open-work-register.md)** (single code-verified source of truth); annotated the tracker (true only through 06-07) + corrected MEMORY's stale "no build work pending" tail. **Steward caught the cul-de-lampe** (§IV Close ornament SVG, undesigned → A2). "One more audit": register [VERIFY] flags resolved (E3 404 / E5 master-typographer / E6 web-typography → DONE-retire; **B3 ornament migration → OPEN, ~95 content files, gated on A2**). **Pulling thread: the register is the map; the two undesigned-SVG assets — A1 Vignette (F+1) + A2 cul-de-lampe — are the real remaining build; which one, or the deferred essay, is next.** ARC `main @ b220620` clean, live. **LATE-SESSION PIVOT → THE STUDIUM ENGINE** (steward's urgent tool; Fable-5 window to 2026-06-22): deliberately completed the picture before touching the build — the engine = general BYO-corpus deep-research substrate, built by first **powering the Chamber** (his instance + forcing function; Library→Chamber→Publication); the MemPalace 2-class failure taxonomy (integrity/corruption FATAL→killed by file-authoritative shape · density-dilution=Stage-2); the design law **"silence must carry a coverage warrant"** (reliability is *constitutive* of the Chamber's honesty — a false silence is a fabricated finding); FTS-first (reading-indices=70% of intelligence → may retire the HNSW failure class); Partner+Guardian-now / Professor-Emeritus-later prototype boundary. CAPTURED: **`~/_Dev/studium-engine/docs/the-chamber-and-the-engine-2026-06-11.md`** (bridge doc; uncommitted, for review). **PULLING THREAD IS NOW the Studium Engine Stage-1 build plan** — next session (on v5): read the bridge doc → revisit `seed-brief.md` + `chamber-chavruta-prototype-plan.md` against it → resolve §10.3 (canonical source format) → plan the build (Harrison·Alexander chavruta on *After the Reply* Essay I). ARC settled/reactive; its open work lives in `project-arc-open-work-register.md`.
## Archived (2026-06-10 — Stage G CLOSED + reconciled + SEALED + GPG-signed)
@@ -0,0 +1,63 @@
---
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.
@@ -0,0 +1,32 @@
---
name: session-ledger-2026-06-12
description: "Practice-of-return ledger maintained by /symmetria — returns, open horizons, recalibrations, authorization moves, sub-agent dialogues, bypasses."
metadata:
node_type: memory
type: feedback
originSessionId: 311a26cb-4cf5-4a24-8566-85d3eadf0ee0
---
# Session Ledger — 2026-06-12
## Returns
- 2026-06-12 — CAUGHT own contamination (theorize-before-measuring / inferred-not-verified): told steward the phone shows no running head because Safari lacks scroll-driven-animation support. FALSE — iPhone 17 Pro / Safari 26 supports animation-timeline:view() + timeline-scope (web-verified). Corrected. Real cause unknown; leading code-grounded hypothesis = position:fixed top:0 with no env(safe-area-inset-top) → obscured by Dynamic Island. Refused to declare it confirmed; can't reproduce iOS Safari headlessly → asked for on-device check (the prior phone-compass lesson: measure the real device, don't theorize).
## Open horizons
- 2026-06-12T00:00 — Studium Engine Stage-1 build plan (Fable-5 window → 06-22). Thread CONFIRMED + sharpened by 06-11 diary: the Harrison·Alexander chavruta ALREADY RAN; prototype's job = put the real integrity substrate under what ran by prompt, not run a new chavruta.
- §10.3 canonical source format unresolved — steward's call (executor read: B = MD + sidecar).
- [ARC, parked by steward — option (i), no rabbit hole] §VII.f running head: on-device-verified mobile-Safari gap. `@supports (animation-timeline: view())` returns true on iOS Safari 26 but it does NOT drive the scroll reveal on a `position:fixed`+`timeline-scope` consumer (display:block, opacity stuck 0, 69px band at top:0). Desktop Safari + Chromium work. So the §VII.f spec's "no-support → shows nothing" fallback claim is FALSE on mobile WebKit (a leaky @supports gate). TODO someday (not a build): truth-up §VII.f + §III.b to record "support-detected but non-functional on mobile WebKit"; optionally suppress the dead 69px band on mobile. Frontispiece W1.15 reveal NOT re-checked on mobile (steward stopped) — same scroll-driven family, likely fine (touch-degrading by design) but unverified. Belongs in project-arc-open-work-register.md at next ARC touch.
- Confirm engine governance state (KG: "pre-spec; seed brief awaiting jurist") before planning.
## Authorization moves
- 2026-06-12 — Steward ruled (engine = his tool, steward-direct governance): (1) governance posture = steward-direct now, Jurist later for scholarly Qs only; (2) §10.3 canonical source format = Markdown body + .meta.json sidecar (TEI optional later tier, not Stage 1); (3) method = middle-path (thin Cluster-A spec now, vertical slice spec-noted just-in-time). To be recorded as the engine's decision record in Cluster-A spec.
- 2026-06-12 — Model-routing decision (cost-aware, grounded in the Fable-5 burn thread): Fable[1m] for the BOUNDED planning phase (highest-leverage reasoning) → emit written artifacts → switch back to Opus 4.8 for the build. Wrote scope charter on Opus (cheap) to bound the Fable session: `~/_Dev/studium-engine/docs/stage-1-planning-brief-2026-06-12.md`. Rejected the Reddit "query the graph instead of files" advice — it's the index-as-source-of-truth shape the engine exists to refuse.
## Confidence to recalibrate
- Carried drift to hold today: inherited-marker-read-as-current-state-without-code-verify (3+ instances 06-11). Antidote = verify against substrate, not record.
## Authorization moves
## Sub-agent dialogues
## Bypasses
+9
View File
@@ -125,3 +125,12 @@ The single place proposed skills live so they don't evaporate between sessions.
| **`/measure-render` (headless-Chrome box-model/scroll harness)** | create skill OR ladder note | **RE-REINFORCED (4th day of evidence).** Proposed 2026-06-09 (compass fix) + reinforced 06-09 pm; today drove the ENTIRE §VII.f build — reveal opacity across scroll, body-column-axis alignment (598/798 constant), the dissolve-below-rule geometry, the frontispiece no-scroll proof, the compass graded reveal. The build would not have been groundable without it. Earns its own skill. | `/measure-render` skill OR verification-ladder | **PROPOSED (strongly reinforced, 4th instance)** |
*Watch-list (not yet a skill proposal): the **open-work register pattern** — when tracking surfaces drift, consolidate them into ONE code-verified source of truth (built `project-arc-open-work-register.md` today). Overlaps `/spec-code-audit` for the spec↔code half; the new part is the content/governance/Phase-2 reconciliation. May graduate to a `/reconcile-open-work` discipline if it recurs on another workstream (L1/be).*
## New proposals (2026-06-12 — Studium planning charter / model-routing day, awaiting steward)
| Element | Kind | One-line | Where it lands | Status |
|---------|------|----------|----------------|--------|
| **`/model-handoff` (premium-model scope charter)** | create skill OR reference card | When switching to an expensive/premium model (Fable 5 = 2× Opus rate; burn scales with context×session-length) for a **bounded high-leverage phase**, first write the **scope charter on the cheap model** — the bounding/orientation reasoning is cheap, the content reasoning is where the premium pays. Charter shape (proven today, `studium-engine/docs/stage-1-planning-brief-2026-06-12.md`): §0 operating discipline (1M window — `claude-fable-5[1m]` not bare-200k; reset thinking level on switch; no sprawl) · §1 settled decisions (don't re-derive) · §2 already-read summaries (don't re-read) · §3 bounded reading list (verified paths; out-of-scope named) · §4 exact deliverables · §5 report-and-stop. Plus: **clear+wake rather than switch-in-place** so the premium model never rereads the long chat; **artifacts (not chat) are the handoff** (the Reddit "knowledge in files not chat" insight, but **reject** its "query the graph instead of files" — that's the index-as-source-of-truth shape). Recurs every Fable session in the 06-22 window and beyond. | a `/model-handoff` skill OR a reference card beside the verification ladder | **PROPOSED** |
| **verification-ladder: feature-detect gates can lie** | verification-ladder entry | A CSS `@supports(feature)` (or any capability probe) can return **true on a platform where the feature is non-functional** — today the ARC §VII.f running head: `@supports(animation-timeline:view())` is `true` on iOS Safari 26, but mobile WebKit won't *drive* the scroll-reveal on a `position:fixed`+`timeline-scope` consumer (`display:block, opacity:0`); desktop Safari works. So a progressive-enhancement "no-support shows nothing" contract can be **silently false** on a major platform. Antidote: **verify the feature on the real engine/device, not the support table** — `CSS.supports(...)` + computed-`opacity`/`getBoundingClientRect` on-device (the iOS analog of the headless-Chrome box-model harness). Kin to `/measure-render`; one level up (feature-functionality, not box-model). | `reference-verification-ladder.md` | **PROPOSED** |
*(Both genuine, both recurring-shaped — not manufactured. The first will pay off the very next time the steward opens a Fable window; the second generalizes today's running-head correction into a standing instrument.)*