Agent Control Plane
Why
Qpoint is shifting toward AI-agent governance. Cycle c15 ("Agent Dashboard") re-evaluated
the old app.qpoint.io traffic-observability product through an agent-governance lens and
landed on a persona-partitioned IA (5 seats) that we like. But grounding the work on a
traffic product leaked the old egress mental model — "an agent is a source of network egress" —
through the analysis, the persona IA, and the wireframes (see
../c15.agent-dashboard/agent-native-audit.md).
Meanwhile http://localhost:7878/ was replaced with a mature, fully agent-native "qcontrol
control plane" whose unit of analysis is the agent as an autonomous actor — capabilities,
tools, actions, tasks, outcomes, cost, identity, posture — not egress. It is cleaner and more
advanced than any c15 wireframe.
c16 re-executes the c15 initial prompt from scratch, anchored entirely on the qcontrol app, keeps the persona approach, and pivots completely away from egress monitoring. c15 is left intact as history.
Objective
Re-run the three-phase prompt (initial-prompt.md) on the qcontrol control plane:
- Analysis — per-view evaluation of qcontrol's 12 views (purpose + per-stakeholder value score 0–5 for Security / Finance / Executive, secondary Engineering & Compliance + opportunities) and a per-persona grouping (validate the 5-seat model, surface missing personas and net-new exec/finance surfaces). Agent-native vocabulary throughout.
- Wireframing — a persona-partitioned lo-fi app (
Wire*) whose deep pages are reframes of qcontrol's views + a net-new board-level Executive surface, all from a fresh data model. - Mockups — two hi-fi passes of the lead pages: m1 built only from existing
../q-nuxt-layercomponents, m2 unconstrained (use/invent the best component per job).
Scope
In
- Analysis report grounded in the actual qcontrol app (localhost:7878), agent-native framing.
- Stakeholder value scoring (Security / Finance / Executive + Engineering + Compliance).
- A persona-partitioned wireframe app (
control-plane-v1, iterationwf1) reframing qcontrol's views + a net-new Executive board. - m1 (constrained) and m2 (unconstrained) mockups of the lead pages.
Out
- Changes to the real
qcontrolapp,../app.qpoint.io, or../q-nuxt-layer. - Real data, API calls, or auth (fixtures only).
- Egress as a first-class surface, seat, or KPI.
Deliverables
app/data/c16-fleet.ts— typed fixtures mirroring qcontrol's/apishape (Phase 0)analysis.md— per-view + per-persona evaluation report (Phase 1)- Persona-partitioned wireframes under
app/pages/c16/wireframes/wf1/control-plane-v1/(Phase 2) m1+m2mockup passes underapp/pages/c16/mockups/(Phase 3)
Decisions (confirmed with requester)
- Scope: full pipeline, executed phase-by-phase with a checkpoint after each phase.
- Container: this new cycle
c16(c15 untouched). - Egress: demote, don't delete — never an organizing surface or persona lane; allowed only
as a minor detail-level signal where qcontrol itself shows it (the
Network Egresscard on an agent profile, the egress allow-list inside Policy & Enforcement). - Data: fresh data model
app/data/c16-fleet.tsmirroring qcontrol's/apishape — do not reusec15-agents.ts.
Source Material
initial-prompt.md— the originating brief (copied from c15).http://localhost:7878/— the qcontrol control plane (the newwf1under analysis); JSON at/api/{stats,agents,agent,activity,security,costs,performance,installations,dlp,inventory}.../c15.agent-dashboard/— prior persona work + the agent-native audit (lineage, not source).../q-nuxt-layer— component catalog for the m1 constrained mockup pass.
Status
- Phase 0 — cycle scaffold +
c16-fleet.tsdata model - Phase 1 —
analysis.md(per-view + per-persona) - Phase 2 — persona wireframes (
control-plane-v1, 14 pages) +FleetSeatNav+ gallery + dynamic route; egress-scrub verified;npm run buildpasses - Phase 2 review —
phase2-review.md(value articulation per persona/page; mean ≈ 3.1/5; 3 systemic gaps: seats routed-not-framed, no seat landing, state-not-action) - Phase 2b — wf2 value-first revision:
WirePagePurpose(purpose + bottom-line + do-next) +FleetSeatNav2+ 5 persona seat-landing pages + all 14 deep pages re-led with a computed takeaway/action + per-page fixes;npm run buildpasses (19 routes) - Seat-framing review —
seat-framing-review.md(per-page seat-centric recs; 3 themes; build-once derived abstractions) - Phase 2c — wf3 seat-lensed revision: build-once derived signals in
c16-fleet.ts(Control Coverage %, compound-risk, Hardening-ROI, governance-tagged spend, trajectory) +FleetSeatNav3; shared pages re-lens by?seat; per-page derived signals across all 19;npm run buildpasses (19 routes) - Phase 2d — wf4 qdash-gap revision: four-question nav grouping (Assurance / Security / Identity & Access / Admin) + Orientation map, Fleet Overview wall mode, net-new Teams & Users accountability rollup, Agent Inventory lifecycle states, concrete Compliance evidence pack
- Phase 2e — wf4 Usage Limits add-on (Uber-cap idea, simonwillison.net/2026/Jun/3/uber-caps-usage): net-new
usage-limits.vue— per-axis spend ceilings (per user / agent / tool) with cap coverage %, over/near counts, an "uncapped" worklist (names data-pipeline-agent = the LLM10 unbounded finding), and the Audit→Assist→Enforce ladder. Data:usageCapsconfig +usageLimits()/usageLimitSummary()inc16-fleet.ts. Slotted under Assurance for Finance / Engineering / Executive seats; activates the previously-dead "Set ceilings" affordance (Cost Center now deep-links here).npm run buildpasses. - Phase 2f — wf5 persona-first synthesis (
wf5-analysis.md): the "best of wf3 + wf4" — organized by persona (wf3's clean per-seat flat nav + seat-lensing) carrying wf4's richer surfaces (Effectiveness / Usage Limits / Teams & Users / lifecycle / wall mode / evidence pack); the four questions demoted to an implicit page ordering (no group headers, no Orientation page —FleetSeatNav5). Net-new Activity Log ("what happened?" — the cycle-history §4b gap, the only unbuilt first-class question) on the Security / Engineering / Compliance seats; effectiveness + activity woven onto the agent profile, a Findings→Activity bridge, and an "are they earning their keep?" ROI line on the Executive board.npm run buildpasses (23 wf5 pages). - ~ Phase 3 — hi-fi mockups
- wf3.m1 pass — COMPLETE (19 pages): the first hi-fi pass, built FROM the wf3 wireframes under
app/pages/c16/mockups/wf3.m1/control-plane-v1/. Unconstrained vocabulary — real q-nuxt-layerUx*/Data*/Icon*components plus best-fit visualizations, inventing native-styled components (ChartDoughnut, BudgetMeter, ScoreGauge, DataSeverityTag) inline where the library has gaps, each annotated as a proposed addition. Shared chrome: 14px seat rail (canonical seatNav: exec→executive-board, security→findings, finance→cost-center, eng→performance, compliance→compliance) → sticky page chrome → insight banner → KPI row → inline viz →UxTableList→ "Do next" actions; localfmtN/fmtCost; every number traces to ac16-fleet.tsexport; egress demoted to brief-sanctioned spots only.- 6 lead pages (prior): cost-center, executive-board, agent-inventory, agent-profile, findings, security-posture.
- 8 deep pages: fleet-overview, showback, performance, data-protection, policy-enforcement, compliance, agent-identity, integrations.
- 5 seat landings: executive-home, security-home, finance-home, engineering-home, compliance-home (purpose header → accountability KPIs → trajectory chart → "Your surfaces" card grid).
- Registry: single
wf3.m1iteration entry (page list updated); dynamic route auto-lists.npm run buildpasses; noWire*misuse.
- wf5.m1 pass — COMPLETE (all 18 deep surfaces): hi-fi mockups built FROM the wf5 persona-first
wireframes under
app/pages/c16/mockups/wf5.m1/control-plane-v1/, reusing the wf3.m1 vocabulary (ScoreGauge, BudgetMeter, ChartDoughnut, DataSeverityTag) — constrained to real q-nuxt-layer components. Built in two waves: (1) 8 lead surfaces — executive-board (incl. the "are they earning their keep?" ROI band), cost-center, agent-inventory (lifecycle states), agent-profile (woven "is it working?" + "what it did" cards), findings (Activity Log bridge), security-posture, effectiveness, and the net-new activity-log flight recorder; (2) 10 remaining deep surfaces — fleet-overview (Analyst/Wall toggle), usage-limits, the net-new teams-users accountability rollup, performance, data-protection, policy-enforcement, compliance (evidence pack), agent-identity, showback, integrations; (3) the 5 seat-home launchpads (security/finance/executive/engineering/compliance). The complete 23-page constrained set. Seat rail links target only built pages.npm run buildpasses; all render HTTP 200; noWire*misuse. - wf5.m2 pass — COMPLETE (8 lead surfaces, unconstrained) under
app/pages/c16/mockups/wf5.m2/control-plane-v1/: the elevated, less-constrained rendering of the 8 leads — real q-nuxt-layer components where they fit, plus best-fit visualizations invented inline where the library has gaps (RadialScore, TrendArea, ConcentrationBar, SpendTreemap, TimelineRail/EventChip, ReportCardHero, posture/recovery gauges), each annotated as a proposed addition.npm run buildpasses; all render HTTP 200.
- wf3.m1 pass — COMPLETE (19 pages): the first hi-fi pass, built FROM the wf3 wireframes under
- Phase 3b — wf5.b1 brochure site (per-seat, 6 pages): one value-story brochure page per seat
(security / finance / executive / engineering / compliance) + an overview
index, underapp/pages/c16/brochures/wf5.b1/control-plane-v1/. Each weaves its seat's surfaces into a single problem → pain → resolution narrative seeded by the wf5 page-level statements; Prose* components, proof stats fromc16-fleet.ts, no images, portable to www.qpoint.io. New surfaces foregrounded (Activity Log on security/eng/compliance; Effectiveness on exec/eng).npm run buildpasses; all render HTTP 200. - Phase 3c — wf5.b2 value pages (per-page, 24): a single "problem + value" page for EVERY page in the
app (index + all 23 surfaces), under
app/pages/c16/brochures/wf5.b2/control-plane-v1/. Each plainly states the problem the surface solves and the value it brings, seeded by that page's high-level statement (WirePagePurpose), with a few honest proof stats fromc16-fleet.ts— the lightest brochure form, a value map of the whole control plane.npm run buildpasses; all render HTTP 200.
c16 artifact inventory: wf1–wf5 wireframes · wf3.m1 (19) + wf5.m1 (23) + wf5.m2 (8) mockups · wf3.b1 + wf4.b1 + wf5.b1 (6) + wf5.b2 (24) brochures. Remaining (optional): m2 of the non-lead surfaces.
Visual record
2 captures — heroes, page slices, and full-page renders. Click to view.

