<?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>FlowSkill launches on Product Hunt — November 3</title>
      <dc:creator>FlowSkill</dc:creator>
      <pubDate>Wed, 28 Oct 2026 04:45:15 +0000</pubDate>
      <link>https://dev.to/flowskill/flowskill-launches-on-product-hunt-november-3-1mii</link>
      <guid>https://dev.to/flowskill/flowskill-launches-on-product-hunt-november-3-1mii</guid>
      <description>&lt;p&gt;&lt;strong&gt;Tagline: Stop your AI agent from faking 'done'&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have watched an AI coding agent finish a task, report it as done, and leave behind code that did not actually do what was asked. The report looked confident. The work was not finished. That gap — between a claim of "done" and work that holds up — is what FlowSkill exists to close.&lt;/p&gt;

&lt;h2&gt;
  
  
  What FlowSkill is
&lt;/h2&gt;

&lt;p&gt;FlowSkill is an open-source gated build harness for AI coding agents. It wraps your agent in a six-gate pipeline. Every stage must pass before work advances — and a kill is a valid outcome. If a stage cannot pass, the work stops there instead of moving on with a polished-looking result.&lt;/p&gt;

&lt;p&gt;Two kinds of gate do the checking:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A mechanical gate (&lt;code&gt;flow.sh&lt;/code&gt;)&lt;/strong&gt; — checks that can be run and verified, not just asserted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A semantic gate (&lt;code&gt;SKILL.md&lt;/code&gt;)&lt;/strong&gt; — checks whether the work actually matches what was asked.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Either gate can stop the pipeline. That is the point: a stage that fails should fail loudly, early, rather than surfacing later as a bug someone else has to untangle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Receipts, not claims
&lt;/h2&gt;

&lt;p&gt;FlowSkill produces receipts: a record of what passed, what failed, and what was killed, so you can inspect the run instead of taking the agent's word for it. You can see the receipts approach on the project site at &lt;a href="https://flowskill.io.vn" rel="noopener noreferrer"&gt;https://flowskill.io.vn&lt;/a&gt;, along with a 75-second demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it works with
&lt;/h2&gt;

&lt;p&gt;Per the launch description, FlowSkill offers one-command install and works with Claude Code, Codex, and Cursor.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does not promise
&lt;/h2&gt;

&lt;p&gt;A gate can only check what it is built to check. FlowSkill does not guarantee that gated work is correct in every sense, and it does not replace reading the code, running it yourself, or reviewing what an agent produced. A passing gate means the stage met its checks — nothing more. If you try it and a gate blocks work you believe is fine, that friction is part of the design, and it is worth reporting as an issue so the checks can improve.&lt;/p&gt;

&lt;p&gt;FlowSkill is version 1.0.0. The repository is public at &lt;a href="https://github.com/manhquydev/flow-skill" rel="noopener noreferrer"&gt;https://github.com/manhquydev/flow-skill&lt;/a&gt; — you can read the code, the gates, and the receipts format before deciding whether it fits how you work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Launch day — November 3
&lt;/h2&gt;

&lt;p&gt;FlowSkill launches on Product Hunt on Tuesday, November 3. If you have ever been burned by a confident "done" that was not done, I would like to hear about it: what is the worst "done" your agent ever faked?&lt;/p&gt;

&lt;p&gt;You can follow the project on dev.to at &lt;a class="mentioned-user" href="https://dev.to/flowskill"&gt;@flowskill&lt;/a&gt;, and find the launch on Product Hunt on November 3. Feedback — especially cases where a gate got it wrong — is welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>21 harnesses, one hole</title>
      <dc:creator>FlowSkill</dc:creator>
      <pubDate>Sun, 25 Oct 2026 03:31:25 +0000</pubDate>
      <link>https://dev.to/flowskill/21-harnesses-one-hole-44dj</link>
      <guid>https://dev.to/flowskill/21-harnesses-one-hole-44dj</guid>
      <description>&lt;p&gt;I read the intake evaluations for 21 agent harnesses. All of them solve the same problem: running an agent. None of them solve the problem of verifying one.&lt;/p&gt;

&lt;p&gt;That is the hole. Every harness on the market can launch a loop, fetch context, and emit code. None of them define "done" as something you can check. The survey that collected these 21 candidates is blunt about it: support must be mechanical, or it is theater.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 21, in three tiers
&lt;/h2&gt;

&lt;p&gt;The survey sorts the candidates by how Flow's discipline layer would actually integrate with them — not by marketing claims, but by mechanism. Four criteria from the qualification SOP drive the tiers: mechanical enforcement (does the host honor a gate?), context hygiene (does the context arrive intact?), runtime portability (does the runner work there?), and shell awareness (can the agent parse an exit code?).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 1 — Native fit (3):&lt;/strong&gt; Cursor (&lt;code&gt;~/.cursor/skills&lt;/code&gt;), Zed Agent (&lt;code&gt;~/.agents/skills&lt;/code&gt;), Trae (Dual A/B). The host already has a skills directory. The runner drops in. Friction is low.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 2 — Project rule fit (16):&lt;/strong&gt; Roo Code / Cline (&lt;code&gt;.roomodes&lt;/code&gt; / &lt;code&gt;.clinerules&lt;/code&gt;), Windsurf (Cascade), Aider (test hook), OpenHands (Docker), Copilot VSCode Agent, Goose (&lt;code&gt;.goosehints&lt;/code&gt;), Amazon Q Developer &lt;code&gt;/dev&lt;/code&gt;, Devin (&lt;code&gt;DEVIN.md&lt;/code&gt;, cloud sandbox), SWE-agent (Docker/ACI), GitLab Duo Workflow, Sourcegraph Cody, Augment Code, Tabnine Chat, Plandex, PearAI, AutoCodeRover. Each has a plausible hook point — a rules file, a hooks mechanism, a container boundary. Each hook point needs verification.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tier 3 — Deferred halves + historical:&lt;/strong&gt; Copilot CLI, Zed Inline, Amazon Q CLI, GitLab Duo Chat, Tabnine Inline — deferred halves of 5 candidates already counted in Tier 1/Tier 2 (Zed, Copilot, Amazon Q, GitLab Duo, Tabnine), not counted again. And two historical: Void (deprecated), Mentat (archived). The archived ones are in the survey anyway, because forgetting what died is how you repeat it.&lt;/p&gt;

