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).