Pages
Fleet Overview — Ideas

Source: qdash / (Fleet Overview) — design-pass concepts, 2026-08-03

The Overview answers "are we exposed?" but not the other two beats of the CISO Monday-morning read — "what changed since Friday" and "what needs my decision" — and the activity timeline the north star names was never built. Eight concepts, fully rendered against the Meridian world (34 monitored agents · 14 users · 39 installs · 87% coverage · $4.2k/90d). Ideas 1–5 complete the console read; ideas 6–8 make it an overview — people, things, and meaning, not only metrics. It is Monday; the weekend brought sofia's secrets.yaml finding (Fri), felix's egress destination (Sun), and a Windsurf install on chen-mba (Sun).

Idea 1

The headline answer

The scorecard answers the one question if you read six rows. One synthesized sentence answers it in genuinely ten seconds, and a delta digest makes "since Friday" a first-class object. Everything below is computable from data the page already fetches.

Mostly on target — 5 of 7 dimensions green. The weekend brought 1 new high-severity finding and 1 new shadow install; 3 decisions are waiting.

+1high finding
felix · egress · Sun
+1shadow install
Windsurf · chen-mba
−2ptscoverage
89% → 87%
+$132spend (7d)
within target
+1agent
chen · Claude Code
"since Friday" = since your last visit (stored locally) · falls back to 7d
Idea 2

Needs your decision

The product's core loop is making a decision, yet the Overview never shows the pending queue. Three cards, named verbs (the owning control's decisions, not generic status). The buttons deep-link into the one canonical decision surface — the finding modal — so this is a queue, not a second surface.

metrics.coderelay.ioegress
felix's agent · non-allowlisted destination · 14 connections
first seen Sun 18:03
secrets.yaml readfinding
sofia's agent · high severity · sensitive-file access
opened Fri 16:55 · unassigned
Windsurf on chen-mbashadow AI
discovered install · never run through qcontrol
discovered Sun 22:41
queue = open findings awaiting triage + non-allowlisted destinations without a decision + unmonitored installs · worst first · caps at 3, "+ N more → Findings"
Idea 3

The scorecard grows a Δ column

The keystone keeps its shape; a "Δ since Fri" column lands between current and status. Note the Coverage row — on target yet slipping — a state the current page cannot express. Also folded in: honest cells for the two incoherences (no-target rows render neutral, never a house default; no-history trends render "—", never a borrowed series).

DimensionWhat good looks likeWhere we areΔ since FriStatusTrend (90d)Action
Security postureavg score ≥ 8084 avg +3
recovering
on target▲ 84open Security Posture
High-severity findings0 high-severity2 high +1
felix's egress · Sun
gap▲ 2work Findings
Unexpected egress0 unapproved destinations1 destination +1
metrics.coderelay.io
gap▲ 1decide in Findings
Monitoring coverage≥ 80% installs monitored87% (34/39)−2pts
new shadow install
on target▾ 87%onboard in Inventory
Spend≤ $1.5k / 30d$1.34k 30d+$132on target▲ $1.34kreview Campaigns
Token throughputno target — set one no targetset a target
Compliance evidence0 findings unmapped3 unmapped ±0gapreview evidence gaps
Idea 4

The activity timeline

The north star's per-tab spec: "the scorecard… below: activity timeline and the exceptions strip." The timeline never got built. It gives the page its narrative — why did the trend move? — and it's reconstructed entirely from timestamps already stored (finding first_seen, decisions, install discoveries, agent first_seen).

