Skip to main content

From Chaos to Command: How I Rebuilt My Mission Control to Actually Work

Published: March 20, 202610 min read
#mission-control#buildinpublic#solofounder#ai#dashboard

From Chaos to Command: How I Rebuilt My Mission Control to Actually Work

I run a portfolio of AI-powered products as a solo founder. I have agents running on an EC2 instance, agents running on a Mac Mini, and I do all my development on my MacBook using Claude Code with AGENT-11. The problem? Until today, I had no real way to see what was happening across all of them.

What Was Wrong With the Original Mission Control

The first version of Mission Control was a basic tabbed dashboard : Overview, Goals, Kanban, Projects, Issues, Agents. Sounds reasonable on paper. In practice, it failed me in three fundamental ways.

First, it couldn't answer the questions that mattered. When I sat down in the morning, I wanted to know: what's blocked on me? What got done yesterday? Are any projects about to miss their kill dates? The old dashboard required clicking through multiple tabs, scanning tables, and mentally assembling the picture. That's not a command center : that's a filing cabinet.

Second, it had no concept of strategic hierarchy. Tasks existed in a flat list. Goals were disconnected from projects. There was no way to trace a piece of work back to "why does this matter?" When you're managing 10+ products across multiple agents, losing the thread between daily tasks and yearly objectives is how you end up busy but not making progress.

Third, agents couldn't tell me they needed something. The original system had no formal way for an agent to say "I'm blocked, I need Jamie to make a decision." Requests got buried in overnight logs, memory files, and Slack-style messages. Items fell through the cracks. Work stalled silently.

The Fix: A 6-Layer Command Center

I spent today rebuilding Mission Control from scratch with a clear architectural principle: six layers, fully connected, visible from one screen.

Layer 1: Vision + BHAG

A North Star card at the top of the Command View. "Truth is the Currency of the Future." BHAG: $10M ARR by 2030. This isn't operational : it's the filter for every decision. When I'm resolving a HITL item at 7am, I can glance up and remember what we're actually building toward.

Layer 2: Yearly Objectives

The 3-5 things that must be true by December 31 for me to be on track. For 2026: first dollar of revenue, 4+ products above $1K MRR kill rate, 5K engaged followers. These sit right below the North Star, each with a progress bar. If an objective is falling behind, I see it immediately : not at a quarterly review when it's too late to course-correct.

Layer 3: Quarterly Key Results

Measurable outcomes per quarter, each linked to a parent yearly objective. When I see "Launch AImpactMonitor : 0/1 : 0%" it tells me exactly which yearly objective it serves and whether I'm on pace. I built a full goals management page where I can set these, review them at quarter-end, write notes, and adjust targets.

Layer 4: Programs + Projects

This is where the portfolio view got its biggest upgrade. Instead of a flat table of products, projects are now grouped by program. AI Search Mastery is a program; AImpactMonitor, LLMTxtMastery, and AISearchMastery are projects within it. Each program shows a health rollup : 3 green, 1 amber, 0 red : so I can spot trouble at the program level without expanding every row.

Layer 5: Tasks (The Execution Board)

A 6-column Kanban: Ready, In Progress, Waiting on Jamie, Waiting on Agent, Blocked, Done Today. Every task card shows its T-id, owner, project, mode, and how many days it's been in its current status. The "Waiting on Jamie" column is the one I watch : that's where I'm the bottleneck.

Layer 6: Audit Log

Every status change, every completion, every HITL resolution gets timestamped. This is how I'll know if the system is actually working : not from gut feel, but from data.

The HITL Queue: How I Stay in the Loop Without Being the Bottleneck

This is the piece I'm most proud of. HITL stands for Human-in-the-Loop, and it's the formal mechanism for agents to request my input.

Here's how it works: When Ace (my marketing agent on the Mini) needs me to approve homepage copy, he doesn't drop it in a memory file and hope I find it. He creates a HITL item with a priority (P0 = same day, P1 = 48 hours, P2 = this sprint), a clear description, and what it blocks. That item shows up in my Command View with a red badge. I see it on my phone, my MacBook, anywhere.

