<?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: Claudio Cesar Esteffan Sepulveda</title>
    <description>The latest articles on DEV Community by Claudio Cesar Esteffan Sepulveda (@ccesteffan).</description>
    <link>https://dev.to/ccesteffan</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%2F4069926%2Fee85b6bc-b847-4523-9352-b60a36d7f78f.jpg</url>
      <title>DEV Community: Claudio Cesar Esteffan Sepulveda</title>
      <link>https://dev.to/ccesteffan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ccesteffan"/>
    <language>en</language>
    <item>
      <title>The Independent-Checker Pattern: Why Your AI Coding Agent Should Not Review Its Own Code</title>
      <dc:creator>Claudio Cesar Esteffan Sepulveda</dc:creator>
      <pubDate>Sun, 09 Aug 2026 13:56:32 +0000</pubDate>
      <link>https://dev.to/ccesteffan/the-independent-checker-pattern-why-your-ai-coding-agent-should-not-review-its-own-code-1dk4</link>
      <guid>https://dev.to/ccesteffan/the-independent-checker-pattern-why-your-ai-coding-agent-should-not-review-its-own-code-1dk4</guid>
      <description>&lt;p&gt;Claude Code (and every other agentic coding tool) has the same structural problem: the model that writes the plan is often the same model that approves it. No adversary, no second opinion, just one context nodding along with itself.&lt;/p&gt;

&lt;p&gt;I ran into this directly while building an automation-heavy Obsidian vault with a fleet of subagents. A "Leader" agent would draft a plan, then immediately bless its own plan as sound. Bugs that should have been obvious sailed through, because nothing in the loop was actually incentivized to disagree.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern
&lt;/h2&gt;

&lt;p&gt;Separate the agent that writes from the agent that checks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Writer&lt;/strong&gt; - drafts the plan/code, has full context on the problem, is optimizing for "this works."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Checker&lt;/strong&gt; - sees only the spec and the diff, never the writer's reasoning, is optimizing for "find what's wrong with this."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The checker's context window never includes the writer's justification. That's the whole trick. If the checker can see "here's why I did it this way," it anchors on that explanation instead of independently verifying the change against the spec.&lt;/p&gt;

&lt;h2&gt;
  
  
  A minimal version
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Writer produces a spec (even a short one) before touching code.&lt;/li&gt;
&lt;li&gt;Writer implements against the spec.&lt;/li&gt;
&lt;li&gt;Checker gets ONLY the spec plus the diff, not the writer's chat history.&lt;/li&gt;
&lt;li&gt;Checker's job is explicitly adversarial: find reasons this is wrong, not reasons it's fine.&lt;/li&gt;
&lt;li&gt;Only after the checker signs off does the change land.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This works with two separate agent sessions, two different subagents, or even just you manually reviewing a diff against a spec you wrote before you started coding. The mechanism is the separation, not the tooling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this came from
&lt;/h2&gt;

&lt;p&gt;I wrote this up as a full reusable pattern with OpenSpec-style templates after using it across a couple of my own projects. It is free:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://claudiovibes36.gumroad.com/l/gyedr" rel="noopener noreferrer"&gt;https://claudiovibes36.gumroad.com/l/gyedr&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There's also a paid Kit that goes further into the full governance workflow this pattern is one piece of (spec structure, the zero-token-cost review discipline, a real case study), linked from that free page.&lt;/p&gt;

&lt;p&gt;Curious whether others running Claude Code, Cursor, or Codex day to day have hit the same self-approval failure mode, and how you have dealt with it.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
