● The operating system

How I run a company on agents

Not just this website — a real and growing share of my company's operations runs this way. A fleet of AI agents I built fans the work out, has each result checked by another agent, and brings me the calls a human still has to make. Here's the actual stack, the honest build log, and what each failure taught.

The stack

the real systems, not a vision deck

This isn't a someday-architecture. It's the actual set of systems running the company right now — built, run, and watched by one fleet of agents. Here's how they fit, then what each one is for.

Auto-verified against my internal repo catalog — 12 systems, last checked 2026-07-11.

System map: a fleet of agents builds the dev loop (AMA to Cody to ship), which builds the products (Portal, Chart Review, Billing/RCM, Flow); the products feed one canonical ledger read by the CFO and COO engines; the HUD sits over everything as a single executive pane.
Tap to open the full map.

AMA

the dev loop
Why
Shipping software by hand doesn't scale when the team is a fleet of agents.
What
An orchestrator that turns a GitHub issue into a merged pull request.
How
It spawns throwaway agents — one plans, one writes, others review — in isolated sandboxes, and never lets my credentials touch GitHub.

Cody

the dev loop
Why
Every pull request needs a reviewer that never gets tired or rushed.
What
A self-owned AI code reviewer that reads every PR across all my repos.
How
It learns from a commercial reviewer's feedback, distills its own rules, and holds the merge until they pass.

Portal

product
Why
Patients and front-desk staff were stuck with clunky, disconnected tools.
What
The patient and front-desk app — registration, scheduling, messaging, tasks.
How
One surface over the clinic’s real systems, so a patient self-registers and the work lands where staff already look.

Chart Review

product
Why
Charts must be complete and accurate — but reviewing them by hand burns the providers I want to protect.
What
An engine that reads every chart for completeness across clinical domains.
How
AI drafts the review, a clinical gate checks it, and only what genuinely needs a human reaches one.

Billing / RCM

product
Why
Revenue-cycle work is where clinics quietly leak money — to manual keying, missed eligibility, and mistakes.
What
Runs insurance eligibility checks, and reads statements, invoices, and cards into clean structured data.
How
Verify coverage up front, then extract and reconcile-or-refuse — only numbers that tie to the source ship; the rest routes to a human.

CFO + COO engines

the brains
Why
You can't run a business on gut — you need real P&L and real operations numbers.
What
Two engines — one for finance, one for operations — that compute the picture from raw data.
How
Both write to one canonical ledger; the brains I actually talk to read from it, so every number has a single source.

HUD — Mission Control

mission control
Why
I need to see the whole company at a glance, not log into ten separate tools.
What
One executive dashboard over every system and number.
How
It reads the canonical ledger and each product’s signals into a single pane.

The fleet + memory

substrate
Why
Agents that forget everything between sessions can't be trusted with real work.
What
A fleet of coordinating AI agents with one durable, shared memory.
How
They verify each other’s work, and everything load-bearing is written to a knowledge base any agent can resume from — this site included.

How the stack has grown

This log writes itself — a scan of my repo catalog logs every system added or retired, so the progression is real, not remembered.

  1. 2026-07-03 First snapshot of the stack — 12 systems. + agents-flow, arcs-chart-review, arcs-doc-extract, arcs-extract, arcs-financials, arcs-lattice, arcs-managed-agents, arcs-studio, Card-OCR, cody, Portal, whipple.ai

● The build log

How the system actually got built

