<?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: Livecristen Studios</title>
    <description>The latest articles on DEV Community by Livecristen Studios (@livecristen).</description>
    <link>https://dev.to/livecristen</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%2F4207402%2Fa20f778b-3f87-42d1-b421-fa43e93f8571.png</url>
      <title>DEV Community: Livecristen Studios</title>
      <link>https://dev.to/livecristen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/livecristen"/>
    <language>en</language>
    <item>
      <title>Why I stopped trusting "fixed" from my coding agent</title>
      <dc:creator>Livecristen Studios</dc:creator>
      <pubDate>Sun, 25 Oct 2026 22:52:34 +0000</pubDate>
      <link>https://dev.to/livecristen/why-i-stopped-trusting-fixed-from-my-coding-agent-ddi</link>
      <guid>https://dev.to/livecristen/why-i-stopped-trusting-fixed-from-my-coding-agent-ddi</guid>
      <description>&lt;p&gt;Agent edits a file, test goes green, agent says "fixed". But that green test only tells you one thing: the command passes now. It doesn't tell you it failed before. And it doesn't tell you it would fail again without the change.&lt;/p&gt;

&lt;p&gt;So I built FixProof, a skill file plus a small Python CLI (stdlib only, 3.9+) that runs those checks itself. Here's what it looks like on the slugify example from the repo.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bug
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;slugify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# BUG: spaces are removed instead of turned into dashes
&lt;/span&gt;    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The test expects &lt;code&gt;slugify("Hello  World ")&lt;/code&gt; to be &lt;code&gt;hello-world&lt;/code&gt;. Note the double space.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: record the failure first
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 scripts/verify.py init --repro "python3 -m unittest test_slugify" --suite "python3 -m unittest test_other"
FixProof baseline: reproduction outcome = fail (exit 1)
Bug reproduced. Apply the fix, then run: verify.py check
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: a fix that looks done
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Feels right. But the double space turns into &lt;code&gt;hello--world&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ python3 scripts/verify.py check
FixProof 0.3.0  status: FAILED  (exit 1)
  - fix does not solve the bug: reproduction still fails (3/3 runs)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;An agent that skims the output would call this done. The CLI doesn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: the real fix
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;-&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strip&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;lower&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;split&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FixProof 0.3.0  status: VERIFIED  (exit 0)
  - baseline failed, fix passes all reruns, revert test fails without the fix, no regressions
  revert test: fails_without_fix
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The revert test is the part I care most about. It temporarily removes the fix, runs the repro again, checks it fails, and puts the file back. If the test still passes without your change, the test isn't actually testing the bug, and you get UNVERIFIED instead of VERIFIED.&lt;/p&gt;

&lt;h2&gt;
  
  
  The five results
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;VERIFIED: failed before, passes after on every rerun, fails again when reverted, nothing else broke&lt;/li&gt;
&lt;li&gt;FAILED: repro still fails, or something that passed before now fails&lt;/li&gt;
&lt;li&gt;PARTIALLY VERIFIED: repro passes but something's missing (no suite, no revert test)&lt;/li&gt;
&lt;li&gt;UNVERIFIED: bug never reproduced, test passes even without the fix, flaky reruns&lt;/li&gt;
&lt;li&gt;BLOCKED: missing tool, timeout, not a git repo&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it can't do
&lt;/h2&gt;

&lt;p&gt;Being honest here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the agent picks the repro command. If that command doesn't really hit the bug, VERIFIED just means the wrong command was verified&lt;/li&gt;
&lt;li&gt;an agent could delete &lt;code&gt;.fixproof/&lt;/code&gt; and make a new log. If it matters, rerun &lt;code&gt;check&lt;/code&gt; yourself&lt;/li&gt;
&lt;li&gt;needs git&lt;/li&gt;
&lt;li&gt;if the fix lives inside the test file, it can't be reverted cleanly&lt;/li&gt;
&lt;li&gt;macOS isn't tested yet&lt;/li&gt;
&lt;/ul&gt;

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/Livecristen/fixproof.git ~/.claude/skills/fixproof
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(or &lt;code&gt;~/.codex/skills/&lt;/code&gt; / &lt;code&gt;.cursor/skills/&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;It's v0.3.0, MIT: &lt;a href="https://github.com/Livecristen/fixproof" rel="noopener noreferrer"&gt;https://github.com/Livecristen/fixproof&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Curious whether the status rules match how you work with agents. Feedback welcome.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8v8bfr32z6gl03x2lxxl.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8v8bfr32z6gl03x2lxxl.gif" alt=" " width="720" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>testing</category>
      <category>vibecoding</category>
    </item>
  </channel>
</rss>