&lt;p&gt;Tiers describe integration friction, not quality. The tier just answers one question: what does it cost to make this harness honor a gate?&lt;/p&gt;

&lt;h2&gt;
  
  
  The one hole: exit codes
&lt;/h2&gt;

&lt;p&gt;Here is the mechanism the survey proposes, and the hole it exposes. Real support means the host agent actually invokes the runner — &lt;code&gt;bash skills/flow/runner/flow.sh &amp;lt;command&amp;gt;&lt;/code&gt; — parses the exit code, and halts when a gate fails (exit ≠ 0).&lt;/p&gt;

&lt;p&gt;The illusion version is simpler and far more common: drop a prompt file that says "follow Flow" into the repo, and the agent nods along. The agent has no bash execution. Or it has bash, runs the gate, gets exit code 1, and hallucinates that the gates passed. The file exists. The enforcement does not.&lt;/p&gt;

&lt;p&gt;Prompt file ≠ enforcement. That sentence is the entire article.&lt;/p&gt;

&lt;p&gt;Take Devin, candidate 10. Devin's sandbox is isolated in the cloud. The global path &lt;code&gt;~/.claude/skills/flow&lt;/code&gt; does not exist inside it — hypothesized &lt;code&gt;ENOENT&lt;/code&gt;. So the runner must be vendored in the repo at &lt;code&gt;skills/flow/runner/flow.sh&lt;/code&gt;. Whether Devin honors exit codes and halts its autonomous loop on a gate failure is a hypothesis. The survey flags it "Live Host Trials Pending." Nobody has run it yet.&lt;/p&gt;

&lt;p&gt;The hole is not a bug in any one harness. It is the gap between "I gave the agent the rules" and "the rules can stop the agent." One is a document. The other is a mechanism. Twenty-one harnesses, and the survey's honest read is that none of them ship verification as a first-class concept.&lt;/p&gt;

&lt;h2&gt;
  
  
  Support Thật vs Illusion
&lt;/h2&gt;

&lt;p&gt;The survey's framing, restated:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Thật (real support)&lt;/th&gt;
&lt;th&gt;Illusion (marketing theater)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Invocation&lt;/td&gt;
&lt;td&gt;Agent calls the runner directly&lt;/td&gt;
&lt;td&gt;A prompt file sits in the repo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exit code&lt;/td&gt;
&lt;td&gt;Parsed; non-zero halts the loop&lt;/td&gt;
&lt;td&gt;Ignored or never read&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gate failure&lt;/td&gt;
&lt;td&gt;Work stops&lt;/td&gt;
&lt;td&gt;Agent declares success anyway&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Evidence&lt;/td&gt;
&lt;td&gt;Receipts written to disk&lt;/td&gt;
&lt;td&gt;Vibes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;If your harness integration cannot produce row 1's behaviors, you do not have an integration. You have a README suggestion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;The runner is one command, no setup:&lt;br&gt;
&lt;/p&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;Source: &lt;a href="https://github.com/manhquydev/flow-skill" rel="noopener noreferrer"&gt;github.com/manhquydev/flow-skill&lt;/a&gt; (MIT). A 75-second demo with English narration and subtitles in 5 languages is on &lt;a href="https://flowskill.io.vn" rel="noopener noreferrer"&gt;flowskill.io.vn&lt;/a&gt;.&lt;/p&gt;

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

&lt;p&gt;Three things this article cannot claim:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;This is desk research.&lt;/strong&gt; Every verdict above comes from intake evaluations, not live trials. The survey repeats "Live Host Trials Pending," "hypothesized," and "unverified" throughout. I will not launder that into certainty.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No candidate is designated "Verified Supported."&lt;/strong&gt; That designation requires passing the Four-Point Live Verification Protocol in the survey's section 1.3. None have been run yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FlowSkill is a discipline layer, not an agent runtime.&lt;/strong&gt; Per ADR-0001 in the survey: "Flow owns the gates and the receipts, never the runtime." We do not replace your harness. We stand next to it with a kill switch and a paper trail.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Provisional verdicts are still useful — they tell you where to spend trial time first. Tier 1 first, Tier 2 with hypotheses, Tier 3 after something changes. But provisional is the honest word, and it stays until the trials run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;Agents are getting better at producing code that looks finished. That is exactly why verification matters more, not less. The better the output looks, the easier it is to accept without checking. Every harness vendor is racing on generation. Almost nobody is racing on gates.&lt;/p&gt;

&lt;p&gt;I write about this weekly in &lt;em&gt;Proof over vibes&lt;/em&gt;, the FlowSkill newsletter — verification debt, gate design, and what the live trials find once they run. If "done" should mean something you can check: &lt;a href="https://flowskillharnes.substack.com" rel="noopener noreferrer"&gt;https://flowskillharnes.substack.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Numbers in this article: 21 candidates: 3 Tier 1 + 16 Tier 2 + 2 historical; 5 Tier 3 entries are deferred halves of candidates already counted, from market-harness-survey.md (2026-10-14); 0.34.2 changelog entry (2026-10-15); tier criteria from docs/harness-qualification-process.md. Source repo: github.com/manhquydev/flow-skill.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <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>
