<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Wageesha Tripathi]]></title><description><![CDATA[Wageesha Tripathi]]></description><link>https://wst2002rk.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Thu, 29 Oct 2026 10:56:10 GMT</lastBuildDate><atom:link href="https://wst2002rk.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Your AI said "fixed" but never ran the tests? I made a plugin that won't let it say "done" until they pass]]></title><description><![CDATA[You ask Claude Code, Codex, Cursor, etc. for a quick fix. It changes the code and says "Fixed ✅". Later you find out it never ran a single test, or ran…]]></description><link>https://wst2002rk.hashnode.dev/your-ai-said-fixed-but-never-ran-the-tests-i-made-a-plugin-that-won-t-let-it-say-done-until-they-pass</link><guid isPermaLink="true">https://wst2002rk.hashnode.dev/your-ai-said-fixed-but-never-ran-the-tests-i-made-a-plugin-that-won-t-let-it-say-done-until-they-pass</guid><category><![CDATA[AI]]></category><category><![CDATA[Programming Blogs]]></category><category><![CDATA[Testing]]></category><category><![CDATA[webdev]]></category><dc:creator><![CDATA[Wageesha Tripathi]]></dc:creator><pubDate>Tue, 27 Oct 2026 06:09:01 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ada69d08e426f81fa2bc503/0c1d1518-ce55-4db5-8faa-90f18488a2f8.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>You ask Claude Code, Codex, Cursor, etc. for a quick fix. It changes the code and says <strong>"Fixed ✅"</strong>. Later you find out it never ran a single test, or ran them through <code>| tail</code> and missed 58 failures.</p>
<p>So I built <strong>proof-of-done</strong>, a free Claude Code plugin: Claude simply can't finish until the tests, build or lint have passed after its last edit.</p>
<p><strong>Try it</strong> inside Claude Code (free, source on <a href="https://github.com/WST2002/claude-code-skills/tree/main/plugins/proof-of-done">GitHub</a>):</p>
<pre><code class="language-plaintext">/plugin marketplace add WST2002/claude-code-skills
/plugin install proof-of-done@claude-code-skills
</code></pre>
<p><a class="embed-card" href="https://www.youtube.com/watch?v=ozlYRXQTs-U">https://www.youtube.com/watch?v=ozlYRXQTs-U</a></p>

