<?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: Rocky shi</title>
    <description>The latest articles on DEV Community by Rocky shi (@rockyshi).</description>
    <link>https://dev.to/rockyshi</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%2F1818657%2F7fc311bb-b6a1-44f4-9131-6e022c0203c3.jpg</url>
      <title>DEV Community: Rocky shi</title>
      <link>https://dev.to/rockyshi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rockyshi"/>
    <language>en</language>
    <item>
      <title>Stop your AI coding agent from saying "done" without evidence</title>
      <dc:creator>Rocky shi</dc:creator>
      <pubDate>Mon, 02 Nov 2026 05:28:32 +0000</pubDate>
      <link>https://dev.to/rockyshi/stop-your-ai-coding-agent-from-saying-done-without-evidence-2775</link>
      <guid>https://dev.to/rockyshi/stop-your-ai-coding-agent-from-saying-done-without-evidence-2775</guid>
      <description>&lt;p&gt;If you use an AI coding agent every day, you have probably seen this loop:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You ask for a bug fix.&lt;/li&gt;
&lt;li&gt;The agent starts editing files right away.&lt;/li&gt;
&lt;li&gt;A few minutes later it says "Done, the fix works."&lt;/li&gt;
&lt;li&gt;You check, and nothing was actually run.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The agent is not lying on purpose. It just has no structure that forces it to say what it is about to do, wait for you, and separate what it &lt;em&gt;read&lt;/em&gt; from what it &lt;em&gt;ran&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three habits that cause most of the pain
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Jumping straight to edits.&lt;/strong&gt; The plan, the guesses and the changes all land in one go. By the time you see the plan, the files are already different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mixing plans with guesses.&lt;/strong&gt; "The root cause is X" sounds the same whether the agent reproduced the bug or just read one file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reporting "done" without evidence.&lt;/strong&gt; A static read of the code and a real test run get reported with the same confidence.&lt;/p&gt;

&lt;p&gt;None of these are model problems you can prompt away once. They are workflow problems, so they need a workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a fix looks like
&lt;/h2&gt;

&lt;p&gt;What I wanted from an agent is boring and specific:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tell me what you are about to do &lt;strong&gt;before&lt;/strong&gt; you do it.&lt;/li&gt;
&lt;li&gt;Stop at the key points and let me confirm.&lt;/li&gt;
&lt;li&gt;Keep "checked by reading" apart from "proven by running".&lt;/li&gt;
&lt;li&gt;Never push, tag or release on your own.&lt;/li&gt;
&lt;li&gt;And please, do not turn a simple question into a ceremony.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is what &lt;a href="https://github.com/devcodex-labs/task-lifecycle" rel="noopener noreferrer"&gt;task-lifecycle&lt;/a&gt; does. It is an open-source, MIT-licensed, skills-only plugin for AI coding agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  How task-lifecycle works
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz87lv2mzbojjwbtioygl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz87lv2mzbojjwbtioygl.png" alt="task-lifecycle flow: your message, pre-check, route to ordinary help or a governed task, stages you confirm, verification and evidence, handoff" width="800" height="1346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It routes by intent.&lt;/strong&gt; Every reply opens with a short pre-check (4 items on a light turn, 7 when it is about to execute). Plain questions, lookups and trivial edits get ordinary help. Only substantive work (a feature, a bug fix or a documentation change) becomes a governed task, and it tells you first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three flows with clear stages.&lt;/strong&gt; Feature work goes through stages &lt;code&gt;A01–A10&lt;/code&gt;, bug fixes through &lt;code&gt;B01–B10&lt;/code&gt;, docs through &lt;code&gt;DOC01–DOC10&lt;/code&gt;. Each formal artifact waits for your confirmation by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You pick how deep and how strict.&lt;/strong&gt; When a formal plan needs it, you choose a depth (&lt;code&gt;fast / standard / thorough / custom&lt;/code&gt;) and a review intensity (&lt;code&gt;light / balanced / strict&lt;/code&gt;). No option skips the required quality checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honest evidence.&lt;/strong&gt; Design or static checks are reported separately from real-environment evidence. Anything that was not run is not marked as passed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You keep the dangerous buttons.&lt;/strong&gt; There is an opt-in Auto card: after you confirm A01 and A02, one card can run A03–A07. It can pre-authorize at most a local commit. Push, tag, release and final acceptance always stay with you, and the plugin never runs Git on its own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It also does read-only review&lt;/strong&gt; of code, pull requests and plans, with findings backed by evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Process notes stay out of your repo.&lt;/strong&gt; By default they go into a sibling &lt;code&gt;.task-lifecycle/&lt;/code&gt; folder next to the project, not into your delivery.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is not
&lt;/h2&gt;

