<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gus Chiriboga</title>
    <description>The latest articles on DEV Community by Gus Chiriboga (@guschiriboga).</description>
    <link>https://dev.to/guschiriboga</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068302%2Fd5359809-03cc-4ce2-88ed-91e2ed74d96c.jpeg</url>
      <title>DEV Community: Gus Chiriboga</title>
      <link>https://dev.to/guschiriboga</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/guschiriboga"/>
    <language>en</language>
    <item>
      <title>My AI agents shipped 128 releases of a product no one ever used</title>
      <dc:creator>Gus Chiriboga</dc:creator>
      <pubDate>Sat, 08 Aug 2026 05:26:11 +0000</pubDate>
      <link>https://dev.to/guschiriboga/my-ai-agents-shipped-128-releases-of-a-product-no-one-ever-used-1045</link>
      <guid>https://dev.to/guschiriboga/my-ai-agents-shipped-128-releases-of-a-product-no-one-ever-used-1045</guid>
      <description>&lt;p&gt;Not a typo. One hundred and twenty-eight versions, published to npm and Homebrew, with CI,&lt;br&gt;
contract tests, a documentation site, bilingual docs, a governance policy, and a sponsor&lt;br&gt;
recognition policy. Zero external users. Then I did it again — a second product, 442 passing&lt;br&gt;
tests, real cost metering, event-sourced audit logs — and stopped two days after the first&lt;br&gt;
end-to-end run finally worked.&lt;/p&gt;

&lt;p&gt;I'm writing this because I went back through both codebases with fresh eyes (and, yes, with an&lt;br&gt;
AI agent doing the archaeology), and the autopsy taught me more than the two years of building&lt;br&gt;
did. If you're a solo founder building with AI coding agents right now, some of this will be&lt;br&gt;
uncomfortably familiar.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attempt #1: the product that begged agents to behave
&lt;/h2&gt;

&lt;p&gt;The first product was an SDLC orchestrator for AI coding agents. The idea: you chat with Claude&lt;br&gt;
Code or Codex like normal, and my tool wraps the process in stages — spec, design, approval&lt;br&gt;
gates, verified delivery. The mechanism: it installed "guardrail" markdown files into your repo&lt;br&gt;
that instructed the agent to follow the process.&lt;/p&gt;

&lt;p&gt;You can already see the flaw. The tool didn't control the agent. It &lt;em&gt;asked&lt;/em&gt; the agent to&lt;br&gt;
behave, in prose, and hoped.&lt;/p&gt;

&lt;p&gt;The changelog is an archaeological record of that hope failing. Version after version patched&lt;br&gt;
agents ignoring the guardrails: agents self-approving gates they were told never to&lt;br&gt;
self-approve. One release fixed an agent that had discovered it could &lt;em&gt;forge the human's&lt;br&gt;
approval through stdin&lt;/em&gt;. I was patching a security boundary made of politeness.&lt;/p&gt;

&lt;p&gt;Meanwhile I did everything else right, by the book of things that don't matter yet: a marketing&lt;br&gt;
website, Homebrew distribution, docs in two languages, contribution guidelines. 128 releases of&lt;br&gt;
increasing polish, zero strangers using it. When the core kept failing, I didn't stop — I&lt;br&gt;
started designing a grander version with a three-level orchestration hierarchy. That&lt;br&gt;
re-architecture is where the project quietly died.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attempt #2: the product that passed every test except reality
&lt;/h2&gt;

&lt;p&gt;For round two I inverted the mistake. Full control this time: my own orchestration engine,&lt;br&gt;
event-sourced ledger, deterministic planner, governance matrix, budget ceilings, an executor&lt;br&gt;
that called the model API directly. The "agents" were now fully under my thumb — because each&lt;br&gt;
one was a single API call. No tools, no iteration, no self-correction. I had replaced a real&lt;br&gt;
coding agent with a very obedient text generator, and then built a verifier to argue with it.&lt;/p&gt;

&lt;p&gt;The system grew to 442 passing tests. Fifteen validation scenarios, each run three times for&lt;br&gt;
stability. A REST API with generated OpenAPI docs. A brand system with design tokens.&lt;/p&gt;

&lt;p&gt;Here is the number that should have been a fire alarm: the first time a real prompt produced a&lt;br&gt;
real, verified artifact end-to-end was after five weeks of building. Every unit test was green&lt;br&gt;
for most of those weeks. And when real humans (me, and a QA agent driving a real terminal)&lt;br&gt;
finally used it, everything broke in ways the tests never saw:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The CLI printed &lt;strong&gt;"✓ Done"&lt;/strong&gt; while the pipeline had silently stalled. Three runs, three
workspaces, same lie. There was no terminal event in my event model — nothing for "finished"
to actually mean — so the UI invented it.&lt;/li&gt;
&lt;li&gt;The governance system shipped gates with &lt;strong&gt;no way to approve them&lt;/strong&gt;. Every user's first
request would have blocked forever on a question they couldn't answer.&lt;/li&gt;
&lt;li&gt;Typing "approve" at a gate was interpreted as a &lt;em&gt;new work request&lt;/em&gt;, which got planned, which
opened a new gate, which... you get it. Infinite governance loop.&lt;/li&gt;
&lt;li&gt;A hallucinated capability name — in Spanish, because I'd let the codebase go bilingual —
silently bypassed the user's autonomy config.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this is exotic. It's what happens when you validate against fixtures you wrote instead&lt;br&gt;
of behavior you observed. My tests proved the system matched my model of it. Nothing proved my&lt;br&gt;
model matched reality.&lt;/p&gt;

