← Paul Barrick

// built at work

Mission Control

A fleet dashboard I built at work for a large engineering org with dozens of teams: cost per ticket and per story point from every machine's own run telemetry, with coverage on every number, agentic delivery metrics, certification courses, a season leaderboard and a team-voted prompt library — plus Signals, a desktop tray of live cards.

live · at work

Mission Control's Tickets tab with anonymised names and illustrative figures: tiles for cost per ticket ($68.33), spend ($2,186.64 across 48 packages), 44 tickets with 25 unpointed, coverage of 5 of 14 teams reporting, and cost per point ($5.35, only 36% of spend pointable), above a warning that every figure is a partial sample and a table of tickets by cost, tokens, points, gates and efficiency.
Names, ticket keys, titles and team names are anonymised. The numbers are real.
what
what agentic delivery actually costs
role
Designed and built it for my team
when
2026
stack
Node.js · React 19 · TypeScript · Vite · Tailwind CSS · Radix UI · Recharts · Tauri · Rust

Names, tickets, teams and every figure in these screenshots are fictional; the screens and the method are real.

The problem

At work, a large engineering org with dozens of teams was adopting coding agents. Three questions kept coming up: what does this cost, is it working, and who knows how to use it well? None of them had a measured answer. Spend showed up as an invoice. Tickets lived in Jira and merge requests in GitLab. Nothing joined them, and the numbers people did quote came from whichever teams happened to report.

A figure drawn from part of the fleet is not a fleet figure. I wanted a dashboard that knew that.

What I built

Mission Control is the control plane for the team’s agent harness. Every machine running the harness registers with a shared fleet server and forwards its run telemetry. The dashboard rebuilds what delivery costs — per ticket, per team, per story point — from that telemetry, and shows coverage on every number.

Mission Control's reporting overview: cost per ticket, spend, tickets, coverage and cost per point tiles above a by-team spend table.
The overview. Coverage sits next to every number: when only some teams report, every figure is a partial sample, and the page says so.

Around that core sit the parts that answer “who knows how to use it”: certification Courses, a season leaderboard called The AI Games, and PromptWars, a prompt library the team votes on. On the desktop sits Signals, a tray of live notification cards.

The AI Games season page: three season goals with progress bars, a Certify board, a PromptWars board, a team champion race and season badges.
The AI Games: a season that rolls certification and PromptWars into one board. It says plainly that it is not a performance rating.

How it works

A single ticket's analysis: cost, tokens, active hours and agent runs; why it cost this (most tokens spent re-reading context); a token-efficiency score (poor) broken into context reuse, context per call, focus and cost per point; and coaching points.
Ticket analysis. Why it cost what it cost, a token-efficiency score, and coaching points for a 1:1, each triggered by a number on the ticket.
The Value tab: cost per story point for each pointed ticket, with a note that only about a third of spend sits on tickets that carry a story point.
Cost per story point, with the honest caveat up top: most spend sits on issue types that cannot be pointed at all.
The Agentic tab: uplift, lead time and escaped-defect tiles comparing agent-assisted and human-only stories, above weekly trend charts for first-pass acceptance, cycle time, cost per delivered point, agent work per gate and agent-assisted share.
Agentic uplift reporting. Each tile carries its n, and the uplift ratio stays on the page whether or not it flatters anyone.
Weekly trends and MR flow: median cycle time, wait for first review, the agent-assisted share of merged MRs, and open MRs by age.
Trends and MR flow. When an agent can raise ten MRs an hour, the scarce thing is the time work waits for people.
A Courses question in Steer mode from a token-economics workshop.
Courses: Standard, Steer (it teaches as you go) or Easy (multiple choice). You only see the courses meant for your role.
A person's progression: highest level Agentic Foundations, next level Agentic Practitioner, 372 mastery points, the certification ladder, attempts and what to work on next.
Progression, shown on my own record: the ladder, attempts and what to work on next.
The PromptWars library: category and team filters, tags, and prompt cards showing heat, uses, author and comment counts.
PromptWars: a prompt library the team votes on, improved by merge request.
The Signals tray with sample data: live cards for an architecture decision check, a run that passed $50, a run gone quiet, a permission request, a checks-green card and a merge request waiting on review.
Signals: one window of live cards. Approve a permission, answer a gate, open the merge request.

Decisions worth noting

Advisory until calibrated, and the server decides. A certification result is advisory until two independent reviewers agree with the engine within ±1 on every competency. That used to be a flag the client sent — the wrong party to ask. Now the server computes it, and an unreadable calibration counts as uncalibrated. The cost of a wrong caveat is a caveat; the cost of a wrong “final” is a certification nobody can stand behind. No level is calibrated yet, so every result says so.

Changing a question bank is a new version. Adding a marker to a question moves the denominator — an answer that met one of one now meets one of three — so improving a live bank would silently re-score past answers. Improvements ship as a new version and the old one is frozen.

Two credentials, not one. One token forwards a machine’s events; a separate admin token publishes to every screen. With one key, any laptop, or any config pasted into a ticket, could put a card on every screen in the fleet.

Off means nothing starts. Notifications ship off. With them off, nothing is written, no watcher starts, and no tray icon appears. The permission card falls back to the normal terminal prompt, because turning off notifications must never take away your ability to answer a permission request.

Where it fits

Mission Control is work, and it stays separate from my personal Agentic OS: no shared code and no shared data. What the two have in common is how I build — coverage beside every number, a person approves, and notifications that never take away your ability to answer. The harness knows nothing about my personal tools; that boundary is a rule.

Outcome

The org now has a cost-per-ticket figure that says how much of the fleet it describes, and agentic metrics that show their sample sizes instead of hiding them. The season goals on The AI Games board turn adoption into things a team can see: half of every team at Foundations, a prompt library with a target size, and every engineering manager through the AI for Leaders course. The AI Games is explicit that it isn’t a performance rating. It’s a way to see who can do what, and who to ask.

← All of the Agentic OS