&lt;p&gt;It is one &lt;code&gt;SKILL.md&lt;/code&gt; plus reference rules loaded on demand. No server, no background service, no database, no remote API.&lt;/p&gt;

&lt;p&gt;It is also not a sandbox or a test runner. What it can do depends on the tools and permissions your host gives the agent. I think it is better to say that up front than to oversell it.&lt;/p&gt;

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

&lt;p&gt;It is not on any marketplace yet; you install it from the repository. It is tested on Cursor, Codex and Grok Build.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cursor:&lt;/strong&gt; place the repository at &lt;code&gt;~/.cursor/plugins/local/task-lifecycle&lt;/code&gt;, run &lt;strong&gt;Developer: Reload Window&lt;/strong&gt;, and check that the &lt;code&gt;task-lifecycle&lt;/code&gt; skill shows up under Customize.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codex:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex plugin marketplace add devcodex-labs/task-lifecycle
codex plugin add task-lifecycle@devcodex-task-lifecycle
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Grok Build:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;grok plugin &lt;span class="nb"&gt;install &lt;/span&gt;devcodex-labs/task-lifecycle &lt;span class="nt"&gt;--trust&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A successful install does not prove the host loaded it, so start a new session and send something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Use Task Lifecycle to plan a bugfix: reproduce, find the root cause, then propose a fix.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You should see the pre-check first, a note that it is entering a governed Bugfix task, and then a stop at the first point that needs your confirmation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Over to you
&lt;/h2&gt;

&lt;p&gt;How do you keep your coding agent from claiming success it never verified? Rules files, hooks, a checklist in the prompt? I would like to hear what works for you.&lt;/p&gt;

&lt;p&gt;Repo, issues and pull requests: &lt;a href="https://github.com/devcodex-labs/task-lifecycle" rel="noopener noreferrer"&gt;https://github.com/devcodex-labs/task-lifecycle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I post about task-lifecycle and AI coding agent workflows on X: &lt;a href="https://x.com/rockyshi_93" rel="noopener noreferrer"&gt;https://x.com/rockyshi_93&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I used nodejs+react to build a full-stack development framework called nodestack, which is very simple and fast</title>
      <dc:creator>Rocky shi</dc:creator>
      <pubDate>Mon, 22 Jul 2024 09:47:20 +0000</pubDate>
      <link>https://dev.to/rockyshi/i-used-nodejsreact-to-build-a-full-stack-development-framework-called-nodestack-which-is-very-simple-and-fast-kcd</link>
      <guid>https://dev.to/rockyshi/i-used-nodejsreact-to-build-a-full-stack-development-framework-called-nodestack-which-is-very-simple-and-fast-kcd</guid>
      <description>&lt;p&gt;nodestack It is a full-stack framework for JavaScript developers. It is designed to be very simple, allowing you to create high-performance, high-quality programs with minimal code, all for the purpose of improving development efficiency.node、hapi、react、mongodbetc. to build, use esbuild As a compilation tool.&lt;/p&gt;

&lt;p&gt;Advantage:&lt;/p&gt;

&lt;p&gt;No configuration required&lt;br&gt;
Very simple, small, safe, fast, and ready to use&lt;br&gt;
Supports automatic code updates, no need to restart the server with tools such as nodemon after each code modification.&lt;br&gt;
Compile speed is increased by 20-100 times using esbuild.&lt;br&gt;
Powerful routing function.&lt;br&gt;
Supports ES5\ES6+ at the same time&lt;/p&gt;

&lt;p&gt;This is a new project, so if you run into problems, feel free to ask!&lt;/p&gt;

&lt;p&gt;You can view the relevant documentation here &lt;a href="https://github.com/rockyshi1993/nodestack" rel="noopener noreferrer"&gt;https://github.com/rockyshi1993/nodestack&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