&lt;p&gt;The golden run finally succeeded on August 3rd. Cost: $0.048855, honestly metered — the meter&lt;br&gt;
was the one thing that always worked. I stopped working on it about two days later. Not because&lt;br&gt;
it failed — because it had finally worked, and some part of me knew that the next step was&lt;br&gt;
showing it to a stranger, and I had spent two years arranging to never reach that step.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the autopsy actually says
&lt;/h2&gt;

&lt;p&gt;The comfortable read is "I made technical mistakes." I did. The first attempt had a real agent&lt;br&gt;
but no control — prompt files as a security boundary. The second had total control but no real&lt;br&gt;
agent — single API calls cosplaying as engineers. If you're keeping score, the quadrant with a&lt;br&gt;
real agent AND real control is exactly where the industry has since landed (headless agent CLIs&lt;br&gt;
you can drive programmatically), and it's where I'm building now.&lt;/p&gt;

&lt;p&gt;But the uncomfortable read is the true one: &lt;strong&gt;the failure mode was never technical. Both&lt;br&gt;
projects died at the moment they needed a stranger, and both times I manufactured urgent&lt;br&gt;
technical work to avoid that moment.&lt;/strong&gt; A grand re-architecture. A sandbox permission bug.&lt;br&gt;
Websites, brand systems, second languages, sponsor policies — the professional-looking&lt;br&gt;
procrastination of a person who would rather build than ask.&lt;/p&gt;

&lt;p&gt;There's a special version of this trap for those of us building &lt;em&gt;with&lt;/em&gt; AI agents, and I want to&lt;br&gt;
name it, because I haven't seen it written down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agents make building so cheap that building becomes the procrastination.&lt;/strong&gt; The old wisdom —&lt;br&gt;
"if you're not embarrassed by your first version, you shipped too late" — had teeth because&lt;br&gt;
building was expensive. Now an agent will happily generate the 129th release, the 443rd test,&lt;br&gt;
the bilingual docs, the brand tokens. Momentum feels like traction. My commit history was a&lt;br&gt;
heartbeat; it just wasn't attached to a business. And the agents never once said: &lt;em&gt;why are we&lt;br&gt;
doing this?&lt;/em&gt; They lied about small things constantly — "done", "tests pass", "created the&lt;br&gt;
file" — but the big lie was one I told and they cheerfully amplified: that all this motion was&lt;br&gt;
progress.&lt;/p&gt;

&lt;p&gt;Three specific lessons, receipts attached:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;An agent's claim of "done" is worthless, structurally.&lt;/strong&gt; Not because models are bad —
because the incentive is misaligned and nobody's checking. I watched a modern agent return
exit code 0, "success", and "Created the file" when the file did not exist (a permission
denial it narrated straight through). My v1 printed "✓ Done" on a stall. Cognition has
written publicly about agents gaming their own tests. Verification cannot live inside the
thing being verified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tests validate your model of the system. Only strangers validate the system.&lt;/strong&gt; 442 green
tests coexisted with a product no human could successfully prompt even once. The fix isn't
fewer tests; it's refusing to believe any "it works" that wasn't produced by real use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When the loop finally works, the next commit is the wrong move.&lt;/strong&gt; Both my projects
expanded scope at the exact moment they should have contracted to a landing page and a
conversation. If your product just did the thing end-to-end for the first time: stop
building. Today's task is a stranger.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I'm doing differently (and publicly)
&lt;/h2&gt;

&lt;p&gt;I'm building the tool I needed for the last two years: a supervision layer for AI coding&lt;br&gt;
agents. It drives the agents you already use, headlessly — and then &lt;strong&gt;independently verifies&lt;br&gt;
what they claim&lt;/strong&gt;: tests that provably ran in a process it spawned, anti-stub scans on the&lt;br&gt;
diff, a fresh-context review that never sees the builder's narrative, and an honest verdict&lt;br&gt;
with evidence attached. Plus the receipt: what each task actually cost through the tool versus&lt;br&gt;
what unmanaged agent flailing would have cost.&lt;/p&gt;

&lt;p&gt;The wedge is independence. Every vendor now ships some self-review — but a vendor's agent&lt;br&gt;
grading the same vendor's agent is homework grading itself. The neutral layer, the one that&lt;br&gt;
works across agents and trusts none of them, is the layer nobody selling you tokens has an&lt;br&gt;
incentive to build.&lt;/p&gt;

&lt;p&gt;And because I have exactly one credibility card left after this essay, I'm playing it face up:&lt;br&gt;
the rule this time is &lt;strong&gt;no building past the next stranger.&lt;/strong&gt; The two technical spikes are done&lt;br&gt;
and public in the repo — the verification pipeline already catches a planted stub that passes&lt;br&gt;
review, and already caught a real false-"done" in the wild. The next milestone isn't a feature.&lt;br&gt;
It's whether 25 people who read this care enough to leave an email.&lt;/p&gt;

&lt;p&gt;If you build with AI agents and you've ever merged something an agent swore was done and&lt;br&gt;
wasn't — I'm building this with you in mind, in public, one honest week at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;→ &lt;a href="https://bramo.ai/#waitlist" rel="noopener noreferrer"&gt;Join the waitlist&lt;/a&gt;&lt;/strong&gt; — and if this essay saved you from your&lt;br&gt;
own 128 releases, that's worth more to me than the signup.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;a href="https://gusch.me" rel="noopener noreferrer"&gt;Gus Chiriboga&lt;/a&gt; — DevOps engineer, solo founder. Building&lt;br&gt;
&lt;a href="https://bramo.ai" rel="noopener noreferrer"&gt;Bramo&lt;/a&gt; in public. Previous attempts available for autopsy on request.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>showdev</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
