<?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: Akobir Tulqinov</title>
    <description>The latest articles on DEV Community by Akobir Tulqinov (@akobirjontulqinovfuture).</description>
    <link>https://dev.to/akobirjontulqinovfuture</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%2F4214277%2F28f7c509-5ce4-4723-9991-5743a19b8e59.jpg</url>
      <title>DEV Community: Akobir Tulqinov</title>
      <link>https://dev.to/akobirjontulqinovfuture</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akobirjontulqinovfuture"/>
    <language>en</language>
    <item>
      <title>keelyard: making AI coding agents prove their work</title>
      <dc:creator>Akobir Tulqinov</dc:creator>
      <pubDate>Thu, 29 Oct 2026 04:45:28 +0000</pubDate>
      <link>https://dev.to/akobirjontulqinovfuture/keelyard-making-ai-coding-agents-prove-their-work-1j30</link>
      <guid>https://dev.to/akobirjontulqinovfuture/keelyard-making-ai-coding-agents-prove-their-work-1j30</guid>
      <description>&lt;p&gt;I'm a solo developer from Uzbekistan. Most of what I ship (Telegram bots and mini apps for small businesses)&lt;br&gt;
I build together with AI coding agents. They're fast, but they have one habit that cost me hours: they say&lt;br&gt;
"done" when the work isn't done. Tests still red. Sometimes tests quietly removed.&lt;/p&gt;

&lt;p&gt;keelyard is my fix. It's a Python CLI plus an MCP server that plugs into Claude Code, Codex and OpenCode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;Proof gate.&lt;/em&gt; If the agent changed files, it can't finish until the tests pass on the current files. The
evidence is labeled: test-verified, command-succeeded or agent-claimed. Deleted tests, new skips and removed
assertions keep the gate closed.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Rewind.&lt;/em&gt; Every edit is snapshotted into &lt;code&gt;.keelyard/shadow.git&lt;/code&gt;, separate from your repo. Any step can be undone,
and the undo is undoable.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Smaller context.&lt;/em&gt; Filters for pytest, go test, cargo, jest, ruff, mypy, git and grep keep every error, warning and
&lt;code&gt;file:line&lt;/code&gt; and collapse the rest. Each filter is tested against real logs in &lt;code&gt;tests/corpus/&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Try it&lt;/strong&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install keelyard
cd your-project
keelyard init --preset lean
keelyard doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Honest limits&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proof is only as good as your test suite.&lt;/li&gt;
&lt;li&gt;Snapshots restore files, not databases or deployed services.&lt;/li&gt;
&lt;li&gt;The token numbers in BENCHMARKS.md (267,525 -&amp;gt; 52,745 tokens over six tasks, -80%) come from small samples
(3-8 runs per setup) on OpenCode only. Savings on Claude Code and Codex aren't measured yet.&lt;/li&gt;
&lt;li&gt;Claude Code and Codex are checked end to end in CI with the real CLIs and a local scripted model, which proves
the wiring, not model quality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CI runs on Linux, macOS and Windows with Python 3.11 to 3.13. It's Apache-2.0, with no telemetry.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/akobirjontulqinovfuture/keelyard" rel="noopener noreferrer"&gt;https://github.com/akobirjontulqinovfuture/keelyard&lt;/a&gt;. Issues labeled "good first issue" are a good place to&lt;br&gt;
start, and real logs from your test runners are the most useful thing you can send.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
