<?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: Shan Wijenayaka</title>
    <description>The latest articles on DEV Community by Shan Wijenayaka (@shan_wijenayaka_ecbe5dc32).</description>
    <link>https://dev.to/shan_wijenayaka_ecbe5dc32</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%2F3663989%2F32a04c51-205d-4385-87b7-31bd90b6807a.png</url>
      <title>DEV Community: Shan Wijenayaka</title>
      <link>https://dev.to/shan_wijenayaka_ecbe5dc32</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shan_wijenayaka_ecbe5dc32"/>
    <language>en</language>
    <item>
      <title>proven-python: make your AI agent prove its Python before calling it done</title>
      <dc:creator>Shan Wijenayaka</dc:creator>
      <pubDate>Sat, 20 Jun 2026 19:03:14 +0000</pubDate>
      <link>https://dev.to/shan_wijenayaka_ecbe5dc32/proven-python-make-your-ai-agent-prove-its-python-before-calling-it-done-3kj1</link>
      <guid>https://dev.to/shan_wijenayaka_ecbe5dc32/proven-python-make-your-ai-agent-prove-its-python-before-calling-it-done-3kj1</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Most code an AI agent writes looks right. It compiles, it reads well, it probably works. "Probably" is the problem. The agent stops when the work looks done, and "looks done" is rarely "proven done." You find the gap later, in production, in the case nobody tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  proven-python
&lt;/h2&gt;

&lt;p&gt;proven-python is a Claude Code skill that holds an AI coding agent to the way a disciplined engineer actually works on Python:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write the failing test first, then the code that makes it pass.&lt;/li&gt;
&lt;li&gt;Type every signature and pass mypy --strict, with no unexplained ignores.&lt;/li&gt;
&lt;li&gt;Keep functions small and honestly named.&lt;/li&gt;
&lt;li&gt;A bug fix ships with a regression test that fails without the fix.&lt;/li&gt;
&lt;li&gt;Nothing is "done" until ruff, mypy, and pytest are all green.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is model-invoked: the agent loads it when it is about to write, change, debug, test, or review Python, and follows the procedure instead of producing plausible-looking code nobody ran.&lt;/p&gt;

&lt;h2&gt;
  
  
  It does not get in your way
&lt;/h2&gt;

&lt;p&gt;A discipline skill that fights your agent is worse than no skill. proven-python has an "apply with judgment" rule: scale the rigor to the code (a throwaway script earns the spirit, not the full gate), defer to your instructions and the codebase's conventions, and skip the ceremony on a one-line diff. It is built to align with Anthropic's own Claude Code best practices, not override them.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it is built
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The procedure stays short. Depth (testing, typing, design, docs, review, human-readable output) lives in reference files that load on demand, so it does not bloat context.&lt;/li&gt;
&lt;li&gt;It ships copy-pasteable pyproject, pre-commit, and CI templates, because a command that fails the build beats a paragraph asking the model to behave.&lt;/li&gt;
&lt;li&gt;It is agent-agnostic: plain Markdown, so it drops into Codex, Cursor, or any agent that reads a skill or an instructions file.&lt;/li&gt;
&lt;li&gt;The repo holds its own code to the same bar: the validation script is typed, tested, and gated by CI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/plugin marketplace add shanwije/proven-python
/plugin &lt;span class="nb"&gt;install &lt;/span&gt;proven-python
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or copy skills/proven-python into your project's .claude/skills.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source
&lt;/h2&gt;

&lt;p&gt;MIT licensed, principles distilled from the canonical Python and engineering literature with every source and its license listed in the repo. Feedback and PRs welcome, especially on where it is too strict or gets in the way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/shanwije/proven-python" rel="noopener noreferrer"&gt;https://github.com/shanwije/proven-python&lt;/a&gt;&lt;/p&gt;

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