STANDING
planning/_standing/HOUSE_STANDARD.md
sha256 b57ceb51e69f743f · 6327 bytes ·
original held in the private archive
# RobCo U.O.S. — HOUSE STANDARD (derived canon)
> Derived from the strongest existing in-world surfaces in the v2.6.0 codebase (not imposed).
> Where the code contradicts itself, the **strongest / most-used** form wins and is locked here.
> This is the yardstick `DIEGETIC_AUDIT.md` measures everything against. Untracked planning doc.
## 0. Canon anchors (the surfaces that already nail it)
- **Boot sequence** (`ui-audio.js:655` `runBootSequence`): `> ROBCO INDUSTRIES (TM) UNIFIED OPERATING SYSTEM` / `COPYRIGHT 2075-2077` / `64K RAM SYSTEM | 38911 BYTES FREE` / `MEMORY CHECK.................. [OK]` / `SECURE LINK ESTABLISHED. BOOTING...`. **This is the canonical voice.**
- **Panel headers**: `> BIO-METRICS`, `> BIO-SCAN & LIMB STATUS`, `> BACKPACK INVENTORY`, `> SKILL MATRIX`, `> QUEST LOG`, `> FACTION STANDING`, `> KARMA CENTER`, `> SESSION STATISTICS`, `> WORLD MAP`, `> CAMPAIGN CONFIGURATION`.
- **Error register**: `⚠ [SYS-ALERT: DATA CORRUPTION]`, `[SYS-ALERT: INSUFFICIENT TELEMETRY]`, `⚠ FATAL EXCEPTION AT 0x####`, `⚠ [SAFETY NET] … IRREVERSIBLE …`, `⚠ [FACTION ALERT] … HOSTILE ENGAGEMENT EXPECTED`.
- **Action labels**: `> TRANSMIT PROTOCOL`, `> REBOOT TERMINAL`, `WIPE TERMINAL`, `[COMMAND]`-bracket verbs (`[CRAFT]`, `[VISUAL UPLOAD]`, `[TIMELINE]`, `[VATS]`).
- **`<title>`**: `RobCo U.O.S. 2.6.0 - Optics Enabled`. **PWA name** `RobCo U.O.S.` / **short_name** `RobCo` (version-less by protocol).
- **Persona** (`getSystemDirective`): *"Rigid, efficient, professional RobCo interface."* Gem = Mind (Director); User = Courier (Body).
## 1. Voice & register (LOCKED)
1. **`> ` prompt prefix** on system lines, status messages, and primary action buttons (boot, sys chat, `> TRANSMIT PROTOCOL`, `> REBOOT TERMINAL`).
2. **ALL-CAPS** for chrome: headers, labels, status, buttons, system messages, empty/loading/error states. (Sentence-case is the modern-web tell to eliminate.)
3. **Bracketed status/tags**: `[OK]`, `[SYS-ALERT: …]`, `[FACTION ALERT]`, `[SAFETY NET]`, `[EXPIRING]`, `[VISITED]`, `[CURRENT]`.
4. **Period-leader progress**: `RETRIEVING ARCHIVES.......... [OK]`.
5. **Machine register** — terse, clipped, imperative; **no pleasantries** ("please", "sorry", "Oops", "Welcome"). Faults are stated, not apologized for.
6. **`⚠` glyph** prefixes warnings/alerts; FATAL faults read as hardware exceptions.
7. **Retro-hardware diction**: TERMLINK, U.O.S., OPTICS, vacuum-tube, phosphor, SECURE LINK, RAD, CLEARANCE, OVERSEER.
8. **Box-drawing dividers** `─────` (already used in boot).
## 2. Palette & type (LOCKED — from `:root`)
| Token | Value | Use |
|---|---|---|
| `--robco-green` | `#14fdce` | primary phosphor (OPTICS-swappable theme) |
| `--robco-alert` | `#f39c12` | amber — warnings, expiring, mid-tier |
| `--robco-danger` | `#e74c3c` | red — faults, destructive, negative rep |
| `--robco-blue` | `#3498db` | COMM-LINK / cloud accents |
| bg | `#010a07` / `--robco-dark #021c14` | near-black CRT field |
| `--robco-glow` | `0 0 6px …0.6` | phosphor bloom |
- **Monospace** ('Courier New'); CRT scanline overlay; phosphor glow; `>` prompts; ASCII/box-drawing — **nothing a 2077 CRT couldn't render** (no gradients-as-decoration, no modern card shadows, no emoji except the established `⚠`/`⚙`/optics glyphs).
- **Color is "OPTICS", never "dark mode."** Theme switch = "OPTICS COLOR", not "theme/appearance."
## 3. Type/usability rules that GATE any fix (non-negotiable)
- Focusable inputs render **≥16px** (auto-zoom guard); **≥28px** tap targets.
- Phosphor palette must keep **AA contrast** (any reframed text on the dark field).
- **Keyboard nav + focus order** preserved; **ARIA labels / alt text stay literal & clear** (NOT diegetic — a screen reader says "Strength input", never "S.P.E.C.I.A.L. core").
- **CRT motion (flicker/scanline/type-out/pulse) MUST honor `prefers-reduced-motion`.** *(Currently it does not — see audit CR-1.)*
## 4. LOCKED TERMINOLOGY TABLE (the in-world word for each concept)
| Concept | USE (canon) | AVOID (modern tell) |
|---|---|---|
| The product / device | **TERMINAL**, RobCo U.O.S., TERMLINK | "the app", "the site", "web app" |
| Operating system | **UNIFIED OPERATING SYSTEM (U.O.S.)** | — |
| The AI director | **GEM** / **THE DIRECTOR** / DIRECTOR LINK | "the AI", "Gemini" *(in narrative)* |
| Chat surface | **COMM-LINK** | "chat", "messages" |
| Send a message | **> TRANSMIT PROTOCOL** / TRANSMIT | "send", "submit" |
| Settings/config | **CAMPAIGN CONFIGURATION** / TERMINAL CONFIGURATION | "settings", "preferences", "options" |
| Account/sign-in | **ACCOUNT** + **UPLINK** framing | "sign in", "log in", "profile" |
| Cloud save | **CLOUD ARCHIVE** / **TELEMETRY UPLINK** | bare "cloud", bare "sync" |
| Local save | **SAVE SLOT** / **ARCHIVE** | — |
| Loading | **RETRIEVING… / DECRYPTING… / ESTABLISHING LINK…** | "Loading…", spinner |
| Empty list | **NO ENTRIES IN MEMORY** / **ARCHIVE EMPTY** / **NO ACTIVE DIRECTIVES** | "No items", "Nothing here" |
| Error | **⚠ [SYS-ALERT: …]** / **⚠ FATAL EXCEPTION** | "Error:", "Something went wrong", "Oops" |
| Success | **[OK]** / **SYNC COMPLETE** / **TELEMETRY PROCESSED** | "Success!", "Done ✓" |
| Update / refresh | **FIRMWARE UPDATE** / **> REBOOT TERMINAL** | "new version available", "refresh" |
| Image upload | **> VISUAL UPLOAD** / OPTIC SCAN | "upload", "attach" |
| Stats screen | **BIO-METRICS** / **S.P.E.C.I.A.L.** | "stats page" |
| Inventory | **BACKPACK INVENTORY** | — |
| Skills | **SKILL MATRIX** | — |
| Map | **WORLD MAP** / REGIONAL ZONE MAP | — |
| Delete / reset | **PURGE** / **WIPE TERMINAL** | "delete", "clear", "reset" |
| Confirm destructive | **CONFIRM TERMINAL WIPE** / **CONFIRM PURGE** | "Are you sure?" |
| Diagnostics log | **CLIENT ERROR LOG** / **[LOGS]** | "console", "debug" |
## 5. The two registers (don't cross them)
- **DIEGETIC layer** (everything the Courier reads): obeys §1–§4.
- **LITERAL layer** (a11y + a handful of real-world config the user genuinely needs): ARIA/alt text, and the **Gemini API key field label** (the user must know it's *their Gemini key* to paste the right value). These stay plain and clear. When a concept lives in both, the visible chrome is diegetic and the ARIA/label is literal — see audit TENSION items.
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).