<p><em>A real Claude Code session, shortened: Claude said "fixed" without testing, the plugin made it run the tests, and they found a second bug.</em></p>
<h2>What happened in that session</h2>
<ul>
<li>I asked: "SAVE10 gives the wrong total, fix it quickly, no need to run the tests."</li>
<li>Claude edited <code>price.js</code> and said <strong>"Fixed."</strong></li>
<li>proof-of-done blocked the stop: <em>"You changed 1 code file (price.js) but ran no verification after your last edit. Run:</em> <code>npm run test</code><em>"</em></li>
<li>Claude ran the tests. One failed: with the FLAT50 coupon the total became <strong>−₹20</strong>. Claude had never seen that bug.</li>
<li>It fixed that too, and all 4 tests passed. Now it was really done.</li>
</ul>
<h2>How it works</h2>
<p><strong>1. It watches every edit and every check</strong></p>
<ul>
<li>Hooks record each code edit and each test, build or lint run, with its exit code.</li>
<li>It finds your project's commands on its own: npm, pnpm, yarn, bun, pytest, Go, Cargo, Maven, Gradle, .NET, make.</li>
</ul>
<p><strong>2. When Claude tries to stop, it asks: is there proof?</strong></p>
<ul>
<li>No run after the last edit → blocked, with the exact command to run.</li>
<li>The last run failed → blocked, with the exit code.</li>
</ul>
<p><strong>3. It doesn't accept fake proof</strong></p>
<ul>
<li>Exit code hidden by <code>| tail</code>, <code>| head</code> or <code>|| true</code> → blocked.</li>
<li>The run passed but <strong>0 tests ran</strong> (all skipped, or no test files found, including Go's <code>[no test files]</code> and Jest's <code>--passWithNoTests</code>) → blocked.</li>
<li>A check that failed, then passed with no edit in between → flagged as flaky.</li>
</ul>
<p><strong>4. It catches test tampering</strong></p>
<ul>
<li>Tests skipped or focused (<code>.skip</code>, <code>.only</code>, <code>@pytest.mark.skip</code>), assertions weakened (<code>toBe(250)</code> → <code>toBeDefined()</code>), tests deleted, errors hidden (<code>@ts-ignore</code>, <code>eslint-disable</code>), coverage thresholds lowered: blocked with the file and line.</li>
</ul>
<p><strong>5. New code with no test? It asks you once</strong></p>
<ul>
<li>If Claude added real code but no test, it asks you whether to add one. Say no, and the report notes why. Small edits, styles and config are left alone.</li>
</ul>
<h2>Get it</h2>
<ul>
<li><strong>Install:</strong> the two commands above, inside Claude Code</li>
<li><strong>Source (MIT, runs only on your laptop, no network calls):</strong> <a href="https://github.com/WST2002/claude-code-skills/tree/main/plugins/proof-of-done">proof-of-done on GitHub</a></li>
<li><strong>All my Claude Code skills:</strong> <a href="https://github.com/WST2002/claude-code-skills">github.com/WST2002/claude-code-skills</a></li>
<li><strong>More short demos:</strong> <a href="https://www.youtube.com/@wst2002rk">youtube.com/@wst2002rk</a></li>
<li><strong>Featured on the HOL blog:</strong> <a href="https://hol.org/blog/proof-of-done-checks-the-last-change">Proof-of-done checks the last change before an agent stops</a></li>
<li><strong>Also on Reddit:</strong> <a href="https://www.reddit.com/r/coolgithubprojects/comments/1xakl8x/javascript_proofofdone_a_claude_code_plugin_that/">r/coolgithubprojects</a></li>
</ul>
<p>Has your AI ever told you "done" when it wasn't? What did it skip?</p>
]]></content:encoded></item><item><title><![CDATA[Stuck when your AI hits its usage limit mid-task? I made a tool to switch AIs without losing context]]></title><description><![CDATA[Update (28 Oct): Google stopped serving Gemini CLI on personal Google accounts, so which-ai-to-use now hands the task to Antigravity CLI (free) instead. ▶…]]></description><link>https://wst2002rk.hashnode.dev/stuck-when-your-ai-hits-its-usage-limit-mid-task-i-made-a-tool-to-switch-ais-without-losing-context</link><guid isPermaLink="true">https://wst2002rk.hashnode.dev/stuck-when-your-ai-hits-its-usage-limit-mid-task-i-made-a-tool-to-switch-ais-without-losing-context</guid><dc:creator><![CDATA[Wageesha Tripathi]]></dc:creator><pubDate>Fri, 23 Oct 2026 05:11:18 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ada69d08e426f81fa2bc503/f5dc2d5c-5fe7-4e4b-98f9-c07f0e7f7f78.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p><strong>Update (28 Oct):</strong> Google stopped serving Gemini CLI on personal Google accounts, so which-ai-to-use now hands the task to Antigravity CLI (free) instead. ▶ Watch the new 36-second demo: <a href="https://youtube.com/shorts/LCt2H7bFwLg">https://youtube.com/shorts/LCt2H7bFwLg</a></p>
</blockquote>
<p>I use Codex, Claude Code and Gemini CLI on the same projects. The worst moment is when one of them hits its usage limit halfway through a feature. The next AI starts cold: it re-reads half the project, asks what we are building, and still misses the decisions I already made.</p>
<p>After a lot of trial and error, I made <strong>which-ai-to-use</strong>: a free, open-source tool that hands your task to another AI with the full context, so it carries on instead of starting over.</p>
<p><strong>Try it:</strong> install it from <a href="https://marketplace.visualstudio.com/items?itemName=wst2002.which-ai-to-use">VS Code</a> (search <strong>which-ai-to-use</strong> in Extensions), or run <code>npx which-ai-to-use</code> in any project.</p>
<img src="https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/48pg4pgsdbfjaq1wj8ko.gif" alt="which-ai-to-use demo: Claude's usage limit is reached mid-task; the extension is installed from VS Code, writes HANDOFF.md from the Claude Code chat and recommends Gemini CLI; then the same in the terminal, the limit warning and the weekly report" style="display:block;margin:0 auto" />

