<?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: Dzu Tran</title>
    <description>The latest articles on DEV Community by Dzu Tran (@dzutran).</description>
    <link>https://dev.to/dzutran</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%2F4225561%2F4c59af74-527a-4aed-8798-7ebf31651d9e.png</url>
      <title>DEV Community: Dzu Tran</title>
      <link>https://dev.to/dzutran</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dzutran"/>
    <language>en</language>
    <item>
      <title>Stop Letting AI Code Without Specs: How We Built a 4-Role Autonomous Engineering Framework</title>
      <dc:creator>Dzu Tran</dc:creator>
      <pubDate>Wed, 04 Nov 2026 07:05:52 +0000</pubDate>
      <link>https://dev.to/dzutran/stop-letting-ai-code-without-specs-how-we-built-a-4-role-autonomous-engineering-framework-52lp</link>
      <guid>https://dev.to/dzutran/stop-letting-ai-code-without-specs-how-we-built-a-4-role-autonomous-engineering-framework-52lp</guid>
      <description>&lt;p&gt;If you've spent any serious amount of time using AI coding assistants like &lt;strong&gt;Cursor, Claude Code, Copilot, or Windsurf&lt;/strong&gt; on non-trivial codebases, you've almost certainly experienced these moments of frustration:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Premature Implementation:&lt;/strong&gt; You describe a broad feature, and the AI immediately starts editing 10 random files without analyzing edge cases or asking for clarification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Context Window Amnesia:&lt;/strong&gt; Five prompts into the session, the AI forgets the architectural constraints you established at the start and begins undoing previous logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ghost Fixes &amp;amp; Silent Regressions:&lt;/strong&gt; The AI claims "I have fixed the issue!", but upon closer inspection, it just broke two other critical components because no independent QA tested it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;We faced these exact challenges while scaling a high-traffic production application to &lt;strong&gt;95–100 Google PageSpeed scores, OWASP Zero-Trust compliance, and strict WCAG accessibility&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To eliminate prompt-drift and hallucinated implementations once and for all, we built and open-sourced &lt;strong&gt;Agentic-SDD&lt;/strong&gt;: A spec-driven multi-agent operating framework that turns single-agent assistants into a disciplined 4-role software engineering team.&lt;/p&gt;




&lt;h2&gt;
  
  
  🏛️ The 4-Role Operating Lifecycle
&lt;/h2&gt;

