Restyles the terminal frontend to the clinical-gore identity and amends the constitution to make the terminal a first-class frontend. No sim changes.
The UI (src/bin/terminal/ui.rs, rewritten) #
- One meaning per color, everywhere. Grey ramp (bone / gunmetal / chrome) on near-black; sterile amber is the single signal color and means machine presence (the
@process, core, racks, switches, PAUSED, ASSET); blood crimson means detection and danger only (cameras, sealed lab, tier-3 doors, DEGRADED, RUN ENDED). All decorative color removed. - Map: solid-block walls, middle-dot floors, interactables brighter than furniture, security tiers ramping chrome -> bone -> crimson; people render as bold bone initials inside camera coverage (spec/schedules.md behavior preserved through the rebase).
- Sidebar: box-drawing section rules; stacked allocation bar whose fill characters key its legend rows; four-cell suspicion meters that always print their band names (information never carried by color alone); day and tick always on screen; controls pinned to the bottom, now documenting
^s/^lsave/load andtpeople. - Log: every line stamped with the tick it happened on.
- People panel: real frame with dividers and column headers, reverse-video + marker selection, per-person located-presence line (seen / sched / off-site / unknown).
UI::add_lognow takes the tick; the sidebar takes paused+speed; the game-over card reports day and tick.
The constitution (same commit, per the one rule) #
New section "The terminal is a first-class frontend": agents are the game's most regular players and they play through the terminal, so it is held to pillar 4's beautiful-and-readable standard — the clinical identity applies in character graphics, visibility best practices bind, and legibility has parity (a mechanic observable only in Bevy is a violation). Pillar 5, the codebase table, and the decisions log amended to match; session devlog + DEVLOG.md entry included.
Defense #
Pillar 4 (beautiful, readable presentation) and the justification-and-legibility clause justify the restyle; the amendment promotes the terminal to first-class because the working method itself (ticks, pty runs, acceptance checks) makes agents the most frequent players. Supersedes the "dev harness" framing of the 2026-07-05 renderer decision.
The design spec #
spec/terminal-ui.md (added in the second commit) is the design of record: exact palette values and their single meaning, glyph vocabulary, layout geometry, feel (sterile/restrained/data-forward), interaction rules (clock always on screen, never color alone, every command discoverable), and acceptance criteria — so future terminal work is dispatched from a spec, not improvised per session.
Checks #
tools/check.sh fully green (fmt, tests, clippy both feature sets, Bevy build, spec headers). Title, playing, and people-panel screens verified by replaying pty smoke runs through a terminal emulator. Rebased on origin/main including the schedules/located-presence work that touched the same file.