<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Spec-Driven Development on Vinh Thang's AI Tech Notes</title><link>https://vinhthang.dev/tags/spec-driven-development/</link><description>Recent content in Spec-Driven Development on Vinh Thang's AI Tech Notes</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 23 Sep 2026 00:30:00 +0700</lastBuildDate><atom:link href="https://vinhthang.dev/tags/spec-driven-development/index.xml" rel="self" type="application/rss+xml"/><item><title>Spec-Driven Development for Autonomous Agents: Inside the AI Review Plugin's Two-Stage Architecture</title><link>https://vinhthang.dev/posts/two-stage-spec-driven-development-ai-review/</link><pubDate>Wed, 23 Sep 2026 00:30:00 +0700</pubDate><guid>https://vinhthang.dev/posts/two-stage-spec-driven-development-ai-review/</guid><description>&lt;p&gt;When software engineers collaborate with autonomous AI coding agents, the default workflow is almost always &lt;strong&gt;chat-and-code&lt;/strong&gt;: describe a feature in natural language, watch the model propose a code diff, test it, and iterate.&lt;/p&gt;
&lt;p&gt;For small, single-function scripts, this works reasonably well. But for production-grade distributed systems, microservices, and multi-module architectures, this approach invariably breaks down.&lt;/p&gt;
&lt;p&gt;Left unconstrained, AI models suffer from &lt;strong&gt;Specification Conflation&lt;/strong&gt;: they blur the line between &lt;strong&gt;WHAT &amp;amp; WHY&lt;/strong&gt; (the architectural contracts, invariant boundaries, and failure modes) and &lt;strong&gt;HOW&lt;/strong&gt; (the file edits, variable names, and task sequencing). The result is predictable:&lt;/p&gt;</description></item></channel></rss>