App Patterns

Functional patterns from the product app. These combine layer components into standard application layouts — forms, lists, modals, and dashboards.

Form Layout

A form wrapper with labeled inputs, section headers, a save bar, and a danger zone. The standard pattern for every create/edit page in the app.

When to use: Building settings pages, edit forms, or any CRUD interface.

Config
Danger

Managed List

A title bar with an add button, followed by a flat list of items with toggle controls and manage actions. The standard pattern for resource index pages.

When to use: Showing a browsable list of resources with enable/disable and navigation to detail pages.

Rules
New Rule
New Vendor Discovery
Alert when a new vendor is detected
Manage
Bandwidth Threshold
Alert when bandwidth exceeds 10GB/hour
Manage
Risk Delta
Alert on risk score changes above 20%
Manage

Metric Dashboard

A row of DataMetricBase cards showing key metrics with optional trend data and navigation links. The standard overview pattern for dashboard sections.

When to use: Showing a high-level summary of metrics — traffic stats, inventory counts, or security scores.

Connections
48.3
k
Connections/s
12.4
Bandwidth In
2.65
GB
Bandwidth Out
849.92
MB

Data Table

A sortable, searchable, expandable data table built from 8 composable sub-components. The standard pattern for traffic lists, inventory tables, and any tabular data view.

When to use: Displaying tabular data with column sorting, inline search filtering, expandable row details, and optional infinite scroll.

requests
bytes in
errors
api.github.com45,23012.3 MB23
api.stripe.com32,4568.7 MB12
api.cloudflare.com28,90115.2 MB5
api.twilio.com15,6783.4 MB8
See full compositional guide →

Notification Rule

A notification rule card composed as readable inline sentences. Condition/action/throttling rows adapt reactively — selecting a dropdown changes which subsequent segments appear.

When to use: Building alert configuration UIs where users define rules for policy violations, thresholds, or event-driven notifications.

Condition :
Action :
Throttling :
Condition :
Action :
Throttling :

Listing Overview Band

Three DataMachines above a filtered table, one visual device per card, every number and every device derived from the same rows the table shows. Four rules: form follows the data's job — a whole with named parts is a DataSegmentBar, a real ratio is the number plus a DataMetricPercentBar meter (a donut only when both slices are named things), "which few carry most" is a DataRankedBars list (top three, values in a right-hand column) with the share in the provenance, daily counts are a DataHistoryGraph, a trend is a :spark from a series that respects the page's filter; cross-foot or don't draw it — segments sum to the card's value, no projected series, no invented denominators; one device per card — #right or :spark, never both, status roles only when the segment means good / bad, categorical slots for identity, one stepped hue for ordered scales, text in text tokens; composition, not configuration — the band stays inline in the same grid, the devices are the layer's primitives.

When to use: Any listing page — actors, people, sessions — that opens with a summary of the filtered table. The card's count is the headline; the device shows what it is made of. When a card's data is empty, the device shows its empty state (a hairline track, an em-dash), never a placeholder.

Machines
Hosts the sensor has seen
14
9fully monitored
3partial
2unmonitored
9 fully monitored · 3 partial · 2 unmonitored
Coverage
Hosts with something monitored
86
%
12 of 14
Spend
All-time, across the machines below
$
4.2k
tomas-mba
1.6K
priya-x1
640
marcus-fw
380
top 3 = 62 % of spend
Empty state — nothing observed yet
Machines
Hosts the sensor has seen
0
0 installs scanned
Coverage
Hosts with something monitored
0
%
0 of 0
Spend
All-time, across the machines below
$
0
—
nothing observed

Actor Detail Frame

The composition every actor detail page opens with — an agent, a harness, a machine, a model, an MCP server, a tool, a workspace. In order: ActorHeader (mark · name · subline; one headline ActorHeaderCell; a Metadata grid whose long tail hides behind Show All) → a hairline and the elsewhere links (where this actor shows up: findings, controls, cost, the listing filtered by it) → the band, four DataMachines at valueSize 30 → sticky NavJumpPills → the ledgers (an h2 with a mono count, a lede, a capped DataTable with a Show-all footer and an "All … →" link) → DataSurfaceSection → a More detail rule for anything the old page showed that has no home above. Band rules: every number and every provenance sentence derives from one pure band function over the same payload the ledgers read, so the band cross-foots with the tables; money rounds to cents with a $ in #left; counts that should be zero (denied, shadow, at-risk) run healthModes.ZERO_TOLERANCE; one device per tile at most, a donut only when both slices are named things; nothing unserved is invented — a ProjectedBadge or an honest-absence box instead.

When to use: Any page whose subject is one actor aggregated over the event grain. Not for a single record (a session is a receipt: identity ribbon, reading column, sticky rail) and not for a listing (that is the Listing Overview Band). The page's headline cell is its control question — coverage for a harness, monitoring for a machine, spend for a model, denials for a tool.

Claude Code
Claude Code
Anthropic/cli/last active 2 h ago
Coverage
86%
Metadata
Adapterclaude-cliVersions2.1.170, 2.1.166Default modelsclaude-sonnet-4-6First seen2026-05-12
Findings for this harness →Review control policies →Agents running it →
Installs
14
Monitored
Shadow
12 monitored · 2 shadow across 9 hosts
Agents
5
252 runs · last active 2 h ago
Versions
2
latest v2.1.170 on 9 of 14 scanned installs
Spend
$
482.17
all-time · billed where reported

Agents

5 total

Who runs this tool — one row per user.

agent
user
host
runs
spend
Claude Codepriya@meridian.devpriya-x185$171.20
Claude Coderaj@meridian.devraj-mbp62$120.44
Claude Codedana@meridian.devdana-fw50$96.03
Show all 5 agentsAll agents →

Surface

what this harness touches

Models called and MCP servers connected across every install of this harness.

Models

2 in use
ModelAgents
claude-sonnet-4-6
11
claude-haiku-4-5
4

MCP Servers

3 distinct
ServerAgents
postgres-readonly
7
linear
6
sentry
5

More detail

everything the old page had that the first screen doesn't

Per-install configuration, as captured — under this rule, never deleted.

Qpoint Brand Style Guide