From dec2b89de6df5b7d68637cfecff1fe74ab7f107d Mon Sep 17 00:00:00 2001 From: monsterrobotparty Date: Thu, 16 Jul 2026 10:33:24 +1000 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=8B=20perihelion:=20Part=20=CF=89=20?= =?UTF-8?q?=E2=80=94=20closer=20lane,=20orchestrator=20mode=20canonized,?= =?UTF-8?q?=20deferred=20items=20(fable)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- PERIHELION_BRIEF.md | 52 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/PERIHELION_BRIEF.md b/PERIHELION_BRIEF.md index 4b2b31c..4b42f5b 100644 --- a/PERIHELION_BRIEF.md +++ b/PERIHELION_BRIEF.md @@ -255,3 +255,55 @@ Full suite green, online and offline-minus-live-gates. *Merge order N → M → E → V; Fable reviews each. HERALD (deploy to the VPS) is deliberately NOT in this wave — it needs the user's DNS/tunnel decision first.* + +--- + +# Part ω — the closer (added post-merge, Fable 2026-07-16) + +**Status: all four lanes MERGED to `main` (`b42473a`), 21/21 gates in-browser, +pushed.** N→M→E→V merged in order; integration fixes landed in review +(`sbdb_lookup` → `CONFIG.proxy.sbdbLookup`; era-aware BC dates in `lib.js`; +V's verify wait-guard raised 13→18 for the merged gate count). + +### ω.0 Process note — orchestrator mode is now canon + +Wave 2 ran as ONE Opus session dispatching four worktree-locked subagents that +built headlessly (node + serve.py/curl), with the orchestrator keeping the +single browser for all verification and real-input tests. **This is the +endorsed topology for all future multi-lane waves** — it preserves the +one-tree-one-writer rule and centralizes the thing there's only one of (the +browser). Lane briefs stay written for individual agents; the orchestrator +passes each its lane section verbatim. + +### ω.1 The closer lane (one agent, branch `perihelion/o-closer` from ≥ b42473a) + +1. **README refresh.** README.md still describes wave 1: CDN importmap (it's + vendored now), "schematic ring" NEOs (real orbits now), 13 gates (21 now), + no Epoch toggle / Sky events / moon textures / decade-century rates. Rewrite + the affected sections; keep the voice; update the layer table + controls + + verify table + credits (add USGS/NASA moon maps). New `docs/hero.jpg` via + the `/snap` endpoint if the old one no longer represents the app (deep-time + or Jupiter+textured-Galileans would sell it). +2. **Timeline event density** (E's flagged UX): the ±2 yr event window maps to + ~1.6% of the 250-year strip (worse in deep time). Build the **event band**: + a second thin strip directly under `timeline-outer` that maps ONLY the + computed window to full width — diamonds live there (same DOM/click-jump + machinery, same CSS classes); the main strip gets a subtle bracket marking + the window's extent. Events layer owns it; no main.js changes beyond what + the layer contract already allows. Real-input gate: click a diamond in the + band → clock jumps; near-mode AND deep-mode. +3. **Housekeeping.** After user confirmation: `git worktree remove` the four + lane worktrees and delete the merged `perihelion/*` branches (their commits + live in main's merge history). Do NOT touch `../godstrument-*` worktrees. +4. **Full regression before report:** 21/21 (+ your band gate), zero console + errors in near and deep modes, README quickstart from a fresh clone. + +### ω.2 Deferred (needs the user, not an agent) + +- **HERALD** — deploy to the VPS (domain/tunnel decision → then mirror the + godstrument.pro rsync+systemd pattern; serve.py binds loopback, so prod + needs the same reverse-proxy shape godstrument uses). +- **Titan/Europa color** — M shipped grayscale where USGS has no color mosaic + (truth boundary held; ENDORSED in review). If the user wants iconic-color + moons, that's an explicit directorial choice to source non-data colorized + maps — flag it as such in CREDITS if taken.