docs: System Plate 01 — an isometric map of the module graph - #49
Open
Blazenetic wants to merge 1 commit into
Open
docs: System Plate 01 — an isometric map of the module graph#49Blazenetic wants to merge 1 commit into
Blazenetic wants to merge 1 commit into
Conversation
`docs/architecture-map.html` is a single self-contained page that draws this repository as a site plan. It is documentation, not app code: nothing under `js/`, `css/` or `index.html` is touched, and the app still ships with no build step and no runtime dependency. What it shows, all of it read out of the source rather than invented: - 41 solids across four districts (Shell, Plant, Field, Proving ground). Height is the file's literal line count on a square-root scale, so `css/styles.css` at 1,870 does not flatten `js/still-field/math.js` at 23. - Seven silhouettes that each mean something: stack = orchestrator, silo = shared state object with exactly one writer, saw = a draw pass that runs every frame, mast = leaf, hall = content surface, vault = verification, obelisk = the contract. - 34 wires — 20 control (a call or an import) and 14 payload (a value crossing a boundary, labelled with what actually moves: the 12 s AudioBuffer, the Uint8Array(128) of FFT bins, the band-energy object, the keep-out rectangles, the stats snapshot). Hovering or focusing a solid isolates its wiring. - Four traces that animate a payload along the real path: cold boot, pressing play, one frame at 30 fps, and dragging the depth slider. Each step carries its own file and line citation. - An explainer panel per module with role, exports, wires, and the invariant that shaped it — the analyser sitting before the gain node, the periodic buffer, the released listing raster, the wall-clock sleep-timer deadline. - The frame pipeline, the one architectural rule, six load-bearing invariants, and a full schedule of solids as a text table for anything the plate cannot carry. Drawn from AGENTS.md, docs/still-field-architecture.md, docs/info-layer.md and the source. Bone and dark palettes are the app's own tokens from css/styles.css. Verified in Chromium at 1440 / 1080 / 820 / 600 / 390 px with no horizontal overflow and no console errors; solids are keyboard-focusable and packet motion is disabled under prefers-reduced-motion. Linked from README.md and docs/readme.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JpcbGEk4huCrY5zAZwA7RK
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
docs/architecture-map.html— one self-contained static page that draws this repository as an isometric site plan. Open it overhttp://(npm start→/docs/architecture-map.html) or from Pages once merged.Live preview: https://claude.ai/code/artifact/01e27550-33e5-4fbd-a7e3-0b0d59bda865
It is documentation. Nothing under
js/,css/orindex.htmlis touched, there is no build step, no bundler and no runtime dependency — the page is HTML, CSS and one inline script.What it draws
41 solids, four districts. Shell (markup, tokens, manifest), Plant (transport, generators, persistence, DOM), Field (the 23-module renderer), Proving ground (tests, CI, contract, record). Height is the file's literal
wc -lon a square-root scale, socss/styles.cssat 1,870 doesn't flattenjs/still-field/math.jsat 23.Form carries information. Seven silhouettes, each meaning something true about the module:
AGENTS.md)34 wires, all real. 20 control (a call or an import) and 14 payload (a value crossing a boundary, labelled with what actually moves — the 12 s
AudioBuffer, theUint8Array(128)of FFT bins,{ low, mid, high, overall }, the keep-out rectangles, the stats snapshot, the 16-step quantised colour ramp). Hovering or keyboard-focusing a solid dims everything it doesn't touch and lights only its own wiring.Four traces. Each animates a payload along its actual path, one step at a time, with a file-and-line citation per step:
initStillField()→subscribe()firing immediately as the initial render → keep-outs measured synchronously.audio.play()and stops →ensureAudio()+ a 12 s buffer built synchronously inside the 150 ms dip → analyser before the gain node → the state module publishes and only then does the button change.stepNodes()→buildGrid()→ links → nodes → info layer → the rationed--still-energywrite.prefs.setDepth()clamps and persists (throttled) →measureWorld()→ banded grid reallocation →applyNodeCount()→emit().An explainer panel per module: role, key facts, its wires with payloads, and where one exists, the invariant that shaped it — the analyser's position in the chain, the periodic buffer, the released 1.7 MiB listing raster, the wall-clock sleep-timer deadline, the hysteretic callout side.
Plus the frame pipeline in fixed order, the one architectural rule with the wrong/right snippet, six load-bearing invariants, and a full schedule of solids as a text table so nothing on the plate is only available as a picture.
Sources
Every number and every claim traces to
AGENTS.md,docs/still-field-architecture.md,docs/info-layer.mdor the source, and the page citesfile:linethroughout. Line counts are literal at this commit.Design
Both palettes are the app's own tokens straight out of
css/styles.css— bone#E0D6C8, titanium#B5AA9A, violet#7C3AED, cyan spark#0E9BB5, the X/Y/Z axis triad — and the dark side uses the:rootdark block. Labels sit on plates rather than glows, which is the same trick the info layer uses for the same reason.Verification
prefers-color-schemevalues plus explicitdata-themestamps.tabindex="0"withrole="button"and a visible focus ring; Enter/Space pins one.prefers-reduced-motion.npm run lintclean. The browser suite is untouched by this change — under the gate's allow-list (docs/*,*.md) this is a documentation-only PR, soCIwill report without running the suite.Also
Linked from
README.md(nav line + the Architecture section) and added as a row indocs/readme.md.Generated by Claude Code