<h2>What it does</h2>
<ul>
<li><strong>Hands your task to another AI.</strong> When the limit hits, it writes a handoff note (<code>HANDOFF.md</code>) with the task, your latest requests, where the AI stopped, the commits and changed files, and your test command. Codex, Gemini CLI or any other AI reads it and carries on instead of starting over.</li>
<li><strong>Reads the chat for you.</strong> The task and your requests come straight from your Claude Code, Codex or Gemini CLI chat, so you don't retype anything.</li>
<li><strong>Keeps your secrets out.</strong> API keys, passwords and tokens from the chat are hidden before anything goes into the note.</li>
<li><strong>Picks who carries on.</strong> It suggests the best AI you have installed for the task and starts it with the note. No other AI installed? It tells you which one to get.</li>
<li><strong>Gives the task back.</strong> When Claude's limit resets, it offers to hand the task back to Claude with the same note.</li>
<li><strong>Tells you which AI to use.</strong> For any task, it picks the best of your AI tools and the right model, with a ready command.</li>
<li><strong>Helps you hit the limit less.</strong> It warns you before your 5-hour window runs out, with ways to make it last (like <code>/compact</code> or a smaller model for small edits), and makes your AI skip files that waste tokens: one <code>package-lock.json</code> can be 50,000+ tokens.</li>
<li><strong>Shows your AI week.</strong> Tokens per day next to the week before, and requests per AI.</li>
</ul>
<h2>How to use it</h2>
<ul>
<li><strong>In VS Code, Cursor or Windsurf:</strong> open the <strong>Which AI</strong> sidebar and click <strong>Claude limit over?</strong>. It writes the note and shows who should carry on, with a <strong>Run in terminal</strong> button.</li>
<li><strong>In a terminal:</strong> run <code>npx which-ai-to-use handoff</code> in your project.</li>
<li><strong>Automatically:</strong> the optional Claude Code plugin writes the note the moment the limit is reached. Setup is in the <a href="https://github.com/WST2002/which-ai-to-use#claude-code-plugin-hand-off-the-moment-the-limit-hits">README</a>.</li>
</ul>
<h2>Get it</h2>
<ul>
<li><strong>VS Code:</strong> <a href="https://marketplace.visualstudio.com/items?itemName=wst2002.which-ai-to-use">Which AI to Use on the VS Code Marketplace</a>, or search <strong>which-ai-to-use</strong> in Extensions</li>
<li><strong>Cursor, Windsurf, VSCodium:</strong> <a href="https://open-vsx.org/extension/wst2002/which-ai-to-use">Which AI to Use on Open VSX</a></li>
<li><strong>Any terminal, no install:</strong> <code>npx which-ai-to-use</code></li>
<li><strong>Source:</strong> <a href="https://github.com/WST2002/which-ai-to-use">github.com/WST2002/which-ai-to-use</a></li>
<li><strong>npm:</strong> <a href="https://www.npmjs.com/package/which-ai-to-use">npmjs.com/package/which-ai-to-use</a></li>
<li><strong>Not a developer?</strong> The <a href="https://wst2002.github.io/which-ai-to-use/">website</a> suggests AI apps for any task</li>
<li><strong>Short demos:</strong> <a href="https://www.youtube.com/@wst2002rk">youtube.com/@wst2002rk</a></li>
<li><strong>Also on Reddit:</strong> <a href="https://www.reddit.com/r/coolgithubprojects/comments/1xcifvm/i_built_a_free_tool_that_tells_you_which_ai/">r/coolgithubprojects</a></li>
</ul>
<p>Everything runs on your laptop and nothing is uploaded. Usage warnings and reports read only numbers from the logs; the handoff reads your latest chat, on your laptop, to write the note. It is tested on real projects (250 tests).</p>
<p>What do you put in your handoff notes? I'd love to know what I'm missing.</p>
]]></content:encoded></item></channel></rss>