GENERATED VIEW · PRIVATE ARCHIVE · DO NOT SERVE
RobCo Industries · Archive Museum

command-cluster-final-notes.md



RELEASE

planning/2.8.0/mockups/command-cluster-final-notes.md

sha256 0a2fc6390d1a8c27 · 4677 bytes · original held in the private archive

# COMMAND CLUSTER — FINAL (Tool Deck + Quick-Draw Holster) > **Design mockup only.** `command-cluster-final.html` is the refined, owner-picked Option B > ("Tool Deck"). Self-contained, inline CSS, faked interactions. Nothing here touches app code. ## What stayed (the Option B core) - **Zero standing footprint.** Below the composer there is nothing but transcript. The one new standing element is the dashed **◈ launcher key** in the composer toolbar. - **The deck.** ◈ raises a bottom-sheet TOOL DECK inside the glass: shared TARGET/ITEM/TOPIC field on top, then the six tools — THREAT, VATS, TRADE, LOOT, CONSULT, CALC (V.A.T.S. calculator). TERMLINK and CROSSROADS remain retired. Scrim-tap / ✕ / Esc close it. - Every tool = 2 taps (◈, then the row); argument tools type into the one shared field first. ## What changed since the option-B draft 1. **Keycap chips on the tool rows.** The `[THREAT]`-style bracket text is replaced by a small raised hardware keycap chip (the DO-N bezel `.navkey` gradient/shadow language) carrying the token, with the plain-English description beside it. The deck now reads as a tray of machine keys, not a list of web buttons. 2. **A grab-handle bar** at the deck's top edge — standard bottom-sheet affordance. 3. **VATS row drops its `USES TARGET` tag** — the real `[VATS SIM]` router ignores any typed target (it operates on the equipped weapon), so advertising a target there was a lie. 4. **The D-PAD is fully redesigned** (below) instead of tucked as bare arrows. ## The redesigned D-PAD → "QUICK-DRAW HOLSTER" **What the D-PAD actually is:** not navigation. In the shipped app the four arrows fire `[PAD: DIR]` — an AI macro that uses whatever gear the player previously bound to that direction with `[BIND: item, DIR]`. It's a gear quick-slot system (a favorites wheel), but the old UI showed four anonymous blue arrows: you couldn't see what was bound where, and BIND existed only as a typed command nobody could discover. **The redesign makes the bindings visible and the whole system self-documenting:** - Four **gear-vector sockets** in one row at the deck's foot — hardware keycaps in the same bezel language, each showing its direction glyph (▲◄►▼), an **LED (lit = gear holstered)**, and the **bound gear's name** ("STIMPAK", ".357 MAGNUM"…). An empty socket reads *EMPTY*, dimmed, LED dark. - **Tap a socket = fire `[PAD: DIR]`** — exactly the old arrows' job, but now you can read what you're about to deploy before you tap it. - **BIND ▸ key** (right of the section header) arms bind mode: the sockets go dashed-amber and pulse, a hint line appears, and tapping a socket holsters whatever is typed in the deck's target field (`[BIND: gear, DIR]`). The previously-hidden BIND command becomes a visible, two-tap flow that reuses the deck's existing field — no new input. - Tapping an empty socket outside bind mode doesn't fire a blind macro; it hints you toward BIND ▸ instead. **Why this shape:** it answers "what is this row of arrows for?" at a glance, keeps the whole cluster one visual system (keycaps all the way down), holds ≥28px targets (sockets are ~76×46), and costs no extra height versus the old tucked arrow row — four sockets in one row replace the arrows plus the invisible mental bookkeeping of remembering your own bindings. In a real build the socket labels would render from wherever the AI-side bindings live, with a literal `aria-label` per socket ("Fire gear vector up — Stimpak"). ## Verification Headless-checked (Playwright, 412px and 1280px): `scrollWidth === innerWidth` at both widths (no horizontal overflow), **zero console errors**, and **zero interactive elements under 28px** in the deck (tool rows, sockets, BIND key, composer buttons, ✕ all audited). Inputs are 16px (no mobile focus-zoom). All faked interactions exercised: deck open/close, tool launch with target, socket fire, bind-mode arm → holster into the empty ▼ socket. ## Screenshots (for mobile review) - `command-cluster-final-412.png` — mobile resting state: pure transcript, ◈ key in the toolbar. - `command-cluster-final-412-deck.png` — deck raised, target filled ("CAZADOR"), holster resting. - `command-cluster-final-412-dpad.png` — **redesigned D-PAD in use:** BIND ▸ armed, sockets pulsing dashed-amber, "MENTATS" staged in the target field, hint line live. - `command-cluster-final-412-dpad-bound.png` — after the bind: MENTATS holstered in ▼, LED lit. - `command-cluster-final-desktop.png` — full-page overview: mobile frame resting beside the desktop Director-column frame with the deck raised.
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).