I click Resolve, choose an outcome (approved, approved with changes, rework requested, deferred, rejected), add notes, and submit. The resolution writes to a pending-changes.json file that the Mini's sync script picks up and propagates back to the agents. The agent sees the resolution, unblocks, and continues working. I never had to open a terminal, SSH into anything, or context-switch between systems.

The HITL queue has priority borders (P0 gets a red stripe, P1 gets amber), wait time tracking ("2d 4h" with amber/red warnings for stale items), and a "Resolved Today" section so I can see my throughput.

AGENT-11: One Agent, All the Repos

The original dashboard had an "Agent Status" section showing individual agents as if they were independent services. But that's not how I work. I have one agent system : AGENT-11, running via Claude Code on my MacBook : that I use across all my development repos: AImpactMonitor, IsoTracker, Evolve-7, SoloMarket, FreeCalcHub, and a dozen others.

The new Command View reflects this reality. Instead of fake agent cards, there's an "AGENT-11" section with a pulsing green dot and "Claude Code on MacBook." Below it, every project in my portfolio shows its health status, tier (NOW/NEXT/LATER), active task count, and last activity timestamp. If I haven't touched a project in 7+ days, it goes amber. If it has a blocker, it shows in red.

This is the honest picture of my development activity : one person, one AI system, many repos.

The Quarterly Goals Cadence

Building the dashboard wasn't enough. I needed a process for using it. So I wrote a quarterly goals cadence into both the Jamie Tasks spec and the Agent SOP.

Last week of every quarter:

  1. Review each yearly objective : assess status, write notes, adjust targets if needed
  2. Review outgoing quarter's KRs : mark what's achieved, note what missed and why
  3. Set incoming quarter's KRs : link each to a yearly objective, set measurable targets
  4. Q4 is special: also set next year's yearly objectives and review the BHAG

This turns goal-setting from an annual wishlist exercise into a living system. The dashboard makes progress visible; the cadence makes review habitual.

The Architecture That Makes It Work

Marvin (EC2) ─── Syncthing ───→ Mac Mini ─── sync script ───→ Neon Postgres
Ace, Echo, Merlin (Mini) ──────→ Mac Mini ─── sync script ───→ Neon Postgres
Jamie + Agent-11 (MacBook) ──→ Dashboard ←── reads from ────← Neon Postgres
                                    │
                                    └── HITL resolve → pending-changes.json → Mini picks up

The Mac Mini is the hub. Agents write to markdown files. The sync script parses them into the database. The dashboard reads from the database. When I resolve a HITL item, it writes back to a JSON file the sync script picks up. The loop closes.

I don't SSH into anything. I don't read log files. I open my browser, look at the Command View, resolve what needs resolving, and get back to building.

What I Learned

Hierarchy matters more than features. The old dashboard had most of the same data : goals, tasks, projects, agents. But without the six-layer hierarchy connecting them, it was just information, not insight. The new system makes the "so what?" visible at every level.

Your dashboard should answer questions, not display data. The seven questions I need answered every morning : What's waiting on me? What got done? Are we on track? : now have dedicated sections. I don't search for answers; they're right there.

HITL is a superpower for solo founders with AI agents. Without a formal request/resolution mechanism, you end up as an invisible bottleneck. With HITL, the bottleneck becomes visible, measurable, and actionable. I can see my average resolution time and optimize it.

Build for how you actually work, not how you think you should. I'm one person with ADHD, using Claude Code across many repos. The dashboard now reflects that reality instead of pretending I'm managing a team of independent bot services.

What's Next

  • Browser testing across all views
  • Drag-and-drop on the Execution Board
  • Deploy to production on Netlify
  • First quarterly goal setting session for Q2 2026
  • Merlin sync script integration with the new schema

The system isn't perfect yet. But for the first time, I can sit down, open one page, and know exactly what's happening across my entire portfolio in under 60 seconds. That's what Mission Control was always supposed to be.


Truth is the currency of the future. This system makes truth visible.

Share this post