Field note

Showing a private system in public

There's a live page on this site that visualizes my operator system from its own activity log. The hard part was never the visualization. It was deciding what honesty requires you to hide, index, or refuse to claim.

If you go to the Fleet Mission Control page, you'll see a handful of AI systems pulsing with real activity (Claude Code, Codex, a couple of local services) all coordinating through one small shared database. The architecture story behind it I've told elsewhere: it's a hub-and-spoke design where several tools cohere through a single SQLite file, no message bus, no cloud.

This note is about a different problem, the one the page can't explain about itself: how do you put real data from a private system onto a public page without leaking it, faking it, or quietly trimming it in a way that lies? The visualization was an afternoon. The honesty was the week.

The shared-truth insight is that coordination is a data problem, not an infrastructure one. The harder, quieter problem is that the data is real, and most of it isn't mine to show.

What's real, shown straight

The pulses are real events with real timestamps, including the idle gaps, which is why the replay visibly jumps instead of flowing like a heartbeat. The per-system counts, the database's table sizes and row counts, the portfolio aggregates (how many repos, how many active, what fraction have tests and CI), the snapshot dates: all of that is live as of the export timestamp shown on the page, pulled straight through with nothing in between. If a number is on the page and not marked otherwise, it's true, as of that capture.

What's anonymized, and exactly how

The activity log is the sensitive part: it names projects, and some of those names are internal, and some of the events are personal and simply not mine to put on a public page. So the export runs a rule: a project name passes through only if it already appears on the public portfolio; everything else becomes a stable project N, numbered by the order it first shows up. That choice is deliberate. Stable numbering preserves the two things the visualization actually needs (how many distinct projects, and how they coordinate across agents) while dropping the one thing it doesn't (which project). The work summaries get cut entirely, not redacted; even a trimmed summary carries too much shape. And dollar figures for AI spend are replaced with a 0–100 index against the peak month, so the trend survives while the magnitude never leaves the machine.

None of that is hidden from you. The page wears its provenance on its sleeve: a chip that says the data is a real export and when it was captured, a chip that says internal names are anonymized and costs are indexed, a label on the topology map admitting it's hand-drawn, a label on the replay confirming the pulses are real. A little truth-table in the "how to read this" section sorts every panel into live, annotated, or snapshot. The goal was never to look more impressive than it is; it was to make the seams visible so you can trust the parts that aren't seams.

The stories I didn't get to tell

This is the part I'm proudest of, because it's the part that's invisible in the finished page. A couple of compelling framings got cut for being unsupportable by the data.

"The fleet runs while you sleep." A great line, and I couldn't use it. The activity log is a bounded, finite window (the database prunes old rows), so the export holds real sessions, not a continuous 24/7 heartbeat. The data can't honestly carry an always-on claim, so the page doesn't make one; it shows the sessions that actually happened. "One person operates like an org" got cut too, true, but it describes a posture, not the architectural fact the picture actually demonstrates, and a visualization should argue what it can show.

That's the discipline the whole page is built on: a visualization is a claim, and a claim you can't back with the data in front of you is the same lying status line I distrust everywhere else, just prettier.

The honest limits

The pattern underneath all of it is the one I keep coming back to: the export defaults to safe, the unsafe variant is a flag explicitly marked never-to-ship, and the page tells you which parts to trust and which to read as illustration. Public-safe by construction, not by a nervous scrub at the end. Showing your work to strangers is mostly the art of being honest about what you're not showing them.

Adjacent reading

← Field notes · RSS