<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Disciplining the Coding Agent on Guy Freeman</title><link>https://gfrm.in/series/coding-agents/</link><description>Recent content in Disciplining the Coding Agent on Guy Freeman</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 26 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://gfrm.in/series/coding-agents/index.xml" rel="self" type="application/rss+xml"/><item><title>Fifteen Ways Past My Own Gate</title><link>https://gfrm.in/posts/fifteen-ways-past-my-own-gate/</link><pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate><guid>https://gfrm.in/posts/fifteen-ways-past-my-own-gate/</guid><description>&lt;p&gt;The last thing I wrote about building software with a coding agent ended on a question I could not answer with more machinery: &lt;em&gt;is this test still capable of telling me I am wrong?&lt;/em&gt; The setting was a language built under a &lt;a href="https://gfrm.in/posts/signed-before-the-code-existed/"&gt;frozen-oracle protocol&lt;/a&gt; &amp;mdash; acceptance tests authored and cryptographically signed before any implementation existed &amp;mdash; and the closing admission was that the cage had held perfectly and still missed something. A refactor had turned certain identity checks into definitions, so two tests had quietly become tautologies: true by construction, incapable of ever failing. Nothing was violated. A test had simply stopped being able to fail, and a hollow test passes exactly as brightly as a real one.&lt;/p&gt;</description></item><item><title>Signed Before the Code Existed</title><link>https://gfrm.in/posts/signed-before-the-code-existed/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0000</pubDate><guid>https://gfrm.in/posts/signed-before-the-code-existed/</guid><description>&lt;p&gt;A passing test suite is the thing every engineer wants to see, and it is worth much less than it looks. The green run tells you the code does what the tests say. It is silent about whether the tests say the right thing. Those are different claims, and the gap between them is exactly where foundations rot: the code and the tests were written by the same hand, in the same afternoon, under the same misunderstanding, and they agree with each other perfectly because they were made to. A repository full of passing runs will mask precisely the hole the runs cannot detect, because the hole is in the thing doing the detecting.&lt;/p&gt;</description></item><item><title>The Gate That Said No</title><link>https://gfrm.in/posts/the-gate-that-said-no/</link><pubDate>Fri, 19 Jun 2026 00:00:00 +0000</pubDate><guid>https://gfrm.in/posts/the-gate-that-said-no/</guid><description>&lt;p&gt;I built a machine that decides whether to answer. Most of the time, it decides not to. Then I built a second machine to decide whether the first one was worth keeping, and it told me no. Then I did the one thing that could test that no: I built the first machine properly and ran it over my own files. It answered almost nothing. This post is about why all three of those are the same result, and why I trust it more than I would have trusted a yes.&lt;/p&gt;</description></item><item><title>Keeping the Coding Agent on the Straight and Narrow</title><link>https://gfrm.in/posts/pkm-coding-agent-discipline/</link><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><guid>https://gfrm.in/posts/pkm-coding-agent-discipline/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Help me keep that coding agent pup on the straight and narrow, as it likes to be &amp;lsquo;pragmatic&amp;rsquo;.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That was the instruction I gave Claude.ai a week before any code was written for &lt;a href="https://gfrm.in/posts/pkm-phase-1/"&gt;a personal-knowledge-management project&lt;/a&gt;. Its companion describes what that foundation is and why none of the existing tools fit. This one is about how the foundation got built: two AIs, one spec as the contract between them, and what it takes to keep a coding agent from quietly corrupting your architecture.&lt;/p&gt;</description></item></channel></rss>