Responsive board sizing#
The standard separates available page width from reading measure. A wide desktop maximum does not impose a minimum on a phone. At the default 16px root size, a board can grow to 1240px including its gutters; ordinary paragraphs remain approximately 65 characters wide. Tables, metric rows and status panels may use the full available width.
Adoption matrix#
Membership and order come from config/policy.yaml → board.boards (13 entries
on 2026-10-05). Paths below are relative to the named repository. Importing
Brain solely to validate state.json or build footer links is not theme
adoption. This task edits Brain only; other repository entries are audit results.
Board |
Renderer / sizing owner |
Adoption and remaining work |
Normal publication path |
|---|---|---|---|
Brain |
|
Automatic at next render |
|
Mind |
|
Automatic sizing; expanded |
Mind |
Cortex |
|
Automatic; no sizing override found |
Cortex refresh regenerates HTML, then Pages copies it |
Memory |
|
Automatic; local components retain identity |
|
Eyes |
|
Independent |
|
Ears |
|
Shared theme plus matching 1240px outer override. Keep initially; later replace duplicate dimensions with tokens |
|
Heart |
|
Automatic; section-body rules are component padding, not an outer width override |
|
Hands |
|
Automatic; no outer override found |
|
Pulse |
|
Automatic: current main already imports Brain; intake’s independent-width assessment is obsolete |
Refresh regenerates HTML using Brain, then Pages copies it |
Insight |
|
Independent 1200px main container and 16px gutters; explicit adoption and overflow repair follow-up |
Refresh generates output; Pages copies it and validates feed with Brain |
DNA |
|
New consumer; requires matching Brain registration and DNA merge, then publication verification |
|
Nerves |
|
Automatic; no outer override found |
|
Gut |
|
Automatic; no outer override found |
|
Scientist |
|
Automatic for the organ board; embedded/cockpit presentation needs its own later verification |
|
Shared-theme consumers use the Brain checkout selected by their existing render workflow. Most use the default branch; Cortex’s refresh can select a matching feature branch. Merging Brain changes future renders, not already published HTML. Mind, Cortex and Pulse require regeneration before publication; merely rerunning a workflow that copies committed HTML will not update CSS. No publication workflow or deployment is dispatched by this task.
Ears retains a small intentional transitional difference: its local gutter breakpoint is 760px, while the shared breakpoint is 736px. Its phone tables keep 740px conversation and 650px coverage minima within local scroll containers. Off-screen columns remain a mobile interaction trade-off. The initial Brain change preserves those rules; aligning Ears’ breakpoint and removing duplicated sizing belong in its adoption follow-up.
Evidence and limits#
Machine-readable results record source URLs, SHA-256 hashes and measurements. The audit downloaded all 13 public Pages HTML documents on 2026-10-05, then made local before/after copies. In shared consumers, only the theme base was replaced in its original stylesheet position; consumer rules and markup were retained. Eyes and Insight were unchanged controls. These are controlled layout previews, not deployment or fresh-data evidence.
Chromium checked 260 combinations: 13 boards × five widths × two colour schemes × before/after. All native disclosures were opened, including populated tables. Network requests were blocked to hold the snapshots stable. Accordingly, Eyes’ missing image placeholders do not establish loaded-gallery behavior; that follow-up must repeat checks with real images and embedded views.
Shared board width |
Before |
After |
After gutter |
|---|---|---|---|
390px viewport |
390px |
390px |
16px |
768px |
704px |
768px |
24px |
820px |
704px |
820px |
24px |
1024px |
960px |
1024px |
24px |
1440px |
960px |
1240px |
24px |
Ears already matched these sampled widths and remains unchanged. No new whole-page overflow cases appeared. Ten boards fit at every sampled width in both schemes. Three existing exceptions prevent claiming family-wide compliance:
Mind: opening bundle tables produces 131px phone overflow before and after.
td.facet{white-space:nowrap}contributes to the table’s minimum width. Follow-up: reflow bundle rows or add labelled local scrolling while keeping each prompt’s actions reachable.Eyes: long code paths and gallery content overflow in the offline expanded snapshot. Follow-up: adopt the shared sizing tokens, wrap long paths, constrain grid/image minimum sizes, then validate with images loaded.
Insight: the independent layout overflows by 548px at 390px, 170px at 768px and 118px at 820px, identically before/after. Follow-up: fix container minimum sizing/local scrolling as part of adopting the shared layout.
Fourteen additional synthetic cases (light/dark at the five requested widths plus both sides of 736px) passed. They exercise long titles and URLs, 65ch prose, expanded explanations, a dense 740px table, copy buttons and keyboard scrolling. Six published-page interaction cases (Brain/Ears/Pulse, light/dark, 390px) verified Enter toggles disclosures, Enter invokes the existing copy handler, and the focused primary copy button is within the viewport. Clipboard writes were intercepted in the test browser and checked for a nonempty payload; this does not send a command or invoke an orchestration action. These checks are not a complete screen-reader or physical touch-device accessibility audit.
Visual comparison#
Desktop before:

Desktop after (data uses the wider page; paragraphs retain a reading measure):

Phone after (390px):

Repeating the browser checks#
The optional layout checker and
interaction checker require Playwright and
Chromium in a scratch directory, not a production dependency. Run there with
node check.cjs and node interactions.cjs. Inputs are published.json
(the snapshots array in the results file), paired before/<board>.html and
after/<board>.html snapshots, plus theme.css / theme.js emitted from the
candidate _theme.css('brain') / _theme.JS. The layout checker measures both
versions without changing content, writes layout-results.json and representative
screenshots; it fails on new overflow cases and reports existing exceptions. The interaction
checker asserts geometry and keyboard behavior and writes
interaction-results.json. Preserve source hashes when refreshing evidence.
Repository validation#
The targeted theme/Brain/Mind renderer suite passed 213 tests. The full Brain
suite passed 1178 tests with the task activation’s explicit checkout
overrides removed from the test process, matching the fixture-driven CI
configuration. An initial run with PYAUTO_MIND still set failed the grouped
checkout discovery fixture (606 passed before stop); it preferred the explicit
worktree override to the test’s temporary Mind, as designed. No product source
was changed to address that environment mismatch.
source ../activate.sh
env -u PYAUTO_MIND -u PYAUTO_HEART -u PYAUTO_HANDS \
-u PYAUTO_BRAIN -u PYAUTO_ROOT \
python -m pytest tests/ -q -x -n auto
This presentation-only organ change has no modelling-library API or workspace script impact. Its downstream smoke evidence is the 13-board layout audit and Brain/Ears/Pulse interaction checks above, rather than scientific sampler runs.
Rollout sequence#
Review and merge the Brain standard through human
/prm; allow existing render/publication schedules to consume it. Verify the resulting published pages before declaring adoption complete.Address Mind’s bundle table in a separate Brain renderer task. Adopt the standard in Eyes and Insight through separate repository tasks, retaining their identities and existing data/action contracts. Their existing overflow makes these required compliance follow-ups, not optional polish.
Deduplicate Ears sizing and align its breakpoint in a small adoption task; preserve its table-local scrolling decision. Recheck embedded/cockpit views using actual iframe widths and loaded assets.
Each follow-up needs its own approved task, tests and PR. No independent-renderer rollout, deploy or merge is authorized by this implementation alone.