&lt;p&gt;Instead of treating the AI as an all-in-one coder that plans, writes, tests, and deploys without oversight, &lt;strong&gt;Agentic-SDD&lt;/strong&gt; strictly separates concerns into 4 independent roles:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────┐     ┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│   Role 01    │ ──&amp;gt; │   Role 02    │ ──&amp;gt; │   Role 03    │ ──&amp;gt; │   Role 04    │
│   Planner    │     │  Developer   │     │  QA Tester   │     │  Gatekeeper  │
└──────────────┘     └──────────────┘     └──────────────┘     └──────────────┘
       │                    │                    │                    │
  Clarifies            Implements           Adversarial          Audits diffs
  edge cases           strictly in          boundary tests       &amp;amp; signs off
  &amp;amp; specs plan         Impacted Files       &amp;amp; self-heals         for release
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  1. 🏛️ Role 01 — System Architect &amp;amp; Planner
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rule:&lt;/strong&gt; Strictly &lt;strong&gt;Read-Only&lt;/strong&gt; on production source code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow:&lt;/strong&gt; Proactively asks 2–3 edge-case clarification questions (&lt;strong&gt;Step 0 Clarifications&lt;/strong&gt;) before generating a formal technical specification in &lt;code&gt;tracking/plan/&amp;lt;FEATURE&amp;gt;_PLAN.md&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Output:&lt;/strong&gt; Scope (In/Out), impacted files table, and testable acceptance criteria.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. 💻 Role 02 — Software Engineer / Developer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rule:&lt;/strong&gt; Strictly bound to the &lt;code&gt;Impacted Files&lt;/code&gt; declared in the plan (Zero Scope Drift).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow:&lt;/strong&gt; Follows strict web interface guidelines (explicit 60 FPS transitions, zero layout shifts), implements defensive logic with &lt;code&gt;try/catch&lt;/code&gt;, and syncs action checklist items (&lt;code&gt;- [x]&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. 🧪 Role 03 — QA &amp;amp; Quality Engineer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rule:&lt;/strong&gt; Independent verification; forbidden from touching business logic code directly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow:&lt;/strong&gt; Executes boundary tests (edge cases, empty inputs, network failure, 4-viewport responsive audits: &lt;code&gt;430px&lt;/code&gt;, &lt;code&gt;768px&lt;/code&gt;, &lt;code&gt;1024px&lt;/code&gt;, &lt;code&gt;1440px+&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autonomous Self-Healing Loop:&lt;/strong&gt; If a bug is detected, QA publishes a structured report with root causes. The Orchestrator automatically dispatches Dev to fix and QA to re-test (up to 3 autonomous cycles) until reaching &lt;strong&gt;100% PASS&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. 🛡️ Role 04 — Strict Tech Lead &amp;amp; Gatekeeper
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rule:&lt;/strong&gt; The &lt;strong&gt;only&lt;/strong&gt; role authorized to approve merges, archive plans, or sign off on releases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Workflow:&lt;/strong&gt; Audits git diffs against performance regressions, security vulnerabilities, and accessibility standards.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🚀 Why "Markdown-First Persistent State"?
&lt;/h2&gt;

&lt;p&gt;Most multi-agent frameworks force you to set up complex vector databases, Redis queues, or Python orchestration servers. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agentic-SDD takes the opposite approach: Git &amp;amp; Markdown are all the state you need.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every handoff is preserved as a permanent artifact in your repo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;tracking/plan/&lt;/code&gt;: Active technical specifications.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tracking/report/&lt;/code&gt;: QA audit findings and self-healing logs.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tracking/task/&lt;/code&gt;: Daily prioritized task board (&lt;code&gt;DAILY_TASKS.md&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tracking/log/&lt;/code&gt;: Release history (&lt;code&gt;CHANGELOG.md&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tracking/done/&lt;/code&gt;: Permanent archive of completed specifications.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; Zero external dependencies, zero database setup, and &lt;strong&gt;zero token waste&lt;/strong&gt;—agents only read the exact markdown artifact required for their role.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Try It in 5 Seconds (Zero Dependencies)
&lt;/h2&gt;

&lt;p&gt;We packaged the framework into an ultra-lightweight Node.js CLI (&amp;lt; 50KB, starts in ~100ms) with zero third-party dependencies:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Initialize into any new or existing project (Next.js, Astro, Vue, Python, Go, etc.)&lt;/span&gt;
npx @dzutr/agentic-sdd init &lt;span class="nt"&gt;--preset&lt;/span&gt; fullstack-edge &lt;span class="nt"&gt;--ide&lt;/span&gt; all

&lt;span class="c"&gt;# Verify setup integrity across all 5 roles &amp;amp; tracking directories&lt;/span&gt;
npx @dzutr/agentic-sdd doctor

&lt;span class="c"&gt;# Audit your codebase for UI standards &amp;amp; spec compliance&lt;/span&gt;
npx @dzutr/agentic-sdd verify
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Universal Multi-IDE Support
&lt;/h3&gt;

&lt;p&gt;One single source of truth (&lt;code&gt;.agent-roles/&lt;/code&gt; and &lt;code&gt;AGENTS.md&lt;/code&gt;) generates native bridge adapters for your preferred AI tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cursor:&lt;/strong&gt; &lt;code&gt;.cursor/rules/agentic-sdd.mdc&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code:&lt;/strong&gt; &lt;code&gt;CLAUDE.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Windsurf:&lt;/strong&gt; &lt;code&gt;.windsurfrules&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity:&lt;/strong&gt; &lt;code&gt;.antigravity/roles/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Copilot:&lt;/strong&gt; &lt;code&gt;.github/copilot-instructions.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📦 Open Source &amp;amp; Community
&lt;/h2&gt;

&lt;p&gt;Agentic-SDD is completely free and open-source under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/dzutran/agentic-sdd" rel="noopener noreferrer"&gt;https://github.com/dzutran/agentic-sdd&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📦 &lt;strong&gt;NPM Package:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/@dzutr/agentic-sdd" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/@dzutr/agentic-sdd&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find this approach helpful for building disciplined, predictable AI engineering workflows, please consider dropping a &lt;strong&gt;Star ⭐ on GitHub&lt;/strong&gt; to support the project!&lt;/p&gt;

&lt;p&gt;We'd love to hear your thoughts: How do you currently prevent AI coding assistants from hallucinating or scope-drifting across long sessions?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