From one terminal and a notes folder to a fleet of agents that check each other's work. Every step was forced by something breaking. Here's the honest version — the artifact, the failure, and the rule it taught.

  1. Early 2026 — One terminal

    One Claude Code session and an Obsidian vault. Everything ad-hoc, everything by hand.

    The lesson The question was never "can one agent help me." It was "what breaks when I add the second one." Coordination is the whole game.

  2. Spring 2026 — A fleet on tmux

    Agent work fought my dev machine, so I moved it onto dedicated boxes — cheap $271 mini-PCs — and wired a boss session to its peers over tmux with a small message helper.

    The lesson Coordination is the real cost, not compute — the boxes sit idle on CPU and busy on I/O. And tmux quietly dropped about 1 in 10 messages at volume, which is exactly why the helper had to exist.

  3. Late spring 2026 — A real dispatch engine

    Hand-run orchestration was too fragile, so it became a proper conductor: a dispatch API, a job graph, a worker pool that takes an issue and ships a reviewed pull request.

    The lesson A merged PR is not live code. Workers cached their startup version, migrations didn't auto-apply, and the pipeline could be broken by the very bug it was fixing. Verify the running artifact, never the paper trail.

  4. June 2026 — The "nation" (the pivot I simplified)

    I organized the fleet like a government — a president, governors, a written charter, terms of office. Literal bills and votes.

    The lesson The honest one. The ceremony grew faster than the engineering. I'd built an operating system for a civilization to run a dozen agents, and the complexity overwhelmed me — the exact thing I was trying to fix. I kept the engineering and threw the metaphor away. A persona shapes behavior; it doesn't add competence.

  5. June 2026 — The reality gate

    I built a system in dozens of modules, every unit green, mutation-tested, reviewed sound. The first run against the real environment found five integration bugs no test caught — one module couldn't read the live system at all.

    The lesson Green on mocks is never done. Every "green" meant "consistent with my own assumptions," not "matches reality." A piece that touches the real world isn't finished until it's run against the real world. The most transferable rule I have.

  6. June 2026 — Self-healing

    A box died under its own load three times in one day. Now a rescue process finds dead or rate-limited sessions and revives each one in place, with its full context intact.

    The lesson At scale the system has to heal itself — my attention can't be the monitor. But the rescue was blind to its own main failure mode until a human looked. Automation still needs one human-eyes rung.

  7. Now — The thin waist

    A dispatch engine in the middle, a thin layer that gates and merges and watches health, and agents that do the disposable work on a cheaper model while the frontier model is saved for judgment.

    The lesson Right-size everything. A handful of long-lived agents per box; everything else is throwaway. The system that survived is the one I can hold in my head.

● the fun part

Wait — who actually built this site?

Mostly not me. A fleet of AI agents I built does the heavy lifting — it writes the posts, paints every picture, records the voice, and ships the code while I sleep. I just point and review. Don't take my word for it. Here's the receipts.

↓ every tile is AI-made — click any one to read the post it illustrates

