<?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: Arsen Ask</title>
    <description>The latest articles on DEV Community by Arsen Ask (@arsen_ask_cde670c63b5a66f).</description>
    <link>https://dev.to/arsen_ask_cde670c63b5a66f</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%2F4110073%2F2a4a3bc3-b4c8-4b0d-b35b-ffa0275152e4.jpg</url>
      <title>DEV Community: Arsen Ask</title>
      <link>https://dev.to/arsen_ask_cde670c63b5a66f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arsen_ask_cde670c63b5a66f"/>
    <language>en</language>
    <item>
      <title>My own tool lied to me for three weeks: “declared” and “works” are different claims</title>
      <dc:creator>Arsen Ask</dc:creator>
      <pubDate>Fri, 04 Sep 2026 15:57:57 +0000</pubDate>
      <link>https://dev.to/arsen_ask_cde670c63b5a66f/my-own-tool-lied-to-me-for-three-weeks-declared-and-works-are-different-claims-5f2a</link>
      <guid>https://dev.to/arsen_ask_cde670c63b5a66f/my-own-tool-lied-to-me-for-three-weeks-declared-and-works-are-different-claims-5f2a</guid>
      <description>&lt;p&gt;My repo had 55 passing checks. On someone else's machine, none of them ran.&lt;/p&gt;

&lt;p&gt;I write code with agents. Every repo I hand them has an &lt;code&gt;AGENTS.md&lt;/code&gt; full of sentences: always run the tests, never commit secrets, no &lt;code&gt;TODO&lt;/code&gt; without a filed task. The agent reads them, agrees with them, and then does whatever it wants.&lt;/p&gt;

&lt;p&gt;Not out of malice. A sentence has no exit code.&lt;/p&gt;

&lt;p&gt;So I built a small thing that turns those sentences into commands. A manifest, &lt;code&gt;.aqk.yml&lt;/code&gt;, lists the checks the repository promises to hold. &lt;code&gt;doctor --run&lt;/code&gt; reports which of them &lt;strong&gt;actually execute right now&lt;/strong&gt; — as opposed to which are merely declared.&lt;/p&gt;

&lt;p&gt;Those are two different claims. This post is about the distance between them, because I fell into it myself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three weeks of green
&lt;/h2&gt;

&lt;p&gt;I had 55 self-checks, a green pipeline, and a tidy manifest. Then someone who wasn't me ran the tool for the first time, on their own project: Django, on Windows.&lt;/p&gt;

&lt;p&gt;Ten minutes. Four defects. The worst one looked like this.&lt;/p&gt;

&lt;p&gt;The tool picks between a &lt;em&gt;native&lt;/em&gt; recipe — if &lt;code&gt;ruff&lt;/code&gt; or &lt;code&gt;vulture&lt;/code&gt; or &lt;code&gt;eslint&lt;/code&gt; is installed, use it, it catches more — and a &lt;em&gt;portable&lt;/em&gt; one, written in &lt;code&gt;sh&lt;/code&gt;, that works everywhere and catches less. It decided whether a program existed like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;command&lt;/span&gt; &lt;span class="nt"&gt;-v&lt;/span&gt; ruff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;On Windows the shell is &lt;code&gt;cmd.exe&lt;/code&gt;. There is no &lt;code&gt;command&lt;/code&gt; builtin there. The answer came back "not installed" &lt;strong&gt;for every program on the system&lt;/strong&gt;. Every check silently fell back to the weakest option, and the run reported green.&lt;/p&gt;

&lt;p&gt;Green because nothing ran.&lt;/p&gt;

&lt;p&gt;Absence of signal turned out to be indistinguishable from success — the exact failure this whole thing exists to prevent. Fifty-five of my own checks never saw it. Someone else's machine saw it in ten minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Three things worth more than the tool
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. A check that cannot go red is indistinguishable from a working one.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Later I found one of my own tests written so that it could not fail. The scenario it set up made the failing condition unreachable. I noticed by accident, while changing something unrelated.&lt;/p&gt;

&lt;p&gt;So the rule is not "write the test first". It's "watch the test fail first". You write the failing check, you run it, you see red, &lt;em&gt;then&lt;/em&gt; you write the code. Those are different disciplines, and only one of them proves anything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. "It's in the config" is not "it runs."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have never watched your own pipeline go red on purpose, you don't know whether it can. Most people have never tried. I hadn't, on Windows — I couldn't, and I quietly let "I can't check that" become "that's probably fine".&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. A badge nobody recomputes is a claim, not a fact.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compliance badges get drawn once and then live their own life. A month later the README asserts something the repository stopped doing, and nothing anywhere goes red.&lt;/p&gt;

&lt;p&gt;So the badge command in my tool refuses to print anything while a gate is failing, and &lt;code&gt;badge --check&lt;/code&gt; fails your pipeline on the day the README stops matching the run. My own badge is verified that way on every push. It's the only version of a badge I could justify shipping, given that the entire premise is "don't trust claims, run them."&lt;/p&gt;

&lt;h2&gt;
  
  
  If you want to look
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx agent-quality-kit doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It only reads. It writes no file and sends nothing anywhere — you can point it at a repository you haven't decided anything about. Node 18+, zero dependencies on purpose: a tool people install into someone else's repo with one command should be readable in one sitting. MIT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/arsen-ask-lx/Agent_Quality_Kit" rel="noopener noreferrer"&gt;https://github.com/arsen-ask-lx/Agent_Quality_Kit&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Honestly, where this stands
&lt;/h2&gt;

&lt;p&gt;It has one real user besides me. Everything I could tell you about it being useful is therefore unproven, and I would rather say that than imply adoption I don't have.&lt;/p&gt;

&lt;p&gt;Which is also the ask. If you run it and it lies to you, an issue is worth more to me than a star — the last person who did that found four bugs in ten minutes, and every one of them was real.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>testing</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
