<?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: FlowSkill</title>
    <description>The latest articles on DEV Community by FlowSkill (@flowskill).</description>
    <link>https://dev.to/flowskill</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%2F4190758%2Fbd989259-1f08-47f0-b141-c6bc7d6c8ce8.png</url>
      <title>DEV Community: FlowSkill</title>
      <link>https://dev.to/flowskill</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/flowskill"/>
    <language>en</language>
    <item>
      <title>I stopped trusting my AI coding agent's "done" — so I built gates</title>
      <dc:creator>FlowSkill</dc:creator>
      <pubDate>Sat, 17 Oct 2026 16:36:28 +0000</pubDate>
      <link>https://dev.to/flowskill/i-stopped-trusting-my-ai-coding-agents-done-so-i-built-gates-1h8a</link>
      <guid>https://dev.to/flowskill/i-stopped-trusting-my-ai-coding-agents-done-so-i-built-gates-1h8a</guid>
      <description>&lt;p&gt;My coding agent kept telling me "done." The build was broken. The tests it claimed to pass didn't exist. I started calling these &lt;strong&gt;hollow completes&lt;/strong&gt;: the agent reports success, but nothing was actually verified.&lt;/p&gt;

&lt;p&gt;The problem isn't the model. It's that "done" was never defined as something checkable. So I defined it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;FlowSkill is a small open-source harness that sits between your coding agent and the word "done." Two kinds of gates:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Mechanical gates&lt;/strong&gt; (&lt;code&gt;flow.sh&lt;/code&gt;) — does it build? Do the tests pass? Does the linter stay quiet? Things a script can check without judgment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic gates&lt;/strong&gt; (&lt;code&gt;SKILL.md&lt;/code&gt;) — does the change actually do what was asked? This is the harder one, and it's where most harnesses give up and let the agent grade its own homework.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The key rule: &lt;strong&gt;a kill at a gate is a valid outcome.&lt;/strong&gt; If the work doesn't pass, it doesn't ship — no partial credit, no "mostly done."&lt;/p&gt;

&lt;h2&gt;
  
  
  Why existing tools didn't solve it
&lt;/h2&gt;

&lt;p&gt;I looked at 21 agent harnesses. Every single one let the agent evaluate its own work. That's like letting students write their own report cards. The failure mode is structural, not a prompt engineering problem.&lt;/p&gt;

&lt;p&gt;Benchmarks have the same disease from the other direction: agents score 90+ on examples they've memorized, then collapse to single digits on unseen tests. Memorized answers, not capability.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works in practice
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx @manhquy/flow-skill@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You describe the task. The agent works. Before anything is called "done," it runs &lt;code&gt;/flow check&lt;/code&gt;: mechanical gates first (fast, deterministic), then semantic review against the task definition. If a gate fails, the attempt dies there and the failure gets logged to &lt;code&gt;DEBT.md&lt;/code&gt; — a record of what didn't work, so you stop paying for the same dead ideas twice.&lt;/p&gt;

&lt;p&gt;There's also &lt;code&gt;/flow doctor&lt;/code&gt; (12 environment checks — the machine checks the machine before the model judges anything).&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The semantic gate is only as good as the task definition you write. Vague task in, vague verdict out.&lt;/li&gt;
&lt;li&gt;It adds minutes to each run. If you're prototyping something throwaway, the gates are overhead you don't need.&lt;/li&gt;
&lt;li&gt;9 stars on GitHub. This is early, and the edges are rough.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I'm writing this
&lt;/h2&gt;

&lt;p&gt;Not to sell you a tool. To name the problem: &lt;strong&gt;every AI-written line is a loan against future debugging time.&lt;/strong&gt; Someone — you, your teammate, future-you at 2 AM — pays it back with interest. Gates are just a way to pay some of it upfront, when it's cheap.&lt;/p&gt;

&lt;p&gt;Repo: github.com/manhquydev/flow-skill · MIT licensed. If you've been burned by hollow completes, I'd like to hear how you verify your agents' work.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;This is the first in a series on gated build harnesses. Next: "21 harnesses, one hole." For release notes and longer essays, subscribe to the newsletter (link in profile).&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
