MEMORY
memory/project-C--Dev--RobCo--RobCo-Archive/museum-generator-2026-07-21-implementation.md
sha256 9ab89a359f3ae46d · 4010 bytes ·
original held in the private archive
---
name: museum-generator-2026-07-21-implementation
description: "Session that implemented the Records Office Dark redesign in museum/generate.mjs: identity, lobby, growth, Intent vs Reality, Bug Museum — 5 commits, what was corrected, what's left undone"
metadata:
node_type: memory
type: project
originSessionId: e58cbe31-e575-4bcd-9171-ab75abb5afbd
modified: 2026-07-21T18:05:32.312Z
---
2026-07-21, five local-only commits (efe9827…4d0cac3), no push (repo rule: this
archive never pushes anywhere). Implemented the owner-approved Records Office
Dark redesign directly in `museum/generate.mjs` — previously only mockups
existed under `museum/design/`; nothing in the actual generator had been
touched. See [[museum-identity-pass]] and [[bug-museum-data-layer]] for the
design/data-layer history this built on.
**What shipped, in commit order:**
1. Self-contained dark CSS + `shell()` rewrite — dropped the app-CSS reuse and
the `.machine/.bezel/.navkey/.glass-frame/.crt-overlay` chassis entirely.
Fixed `classify()` so `bugs/` stops false-alarming as unclassified.
2. Lobby rewritten as the vault ledger (real stat cards, growth sparkline,
floor-per-room with a real SHIPPED/IN-FLIGHT check against release tags,
condition report).
3. Growth page rewritten as the strip-chart tape — added a real new series
(`collectDailyCommits()`, zero-filled) that didn't exist before.
4. Intent vs Reality added new — flip+plaque only (not all 3 mockup variants),
curated pairs in `museum/accounts/intent-pairs.json`.
5. Bug Museum added new — see [[bug-museum-data-layer]] for the wiring detail.
**Corrections/deviations from the brief, stated up front per its own request:**
- `git merge-base --is-ancestor` against the PIN, not `git tag --contains`
(the brief's own suggested check) — tag-contains would check any tag
anywhere, not specifically the release this museum is disciplined to
describe; consistency with the existing pin invariant overrides literal
compliance.
- NAV/tabs extended to 10 stops (added BUGS, INTENT) — none of the identity-
pass mockups wired a shared tab bar including these two views since each
mockup demonstrates one view in isolation; a real site can't strand a
reader on an unreachable page.
- Intent vs Reality ships ONLY the recommended flip+plaque mechanism, not the
wipe/side-by-side variants the mockup used to justify the choice — a real
exhibit shows its answer, not the bake-off.
**Left deliberately undone, flagged rather than silently shipped:**
- Intent vs Reality's "reality" captures are still the pre-existing
WORKING-TREE screenshots under `museum/design/2026-07-visual-pass/assets/`,
not pinned to the release tag. Building the real pipeline (boot the app,
navigate to a specific panel, screenshot via the existing Playwright rig)
is materially larger than this pass — the page renders an explicit
"REALITY CAPTURES — NOT RELEASE-PINNED" notice instead of quietly
presenting them as pinned. This gap was already flagged by the prior
visual-pass session and is still open.
- Bug Museum's release coverage note and IN-FLIGHT→SEALED promotion have
only ever been exercised against the CURRENT pin (v2.8.0, 2.8.5 untagged) —
correct behavior seen is "promotion doesn't fire yet", which is the honest
state, but the promotion-fires path itself has not been observed against a
real tag (would need `v2.8.5` to exist to see it).
**Verification performed:** Playwright renders at 360/412px for all 4 views
plus a spot-check of unmodified pages (room, standing, graveyard, search,
docs); contrast recomputed per new color pair throughout (all ≥4.5:1 AA);
regenerated twice back-to-back (byte-identical); bare-clone → fresh-clone
regeneration against the real app repo (byte-identical to the working tree's
committed site) — the exact double-fresh-clone check this project's own
invariants call for, done via `git clone --bare` + `git clone` +
`MUSEUM_APP_REPO` test seam.
STAMP · generated for RELEASE v2.8.5 commit 06e5180 (06e51801b38a) · archive input-tree hash c07fbfbdd2e1ddeb · 754 files · no wall-clock timestamp (regenerates identically when nothing changed).