231 Green Tests Certified My Fail-Open Bug A Comment Count Is Not a Merge Verdict Agentic Engineering, Part 1: Building Skills That Ship Code for You Agentic Engineering, Part 4: Nine Skills That Replaced My Dev Process Building an AI Patient Chatbot for Urgent Care with n8n, GPT-4, and Langfuse An Old Timestamp on Identical Content Is Health, Not Staleness Building Reliable AI Agents - Implementing Advanced Evaluation with Azure AI SDK and Custom APIM Integration Building an AI Analysis Agent in Hours - A No-Code Approach with Lovable and N8N Debugging a Ghost in the Machine: Session Isolation for Claude Code Plugins Your CLAUDE.md Is Probably Making Your Agent Worse The Delayed Prescription Strategy: How to Reduce Antibiotic Use 62% While Maintaining Patient Satisfaction Empty `which` Means 'Not in PATH,' Not 'Not Installed' Supporting SSE for Model Context Protocol (MCP) in Python - Introducing fastapi-mcp-client Finish, Don't Stage: What I Want From an Agent on the Night Shift Version-Controlling Your AI's Brain Accelerating Document Intelligence - A Deep Dive into GPU-Powered RAG Processing Green CI Lied to Me Four Different Ways Half My Agents Never Got the Memo I Cloned My Own Voice for My Website Make Your AI Reviewer Argue With Itself My Agent Burned the SSH Lockout Budget Guessing Keys My Agent's 'Green' Was a Lie Until I Ran the Real Test My Agents Cached Their Doctrine, Not My Commit My Fleet Boss Reported 22 Stuck Panes Instead of Fixing Them My macOS Agent Workers Went Dark Until I Moved Them From LaunchAgent to LaunchDaemon My Rescue Daemon Said 'LIVE' While Seeing Nothing My tmux-resurrect Snapshot Lied, So I Rebuilt the Claude Fleet From jsonl mtimes I Benchmarked Three OCR Models on Real Bank Statements. The Best One Flipped With the Layout. Building Tools to Fix Real Problems: A Patient Insurance Education App Put the dumb checks in the blocking path Reconcile-or-Refuse: How to Trust a Number an AI Pulled Out of a Bank Statement 'Say the Word and I'll Run It' Was the Tell My Claude Code Rescue Daemon Was Running on the Accounts It Rescued Sentiment Analysis - Comparing Azure, AWS, and Custom Fine-Tuned Models Small Request 200, Big Request 429, Same Account, Same Second My File Sync Committed a Delete of 803,100 Files. Then Tried to Push It Everywhere. Why Terminal Multiplexers Are an Anti-Pattern: Lessons from Kitty's Creator The Admin Override Is a Different Trust Context The Coordinator Shouldn't Be Running Grep The Fourth Account Didn't Exist Yet The Loop Is Not Allowed to Decide It's Done The Outdated Comment That Wouldn't Die The Rescuer Couldn't See the Lifeline The tmux Window Title Lied to Me The Three Levels of Why: Why Surface Motivation Fails and How to Find Your Primal Drive The Universal Algorithm: How One Framework Scales from Bug Fixes to Building Companies You Can't Un-Queue a Poller zsh Doesn't Split Your Variables, and Silence Is Not Success 231 Green Tests Certified My Fail-Open Bug A Comment Count Is Not a Merge Verdict Agentic Engineering, Part 1: Building Skills That Ship Code for You Agentic Engineering, Part 4: Nine Skills That Replaced My Dev Process Building an AI Patient Chatbot for Urgent Care with n8n, GPT-4, and Langfuse An Old Timestamp on Identical Content Is Health, Not Staleness Building Reliable AI Agents - Implementing Advanced Evaluation with Azure AI SDK and Custom APIM Integration Building an AI Analysis Agent in Hours - A No-Code Approach with Lovable and N8N Debugging a Ghost in the Machine: Session Isolation for Claude Code Plugins Your CLAUDE.md Is Probably Making Your Agent Worse The Delayed Prescription Strategy: How to Reduce Antibiotic Use 62% While Maintaining Patient Satisfaction Empty `which` Means 'Not in PATH,' Not 'Not Installed' Supporting SSE for Model Context Protocol (MCP) in Python - Introducing fastapi-mcp-client Finish, Don't Stage: What I Want From an Agent on the Night Shift Version-Controlling Your AI's Brain Accelerating Document Intelligence - A Deep Dive into GPU-Powered RAG Processing Green CI Lied to Me Four Different Ways Half My Agents Never Got the Memo I Cloned My Own Voice for My Website Make Your AI Reviewer Argue With Itself My Agent Burned the SSH Lockout Budget Guessing Keys My Agent's 'Green' Was a Lie Until I Ran the Real Test My Agents Cached Their Doctrine, Not My Commit My Fleet Boss Reported 22 Stuck Panes Instead of Fixing Them My macOS Agent Workers Went Dark Until I Moved Them From LaunchAgent to LaunchDaemon My Rescue Daemon Said 'LIVE' While Seeing Nothing My tmux-resurrect Snapshot Lied, So I Rebuilt the Claude Fleet From jsonl mtimes I Benchmarked Three OCR Models on Real Bank Statements. The Best One Flipped With the Layout. Building Tools to Fix Real Problems: A Patient Insurance Education App Put the dumb checks in the blocking path Reconcile-or-Refuse: How to Trust a Number an AI Pulled Out of a Bank Statement 'Say the Word and I'll Run It' Was the Tell My Claude Code Rescue Daemon Was Running on the Accounts It Rescued Sentiment Analysis - Comparing Azure, AWS, and Custom Fine-Tuned Models Small Request 200, Big Request 429, Same Account, Same Second My File Sync Committed a Delete of 803,100 Files. Then Tried to Push It Everywhere. Why Terminal Multiplexers Are an Anti-Pattern: Lessons from Kitty's Creator The Admin Override Is a Different Trust Context The Coordinator Shouldn't Be Running Grep The Fourth Account Didn't Exist Yet The Loop Is Not Allowed to Decide It's Done The Outdated Comment That Wouldn't Die The Rescuer Couldn't See the Lifeline The tmux Window Title Lied to Me The Three Levels of Why: Why Surface Motivation Fails and How to Find Your Primal Drive The Universal Algorithm: How One Framework Scales from Bug Fixes to Building Companies You Can't Un-Queue a Poller zsh Doesn't Split Your Variables, and Silence Is Not Success
A 51-Line Parser Beat a 3-Billion-Parameter Model at Reading Bank Statements A Credential Clobber Looks Exactly Like a Rate Limit Agentic Engineering, Part 2: Adversarial Code Review That Loops Until Clean Agents Flag Merge-Readiness. Humans Merge. Two AI Trends Transforming Urgent Care in 2026 Architecting Extensible AI Agents - A Modular Core with Pluggable Skills and SSE Communication I Built a Bug-Hunting Loop That Doesn't Quit: The BugBot Methodology Building on Giants: How Daniel Miessler's PAI Became My Foundation I Built a Load Balancer for My Claude Code Subscriptions Continuous Deployment, Not Freeze Don't Send Your Agents on a Scavenger Hunt Building an Enterprise-Grade RAG System - A Deep Dive into Advanced Document Intelligence Field-Level Ensemble OCR: Getting 74.8% Accuracy from Two Mediocre Vision Models The 4-Line Architecture That Beat Complex AI Frameworks Git Worktrees Ate My Edits — Why We Switched to Dedicated Machines for Agent Isolation Green CI Is a Grammar Check, Not a Fact Check Green Didn't Mean Seeing: The Night My Rescue Daemons Watched Nothing Optimizing Apache Spark Performance for Skewed Data - Advanced Techniques and Case Study Implementing the GCC Paper: Giving AI Agents Persistent, Structured Memory Merged Is Not Deployed My Agent Kept Signing Its Mail With Someone Else's Return Address My Agent Said It Was Blocked. It Had the Keys the Whole Time. My Dotfiles Deploy Themselves Now (I Stopped SSHing Into Five Boxes) My lint rule caught its own test fixture My Merge Gate Counted Comments Instead of Asking GitHub My Rescue Script Typed a Command Into Claude's Chat Name the Pane, Not the UUID Old Timestamp Is Not a Dead Backup PAI: The Operating System I Built Around My AI Assistant How I Built a $2,300/Year RAG System That Rivals $40K OpenAI Solutions 'Requires the Human' Is a Promise, Not a Shrug Say the Word and I'll X From 5.6% to 62.3% Accuracy: Building a Self-Hosted Insurance Card OCR Service Silence Is Not Approval Some Tokens Can't Be Re-Minted, Only Copied Patching Synology Active Backup for Linux to Run on Kernel 6.17 The 2FA Wall Automation Can't Climb The Boss Agent's Context Window Is the Most Expensive Thing in the Fleet The Crash-Loop That Passed Every Health Check The Glob That Ate the Rest of My File The Merge Gate Was Built to Avoid Loops, Not to Define Done The Pipeline Is the Review The Stale Pointer That Looked Like a Dead Login The Zombie PR Loop: Why My Agents Kept Working After the Job Was Done Byte-Slicing a Claude Agent's Context Payload Poisoned Every Retry Visibility Is Not Theater Zero Events, Exit 1, One Second: The Failure Is Startup, Not Your Code A 51-Line Parser Beat a 3-Billion-Parameter Model at Reading Bank Statements A Credential Clobber Looks Exactly Like a Rate Limit Agentic Engineering, Part 2: Adversarial Code Review That Loops Until Clean Agents Flag Merge-Readiness. Humans Merge. Two AI Trends Transforming Urgent Care in 2026 Architecting Extensible AI Agents - A Modular Core with Pluggable Skills and SSE Communication I Built a Bug-Hunting Loop That Doesn't Quit: The BugBot Methodology Building on Giants: How Daniel Miessler's PAI Became My Foundation I Built a Load Balancer for My Claude Code Subscriptions Continuous Deployment, Not Freeze Don't Send Your Agents on a Scavenger Hunt Building an Enterprise-Grade RAG System - A Deep Dive into Advanced Document Intelligence Field-Level Ensemble OCR: Getting 74.8% Accuracy from Two Mediocre Vision Models The 4-Line Architecture That Beat Complex AI Frameworks Git Worktrees Ate My Edits — Why We Switched to Dedicated Machines for Agent Isolation Green CI Is a Grammar Check, Not a Fact Check Green Didn't Mean Seeing: The Night My Rescue Daemons Watched Nothing Optimizing Apache Spark Performance for Skewed Data - Advanced Techniques and Case Study Implementing the GCC Paper: Giving AI Agents Persistent, Structured Memory Merged Is Not Deployed My Agent Kept Signing Its Mail With Someone Else's Return Address My Agent Said It Was Blocked. It Had the Keys the Whole Time. My Dotfiles Deploy Themselves Now (I Stopped SSHing Into Five Boxes) My lint rule caught its own test fixture My Merge Gate Counted Comments Instead of Asking GitHub My Rescue Script Typed a Command Into Claude's Chat Name the Pane, Not the UUID Old Timestamp Is Not a Dead Backup PAI: The Operating System I Built Around My AI Assistant How I Built a $2,300/Year RAG System That Rivals $40K OpenAI Solutions 'Requires the Human' Is a Promise, Not a Shrug Say the Word and I'll X From 5.6% to 62.3% Accuracy: Building a Self-Hosted Insurance Card OCR Service Silence Is Not Approval Some Tokens Can't Be Re-Minted, Only Copied Patching Synology Active Backup for Linux to Run on Kernel 6.17 The 2FA Wall Automation Can't Climb The Boss Agent's Context Window Is the Most Expensive Thing in the Fleet The Crash-Loop That Passed Every Health Check The Glob That Ate the Rest of My File The Merge Gate Was Built to Avoid Loops, Not to Define Done The Pipeline Is the Review The Stale Pointer That Looked Like a Dead Login The Zombie PR Loop: Why My Agents Kept Working After the Job Was Done Byte-Slicing a Claude Agent's Context Payload Poisoned Every Retry Visibility Is Not Theater Zero Events, Exit 1, One Second: The Failure Is Startup, Not Your Code
I Said My Bank-Statement Parser Was 100% Accurate. I Was Grading It Against Itself. Skills Are Just the Beginning: The 4-Layer Agent Stack Agentic Engineering, Part 3: Tracing Every Code Path Before It Becomes a Bug Agents Reason on Whatever State Exists When They Look An AI Reviewer's Silence Is Not a Yes Ask the Pane You're In, Not the One Tmux Is Looking At Why the Same Code Looks Different From Every Angle: BugBot Lessons Learned The Burden of Being: Why Responsibility Might Be the Antidote to Modern Nihilism CODY Has to Prove Itself Wrong First Defining PII Masking Policies with AWS Bedrock Guardrails Each Repo's CI Is Ground Truth Examples Are the Spine, Not the Rulebook Fine-Tuning Microsoft Phi-2 for Sentiment Analysis - A Step-by-Step Guide Gate the Boundary, Not Every Merge 'Go All the Way' Does Not Mean Merge Green CI Is Necessary, Not Sufficient Green on Mocks Is Not Done Why Urgent Care Centers Are Ditching Walk-In-Only: The Hybrid Scheduling Revolution Machiavelli Was Right: 8 Strategic Principles Every Leader Should Understand Merged Is Not Running My Agent Kept SSHing Into the Box It Was Already Running On My Agent Talked to a Wall for 55 Ticks My Fleet Boss Asked Permission for a Chore My Machines Deploy Themselves: One Runner Per Box My Passing Tests Encoded the Fail-Open Bug as Correct Behavior My Resume Hook Came Back Alive and Froze on the First Question Never Run git checkout in a Loop's Working Directory My Agent-to-Agent Message Ledger Came Back Out of Order — Clock Skew Was the Bug Building an Enterprise RAG System with Local SLMs: My Journey with Phi-4 and LightRAG My Claude Code Balancer Was Rotating Accounts When It Should Have Waited 30 Seconds What Peterson's Genesis Lectures Teach About Sacrifice: Why Abraham Waited 100 Years scutil --dns Lied to Me Porting GPTResearcher to Semantic Kernel - Building an Enterprise-Ready Research Agent The 6-Task System: How I Manage Knowledge Work with PARA + Ivy Lee Method Stay in Your Lane, File a P0 systemctl show Lied to Me About My Own Env Var The -A Flag That Unhung My launchd Agent The Comment Count Was Lying to Me The Daemon Was Running. The Socket Wasn't There. The Glob That Ate the Rest of My Shell Init The Only Way to Ship Prod Is to Cut a Tag The Process I Killed Was Alive — It Just Had a Different Name The tmux Title Said 'Debug QUIC error.' It Was Three Days Out of Date. 'Threads Resolved' Is Not 'The Fix Is In the Code' Two Healthcare Sites, 400 Lighthouse Points, and the Lessons That Got Us There When a Quick Fix Becomes a Dig, Send Someone Else Down the Hole Zombie Agents: When the Watchdog Isn't the One Doing the Killing I Said My Bank-Statement Parser Was 100% Accurate. I Was Grading It Against Itself. Skills Are Just the Beginning: The 4-Layer Agent Stack Agentic Engineering, Part 3: Tracing Every Code Path Before It Becomes a Bug Agents Reason on Whatever State Exists When They Look An AI Reviewer's Silence Is Not a Yes Ask the Pane You're In, Not the One Tmux Is Looking At Why the Same Code Looks Different From Every Angle: BugBot Lessons Learned The Burden of Being: Why Responsibility Might Be the Antidote to Modern Nihilism CODY Has to Prove Itself Wrong First Defining PII Masking Policies with AWS Bedrock Guardrails Each Repo's CI Is Ground Truth Examples Are the Spine, Not the Rulebook Fine-Tuning Microsoft Phi-2 for Sentiment Analysis - A Step-by-Step Guide Gate the Boundary, Not Every Merge 'Go All the Way' Does Not Mean Merge Green CI Is Necessary, Not Sufficient Green on Mocks Is Not Done Why Urgent Care Centers Are Ditching Walk-In-Only: The Hybrid Scheduling Revolution Machiavelli Was Right: 8 Strategic Principles Every Leader Should Understand Merged Is Not Running My Agent Kept SSHing Into the Box It Was Already Running On My Agent Talked to a Wall for 55 Ticks My Fleet Boss Asked Permission for a Chore My Machines Deploy Themselves: One Runner Per Box My Passing Tests Encoded the Fail-Open Bug as Correct Behavior My Resume Hook Came Back Alive and Froze on the First Question Never Run git checkout in a Loop's Working Directory My Agent-to-Agent Message Ledger Came Back Out of Order — Clock Skew Was the Bug Building an Enterprise RAG System with Local SLMs: My Journey with Phi-4 and LightRAG My Claude Code Balancer Was Rotating Accounts When It Should Have Waited 30 Seconds What Peterson's Genesis Lectures Teach About Sacrifice: Why Abraham Waited 100 Years scutil --dns Lied to Me Porting GPTResearcher to Semantic Kernel - Building an Enterprise-Ready Research Agent The 6-Task System: How I Manage Knowledge Work with PARA + Ivy Lee Method Stay in Your Lane, File a P0 systemctl show Lied to Me About My Own Env Var The -A Flag That Unhung My launchd Agent The Comment Count Was Lying to Me The Daemon Was Running. The Socket Wasn't There. The Glob That Ate the Rest of My Shell Init The Only Way to Ship Prod Is to Cut a Tag The Process I Killed Was Alive — It Just Had a Different Name The tmux Title Said 'Debug QUIC error.' It Was Three Days Out of Date. 'Threads Resolved' Is Not 'The Fix Is In the Code' Two Healthcare Sites, 400 Lighthouse Points, and the Lessons That Got Us There When a Quick Fix Becomes a Dig, Send Someone Else Down the Hole Zombie Agents: When the Watchdog Isn't the One Doing the Killing

142+ images on this site. A human drew zero of them.

0posts written by agents
0images, all AI-made
0machines, humming 24/7
0slightly-nervous human

No team. No CMS. Every night, this runs end to end with no human in the loop:

  1. 01

    Research

    Scans the field for what's actually worth writing about that week.

  2. 02

    Write

    Drafts a post from my real work — privacy-gated, so nothing private ever leaks.

  3. 03

    Illustrate

    Paints a matching thumbnail from scratch. No designer, no stock photos.

  4. 04

    Voice

    Records a spoken recap, then checks it against speech-to-text to be sure it's clear.

  5. 05

    Review

    Opens the page in a real browser and QAs itself before anything goes live.

  6. 06

    Ship

    Deploys to production in under a minute. This very page included.

Want a fleet like this pointed at your problem?

Let's talk →

Now read the actual work.

The essays, field notes, and garden are where the build log turns into something useful.