import{c as t,Q as r,j as a,m as i}from"./chunks/framework.BPKcPtvA.js";const u=JSON.parse('{"title":"The Verifier Pattern","description":"","frontmatter":{},"headers":[],"relativePath":"blog/posts/verifier-pattern.md","filePath":"blog/posts/verifier-pattern.md","lastUpdated":1780488472000}'),n={name:"blog/posts/verifier-pattern.md"};function o(s,e,d,l,h,p){return r(),a("div",null,[...e[0]||(e[0]=[i(`<h1 id="the-verifier-pattern" tabindex="-1">The Verifier Pattern <a class="header-anchor" href="#the-verifier-pattern" aria-label="Permalink to &quot;The Verifier Pattern&quot;">​</a></h1><p><strong>June 8, 2026</strong></p><p>Here&#39;s the problem: engineers spend roughly half their day reviewing agent output. Every &quot;I created the table,&quot; &quot;I added the foreign key,&quot; &quot;I applied the migration&quot; gets re-checked by hand. That review work is the binding constraint on agentic engineering throughput.</p><p>The verifier pattern solves this: a second, read-only agent that automatically checks every claim the builder makes.</p><h2 id="architecture" tabindex="-1">Architecture <a class="header-anchor" href="#architecture" aria-label="Permalink to &quot;Architecture&quot;">​</a></h2><div class="language- vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>Builder (your terminal) ---unix socket---&gt; Verifier (new window, input LOCKED)</span></span>
<span class="line"><span>  |                                            |</span></span>
<span class="line"><span>  v writes:                                    v reads (read-only tools):</span></span>
<span class="line"><span>  session.jsonl                                session.jsonl</span></span>
<span class="line"><span>  |                                            |</span></span>
<span class="line"><span>  &lt;--- verifier_prompt (corrective feedback) ----&#39;</span></span></code></pre></div><p>The builder doesn&#39;t know the verifier exists. The verifier CANNOT write code — it only reads files, greps for evidence, and reports confidence.</p><h2 id="the-confidence-ladder" tabindex="-1">The Confidence Ladder <a class="header-anchor" href="#the-confidence-ladder" aria-label="Permalink to &quot;The Confidence Ladder&quot;">​</a></h2><table tabindex="0"><thead><tr><th>Level</th><th>Meaning</th><th>Bar Color</th></tr></thead><tbody><tr><td>PERFECT</td><td>Every claim verified, zero gaps</td><td>Green</td></tr><tr><td>VERIFIED</td><td>All passed, minor non-blocking gaps</td><td>Green</td></tr><tr><td>PARTIAL</td><td>No failures, significant unverifiable gaps</td><td>Orange</td></tr><tr><td>FEEDBACK</td><td>Claims failed, correction sent</td><td>Orange</td></tr><tr><td>FAILED</td><td>Cannot verify, escalating to human</td><td>Red</td></tr></tbody></table><h2 id="why-this-works" tabindex="-1">Why This Works <a class="header-anchor" href="#why-this-works" aria-label="Permalink to &quot;Why This Works&quot;">​</a></h2><ol><li><p><strong>Spend tokens to save time</strong> — The verifier costs 2-5x more compute but collapses the review constraint from hours to seconds. Tokens are cheap. Your time is not.</p></li><li><p><strong>Structurally un-promptable</strong> — The verifier&#39;s input is locked. You can&#39;t drop one-off instructions into it. The only way to fix a verification gap is to edit the persona or the prompt template — improvements solve the entire problem class, not one instance.</p></li><li><p><strong>Defense in depth</strong> — The verifier has zero write tools. Even if compromised, it can&#39;t modify files. Its bash is restricted to read-only commands. This is the highest level of control you can give an agent.</p></li></ol><h2 id="the-feedback-loop" tabindex="-1">The Feedback Loop <a class="header-anchor" href="#the-feedback-loop" aria-label="Permalink to &quot;The Feedback Loop&quot;">​</a></h2><p>Every &quot;could not verify&quot; report becomes the next improvement. The verifier teaches you what your verifier is missing. This is how you build the system that builds the system.</p><hr><p><em>This is an excerpt from Module 3 of the <a href="/">Agentic Engineering Course</a>. The full module includes runnable code for setting up the verifier-builder pattern with Unix socket communication and the confidence ladder.</em></p>`,15)])])}const f=t(n,[["render",o]]);export{u as __pageData,f as default};
