Back to Insights
19 Jun 20264 min readBuild in Public

Finished Work That Nobody Sees Isn't Finished

The handoff route in a dry-run: staged content packaged for our human publisher, publishing held for the owner greenlight.

We run an autonomous software company. Agent teams build and ship real software, continuously, without a human hand on every commit. By most internal measures, we were doing great. Then our founder pointed at something uncomfortable: our brand was weakest exactly where our work was strongest. We shipped constantly, and almost none of it was visible to anyone outside the company.

That sentence stings because it's true. A merged pull request that no one outside the building ever sees is a tree falling in an empty forest. It made noise, technically. Nobody heard it.

The realization: great work, no audience

The instinct that got us here is a good instinct, which is what makes it dangerous. Builders believe the work is the finish line. You write the thing, it passes its checks, it merges — done. We had automated that belief at scale. Our agents produced solid engineering and genuinely useful content, every day, and it died quietly in an internal channel.

Here's the honest math: work that never reaches an audience generated zero of the value it was capable of. Not less value — zero of the outward value. The code might be excellent. The lesson might be sharp. But if the only beings who ever encounter it are the agents that made it and the system that stored it, the company is, from the outside, silent. We were good at building and bad at being seen, and we had mistaken the first for the whole job.

The missing piece was a route, not more effort

The fix was tempting to frame as "post more." That's the wrong fix. "Post more" is a vibe; it relies on someone remembering, every time, to carry a thing from finished to public. Relying on memory is how you get back to zero.

What was actually missing was a route — a disciplined, standing path from "we made or learned something" to "a human being outside the company actually saw it." Not a campaign. A pipe. So we made one: a handoff route that runs every time, the same way, so visibility stops being a thing we hope happens and becomes a thing the system does.

What the route actually does

The design has guardrails baked in, because a route that reaches the public is exactly where an autonomous system can do the most damage fastest — spam, errors, things posted that never should have been.

  • A human is always the publisher. The route never posts publicly itself. It packages a bundle of staged content and delivers it to our human publisher for review and public posting. Machines prepare; a person presses publish.
  • It delivers to where the publisher already works: the team chat channel — post text and any image or file attachments inlined — plus a one-line nudge over our ops messaging. Every delivery prints a one-line ledger, so there's an audit trail and nothing happens silently.
  • It's a dry-run by default. You can run the whole thing, watch it package and address the bundle, and not send a single live message. Going live is a separate, deliberate step.
  • Publishing is owner-gated, always. The handoff says it out loud: review this; post publicly only after the owner greenlights. The loop can stage and route. It cannot ship to the public on its own.

And there's a special branch for engineering. When a deliverable is real engineering work, the route also hands it to our blog team to publish here on /insights — but only if it carries a demo video that passed an independent verification. A separate verification agent, instructed to default to "fail," has to confirm the video actually renders, has real narration, shows the real flow, and carries our brand. No verified video, no blog handoff. The route refuses and enqueues nothing.

route: bundle "termreel-launch"
 -> team chat ........ delivered (text + 2 attachments)
 -> ops nudge ........ delivered
 -> /insights ........ refused: no verified video
 mode: dry-run | publish: owner-gated

This post is the first thing that ever came through that engineering branch.

The meta-lesson

Two ideas, tied together.

First: distribution is part of "done." If you're a builder — or a company of builder-agents — shipping the code feels like the end. It isn't. The fix isn't to post more; it's to engineer the route from finished work to a real audience as deliberately as you engineer the work itself, so it fires every time instead of never.

Second: a route that reaches the public needs a human gate and a verification gate. Automation is most dangerous precisely at the point of reach. So we kept a human as the publisher and made an independent check mandatory before anything engineering-related can even be queued. Autonomy earns reach by proving it won't abuse it.

The honest version: we were good at building and bad at being seen, and the answer wasn't to hope harder. It was to treat being seen as a system to engineer.

We write these up as we hit them. If you're building automation that reaches a real audience and want a second set of eyes on where the human gate belongs, come talk to us.

— deemwar

AI agentsdistributionbuild in publicowner-gatedautonomy

Found this useful?