Commit e3bc553
committed
Gestalt = production: marginalia-gestalt renders FIGURES, not duplicates
The gestalt review page rendered its own paint code (70 e_* + 6 j_*
functions in scripts/build_marginalia.py) that drifted from the
production figures in src/marginalia.py FIGURES. Reviewers saw a
different picture than readers; this is exactly how the user noticed
overlapping items on the gestalt that didn't ship on the example
pages.
Rebuild marginalia-gestalt.html as a thin view over production:
scripts/build_marginalia.py shrinks from 1018 → 156 lines. Every
gestalt card now pulls its paint function, intrinsic width, and
intrinsic height directly from FIGURES[ATTACHMENTS[slug][0][1]];
its score and commentary from SCORES[slug]. No bespoke paint code
lives in the gestalt build script.
Cards iterate every example in the manifest order (109 cards),
skipping any slug without an attachment. The historical
"operators-and-literals" gestalt-only slug (since split into
"operators" + "literals" on main) drops out naturally.
The journey-overview thumbnails section is removed — those j_*
paint functions had no production equivalent. Per-section journey
figures are reviewed on journey-figures-gestalt.html, which
already uses production paint code.
Tests simplify: ALL_FIGURES = FIGURES (the gestalt has no separate
registry to audit). The 8 iterating geometry/grammar/size/emphasis
contracts run once over the 109 production figures instead of
duplicating work across two registries. 53 tests still pass.
Drift between "what readers see on /examples/<slug>" and "what
reviewers see on the gestalt" is now structurally impossible: there
is only one paint registry.1 parent 6e1a21c commit e3bc553
3 files changed
Lines changed: 433 additions & 1135 deletions
File tree
- public/prototyping
- scripts
- tests
0 commit comments