Today — Monday
09:12chen's first agent instrumented — Claude Code on chen-mba — new user
Sunday
22:41Windsurf discovered on chen-mba — unmonitored — shadow AI
18:03finding opened: non-allowlisted egress to metrics.coderelay.io (felix's agent) — high · undecided
Saturday
11:27SOC 2 evidence packet exported — 87% coverage · 41 controls
Friday
16:55finding opened: secrets.yaml read by sofia's agent — high · unassigned
10:20destination approved: registry.npmjs.org (dana) — "sanctioned registry"
replaces "Fleet at a glance" (the header already carries the counts) · the incident scrubber eventually merges in as this feed's replay view
Idea 5

Adoption & growth

The page is entirely risk-and-cost framed, but "an overview of all agent usage in the company" also means the growth question: is it spreading, who's new, on what tools? Summarize + deep-link to Teams/Inventory — never re-list their tables.

Active users
14
▲ +1 this week — chen (Frontend)
of ~60 engineers · 3 → 14 over 90d
Harness mix
Claude Code19
Codex6
Cursor5
Gemini CLI4
Windsurf2unmonitored
Ollama3unmonitored
Concentration
Payments runs 2.7× the team median
priya 2.4× the user median — migration squad
6 models · 9 MCP servers in use
Idea 6

The crew — people first

"14 users" is a count; this is the fleet as a crew. Every person, grouped by team, with their agents as pawns carrying live state. Who's running what right now, who's new, who's the outlier, who's gone quiet — readable at a glance, before any number.

Payments3 people
prpriya
2.4× spend
ninina
avava
Platform4 people
mamarcus
sosofia
rarafael
jojordan
Data4 people
sasam
dadana
totomas
fefelix
Frontend3 people
chchen
new today
jajake
leleo
pawn = one agent · awake = running now · asleep = idle· dimmed = quiet ≥ 7d + ~46 engineers not yet observed — the adoption headroom
Idea 7

What the fleet is doing

Meaning, not telemetry: the running agents described as work. The verb lines are derivable from data qdash already has (cwd/repo, tool-call mix, last command); deeper task inference from prompt content is staged capability and says so.

12 agents working now214 files touched today96 commands run1.2M tokens4 PRs opened
priyapayments-migrationmigrating the payments schema · 41 file edits · 6 test runs this hour2h 10m
marcusqproxyrunning the test suite · last: cargo test · 12 commands/hr48m
danadata-pipelinesreading logs & configs · 82% reads — investigation-shaped1h 22m
felixcoderelay-sdkintegrating an external SDK · 14 connections to a new destination⚠ egress undecided31m
chenweb-checkoutfirst session — scaffolding tests · onboarded 09:12 today19m
verbs derived from tool-call mix + cwd (live) · task summaries from session contentprojectedtop repos this week: payments-migration · qproxy · data-pipelines
Idea 8

The fleet portrait

The whole system in one picture: people → harnesses → where the traffic goes. Ribbon width is observed volume; amber dashed is the traffic we can't see (shadow installs, local models); the red ribbon is Sunday's undecided destination. The interactive version of this picture is qmap's territory — this is the standing glance.

14 people
Payments · 3 2.7×Platform · 4Data · 4Frontend · 3
14 machines · 4 teams
Claude Code19
Codex6
Cursor5
Gemini CLI4
Windsurf2
Ollama3
api.anthropic.com
api.openai.com
Google AI
github.com
registry.npmjs.org
metrics.coderelay.ioundecided — decide →
unobserved / local
ribbon width ∝ observed traffic · amber dashed = unobserved (2 Windsurf, 3 Ollama) · red = non-allowlisted, awaiting a decision · every element deep-links (people → Teams, harnesses → Inventory, destinations → Findings)
Coda

The composed page

Two ways the pieces could stack. A is the console read (the funnel: verdict → decide → measure → explain). B leads with the living fleet — people and the portrait — and lets the scorecard follow. The likely answer is A's spine with B's crew + portrait as the middle band.

A — the console read
1
Headline + delta digest — the 10-second verdict
new
2
Needs your decision — the queue, capped at 3
new
3
Scorecard (with Δ column) — the keystone, kept
kept
4
Exceptions strip — blind spots, kept
kept
5
Activity timeline — replaces "Fleet at a glance"
new
B — the living fleet
1
Headline + delta digest — same verdict up top
new
2
The crew — people first, pawns carry state
new
3
The fleet portrait — the system in one picture
new
4
Needs your decision — decide from the picture
new
5
Scorecard, collapsed — gap rows only, expand for all
kept

Qpoint Brand Style Guide