AI Ops Deck — 5 Design Directions

# AI Ops Deck — pick a design direction

Five complete directions, each a different user flow and design language, all rendered with your real data sources (runplan journals, systray HealthStore, gh runners, agent-guard, Prometheus, security-gate ledger). All build on `@platform-modules/ui-primitives` + Botmaster's chart kit. Click "Select this direction" on one (or more), or answer in the terminal — mixing is fine ("D shell with B's inbox").

A

## TOWER — Mission-Control Wall

Flow: zero navigation — one dense always-on screen, made to sit on a second monitor. You don't "use" it, you glance at it. Anything urgent jumps to the red strip at top with a one-click action. Language: dark NASA console, monospace, phosphor status colors, uppercase micro-labels.

Select this direction — A
◤ TOWER2026-07-16 14:32:07 · laptop e14 · load 6.8 / 16
ACT orphan agent: cursor-agent PID 88231 · 94% CPU · 3h12m · ignores SIGTERM

#### AGENT FLEET

claude ×6312% CPU
codex ×241% CPU
orphans1 ● reap
app.slice mem18.2G / 24G low

#### RATE LIMITS · SPEND

claude A78%
claude B23%
codex41%

#### CI · RUNNERS

multideal #4821✗ e2e 14m
platform #312✓ 6m
laptop runnerbusy
debian1 rb-*idle · online
queue0 waiting

#### PLANS (harness :4973)

autonomy-p4wave 2/5 ▶
└ babysitter-tuitask 3 ✓
dep-provisioningHALT: decision
nightly golive03:00

#### GOLIVE SCOREBOARD

multideal8/34
zync.is3/31

#### HOST (prometheus :9090)

PSI cpu some4.1%
mem runway> 6h
build.slice2 jobs · ni19
PROCHOT0

#### GATES

prevent-band0 open
slopgate debt Σ14 ▼2
warnignore adds0 this wk

#### BUILDSLOT QUEUE

runningvitest·multideal
queuedtsc·platform
tickets today41 · p95 wait 8s

B

## INBOX — Actionables-First Triage

Flow: the opposite of a wall of panels — a triaged to-do feed. Every source (CI fail, HALT, rate limit, orphan, gate report) becomes an item with inline actions; you work top-down to inbox-zero. Raw dashboards exist but are secondary. Directly attacks notification fatigue: one inbox, deduped, severity-sorted. Language: Linear/Things — light, calm, generous whitespace.

Select this direction — B
⌘ Deck
Inbox5 CI & Runners2 Agents1 Limits & Spend1 Plans1 Gates0 Scoreboard Snoozed3
Inbox 5 actionable · sorted by impact
Orphan agent burning 94% CPU for 3h12m
cursor-agent PID 88231 · ignores SIGTERM · agent-guard
multideal CI #4821 failed — e2e checkout spec
runner: laptop · 14m · 2nd failure today, same spec
Plan HALT: dep-provisioning needs a decision
runplan wave 3 · "pin drizzle 0.44 or bump?" · waiting 42m
Claude account A at 78% of 5h window
systray-ai · projected cap in ~55m · account B at 23%
GOLIVE moved: multideal 7 → 8 / 34
AC-12 checkout-refund flipped WORKS · nightly audit

##### Orphan agent — cursor-agent

PID88231
CPU94% · 3h12m
Sliceapp.slice (uncapped)
Signal historySIGTERM ignored ×2

    $ reaper-ctl kill 88231 --escalate
    → SIGTERM … no exit (5s)
    → SIGKILL … [dry-run]

C

## CONSOLE — Keyboard-First Web TUI

Flow: lives where you already live — feels like k9s/lazygit in a browser tab (or actual terminal via the harness Rust TUI). One focus view at a time, everything through hotkeys and a command palette (`:plans`, `:ci`, `:kill 88231`, `:limits`). Fastest possible for a power user; zero mouse. Language: Tokyo-night terminal brutalism, box tables, status bar.

Select this direction — C
1:plans 2:ci3:agents4:limits5:hosts6:gates7:board

PLAN | STATE | WAVE | TASK | AGE | HOST
--- | --- | --- | --- | --- | ---
autonomy-p4-babysitter | running | 2/5 | tui-state-render | 18m | laptop
runplan-dep-provisioning | HALT | 3/4 | drizzle-pin-decision | 42m | laptop
golive-nightly | scheduled | — | board multideal+zync | 03:00 | debian1
url-flush-probe | done ✓ | 4/4 | — | 2d | debian1

: kill 88231▏
kill 88231 — reap orphan cursor-agent (SIGTERM→SIGKILL)`↵`
kill --dry-run 88231 — show escalation plan`⇧↵`
logs 88231 — tail process journal`^L`
● harness:4973 ci: 1 redagents: 8 (1 orphan!)claudeA 78%load 6.8: cmd · ? help · j/k move

D

## SCOREBOARD — Distance-to-Done Editorial

Flow: built around your diagnosis doc — the landing page answers exactly one question: "how far is each project from live, and did it move?" GOLIVE scoreboards first; ops/CI/limits are drill-downs behind each card. This is the weekly-ritual (S3) instrument: scoreboard flat + commits piling = churn alarm, stated in plain words. Language: calm editorial print — serif numerals, warm paper, sparklines, zero blinking.

Select this direction — D

### The Scoreboard

Wednesday, July 16 · week 29

Verdict: multideal moved +2 criteria this week and is the only project advancing. zync.is is flat for 9 days while receiving 118 commits — that is churn, stop and inspect. One red gate: multideal e2e checkout failing since 11:02.

multideal
8 / 34
▲ +2 this week · M4 prod env next
CI red (e2e) · runner busy · claude A 78%
zync.is
3 / 31
■ flat 9 days · 118 commits — churn
Z2 dead pay-links still open · CI green
press.zone
6 / 10
▲ +1 · customer date: Jul 25
Hetzner prod · smoke green nightly
Plans: 1 running · 1 HALTCI: 1 red / 4Agents: 8 live · 1 orphanLimits: claude A 78%Gates: prevent 0 · slop 14Hosts: laptop + debian1 ok

E

## ATLAS — Live Infrastructure Map

Flow: spatial — your machines and clouds are nodes on a living map; runners, agents, plans and deploys are chips that light up on the node where they run. Click any node → inspector with actions. Answers "what is running where" literally. Language: dark glassmorphism, glowing edges, sci-fi ops-center.

Select this direction — E

##### laptop · e14

claude ×6orphan ×1runner: busyplan: autonomy-p4load 6.8

##### GitHub · Actions

multideal #4821 ✗platform #312 ✓queue 0

##### debian1 · buildbox

rb-* idlerunner onlinegolive 03:00

##### Cloudflare

workers ×4multi.deal 522!

##### laptop · e14

ThinkPad · 16 cores · Tailscale ✓
Agents8 (1 orphan)
Runnermultideal · busy
Planautonomy-p4 · w2/5
PSI cpu4.1% some
buildslot1 run · 1 queued
claude A limit78% ⚠

Select one or more above (multi-select allowed), or reply in the terminal. Hybrids welcome — e.g. "D as home + B inbox + C palette everywhere".