<?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: Peter Ma</title>
    <description>The latest articles on DEV Community by Peter Ma (@peter8icestone).</description>
    <link>https://dev.to/peter8icestone</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1762859%2F1314eb9f-c439-4822-9f15-cc45de270cff.png</url>
      <title>DEV Community: Peter Ma</title>
      <link>https://dev.to/peter8icestone</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peter8icestone"/>
    <language>en</language>
    <item>
      <title>Aegis v1.3: Quality Guardrails for AI-Assisted Development — Testing Standards with Code Examples</title>
      <dc:creator>Peter Ma</dc:creator>
      <pubDate>Sat, 28 Mar 2026 05:16:10 +0000</pubDate>
      <link>https://dev.to/peter8icestone/aegis-v120-quality-guardrails-that-scale-across-ai-agent-workspaces-4g13</link>
      <guid>https://dev.to/peter8icestone/aegis-v120-quality-guardrails-that-scale-across-ai-agent-workspaces-4g13</guid>
      <description>&lt;p&gt;AI writes code at 100x speed. But without guardrails, it also breaks things at 100x speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Gets Worse at Scale
&lt;/h2&gt;

&lt;p&gt;If you've used AI coding agents (Claude Code, Codex, Cursor, Gemini CLI), you've probably noticed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend agent assumes one API format, backend agent implements another.&lt;/strong&gt; Integration day is a bloodbath.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mock-based tests give false confidence.&lt;/strong&gt; Both sides "pass" their tests. Neither works with the other.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contracts drift silently.&lt;/strong&gt; Agent A adds a field, Agent B doesn't know, Agent C picks a random default.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These problems get exponentially worse when agents work in separate workspaces.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aegis: Five Layers of Defense
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/skill-forge-ai/aegis" rel="noopener noreferrer"&gt;Aegis&lt;/a&gt; is an open-source AgentSkill that enforces structured quality at every phase:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Layer 0: Automated Guardrails  ← lint, type-check, format (pre-commit + CI)
Layer 1: Design                ← Design Brief before any code
Layer 2: Contract              ← OpenAPI spec + shared types + error codes
Layer 3: Implementation        ← Code against contract, not freestyle
Layer 4: Verification          ← Contract tests → Integration → E2E
Layer 5: PM                    ← Gap tracking, quality gates
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What's New in v1.3: Production-Ready Testing Standards
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🧪 Frontend Testing Standard
&lt;/h3&gt;

&lt;p&gt;Aegis now mandates a concrete frontend testing stack with copy-paste-ready patterns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Vitest + React Testing Library + MSW&lt;/strong&gt; (or framework equivalents)&lt;/li&gt;
&lt;li&gt;API client tests: normal / error / auth for every function&lt;/li&gt;
&lt;li&gt;Data hooks tests: loading / success / error states&lt;/li&gt;
&lt;li&gt;Component render tests for key UI components&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MSW handlers must import types from contracts/&lt;/strong&gt; — no ad-hoc mock data
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// MSW handlers use contract types — not ad-hoc data&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Product&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../../contracts/shared-types&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mockProducts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;prod_1&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Basic&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;price&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;999&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;currency&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;usd&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;interval&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;month&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;handlers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/products&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;HttpResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mockProducts&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔌 Backend HTTP E2E Standard
&lt;/h3&gt;

&lt;p&gt;Every API endpoint gets real HTTP tests — no mocking your own services:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight go"&gt;&lt;code&gt;&lt;span class="k"&gt;func&lt;/span&gt; &lt;span class="n"&gt;TestCreateProduct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;testing&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;T&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;db&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;setupTestDB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;srv&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;httptest&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NewServer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;NewRouter&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

    &lt;span class="c"&gt;// Happy path&lt;/span&gt;
    &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="o"&gt;:=&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;URL&lt;/span&gt;&lt;span class="o"&gt;+/&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;products&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;application&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="n"&gt;strings&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;NewReader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;`{name:Pro,price:2999}\`&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;require&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Equal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;201&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StatusCode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c"&gt;// Mutation verification: GET the created resource&lt;/span&gt;
    &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;_&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;srv&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;URL&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;products&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;created&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;require&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Equal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;resp&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StatusCode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c"&gt;// Bad request → 400, Auth failure → 401&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Coverage matrix per endpoint: 200 / 400 / 404 / 401 / mutation verification.&lt;/p&gt;

&lt;p&gt;Language-specific tools included: Go, TypeScript, Python, Rust, Java.&lt;/p&gt;

&lt;h3&gt;
  
  
  📋 Test Strategy = Design Artifact
&lt;/h3&gt;

&lt;p&gt;Full-stack features now require a complete testing strategy &lt;strong&gt;in the Design Brief&lt;/strong&gt; before code begins. The template includes structured tables for endpoint coverage.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Cross-Workspace Intelligence (from v1.1)
&lt;/h3&gt;

&lt;p&gt;Aegis auto-detects your workspace architecture and adjusts the contract strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monorepo&lt;/strong&gt; → contracts inside the project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Split Workspace&lt;/strong&gt; → asks you to clarify&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Agent&lt;/strong&gt; → dedicated contract repository&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# ClawHub&lt;/span&gt;
npx clawhub &lt;span class="nb"&gt;install &lt;/span&gt;aegis-quality-guardian

&lt;span class="c"&gt;# Claude Code&lt;/span&gt;
git clone https://github.com/skill-forge-ai/aegis.git
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; aegis/cc-skill ~/.claude/skills/aegis

&lt;span class="c"&gt;# Initialize a project&lt;/span&gt;
bash ~/.claude/skills/aegis/scripts/init-project.sh /path/to/project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What's Included
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;5-phase workflow with workspace detection&lt;/li&gt;
&lt;li&gt;8 templates (Design Brief with testing matrix, CLAUDE.md, OpenAPI spec, etc.)&lt;/li&gt;
&lt;li&gt;6 scripts (project init, guardrails, contract validation, type generation)&lt;/li&gt;
&lt;li&gt;3 reference guides with concrete code examples&lt;/li&gt;
&lt;li&gt;Works with Claude Code, Codex, Gemini CLI, Cursor, OpenClaw&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/skill-forge-ai/aegis" rel="noopener noreferrer"&gt;skill-forge-ai/aegis&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;ClawHub:&lt;/strong&gt; &lt;code&gt;npx clawhub install aegis-quality-guardian\&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Release:&lt;/strong&gt; &lt;a href="https://github.com/skill-forge-ai/aegis/releases/tag/v1.3.1" rel="noopener noreferrer"&gt;v1.3.1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agentskill</category>
      <category>coding</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Aegis: Stop AI Agents from Turning Your Codebase into Chaos</title>
      <dc:creator>Peter Ma</dc:creator>
      <pubDate>Fri, 27 Mar 2026 15:21:58 +0000</pubDate>
      <link>https://dev.to/peter8icestone/aegis-stop-ai-agents-from-turning-your-codebase-into-chaos-hh7</link>
      <guid>https://dev.to/peter8icestone/aegis-stop-ai-agents-from-turning-your-codebase-into-chaos-hh7</guid>
      <description>&lt;p&gt;AI coding agents are incredibly productive — until they're not.&lt;/p&gt;

&lt;p&gt;You've probably seen it: you ask an AI to build a feature, and it delivers something that &lt;em&gt;works&lt;/em&gt; but silently breaks three other things. The API contract drifts from the frontend's expectations. Types are duplicated across packages. Error handling is inconsistent. There's no test that catches the drift because nobody defined what "correct" means upfront.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the real cost of AI-assisted development at scale.&lt;/strong&gt; Not the code quality of individual files — AI writes decent code. The problem is &lt;em&gt;coherence across a system&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Root Cause
&lt;/h2&gt;

&lt;p&gt;Most AI coding workflows are &lt;strong&gt;implementation-first&lt;/strong&gt;: you describe what you want, the agent writes code, you review it. This works for small tasks. But for anything beyond a single file — multi-service APIs, full-stack features, team projects — you're missing the layer that keeps everything consistent:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contracts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In traditional engineering, we solve this with API specs, shared type definitions, and design documents. But when AI agents generate code, they often skip straight to implementation, hallucinating interfaces that may or may not match what other parts of the system expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Aegis?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Aegis&lt;/strong&gt; is an open-source &lt;a href="https://docs.anthropic.com/en/docs/agents-and-tools/agent-skills/overview" rel="noopener noreferrer"&gt;AgentSkill&lt;/a&gt; that adds five layers of defense to AI-assisted development:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Design → Contract → Implementation → Verification → PM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each phase builds on the previous:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Design Phase
&lt;/h3&gt;

&lt;p&gt;Before any code is written, Aegis requires a &lt;strong&gt;Design Brief&lt;/strong&gt; — a structured document that captures:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Problem statement and user stories&lt;/li&gt;
&lt;li&gt;Technical approach and architecture decisions&lt;/li&gt;
&lt;li&gt;API boundaries and data flow&lt;/li&gt;
&lt;li&gt;Risk assessment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't a 50-page spec. It's a focused, 1-2 page brief that ensures the AI agent and the developer agree on &lt;em&gt;what&lt;/em&gt; they're building before &lt;em&gt;how&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Contract Phase
&lt;/h3&gt;

&lt;p&gt;The core of Aegis. Before implementation, you define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI specs&lt;/strong&gt; for every API endpoint&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shared types&lt;/strong&gt; (TypeScript/protobuf/JSON Schema) used across services&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error code registry&lt;/strong&gt; — unified error handling, no ad-hoc HTTP 500s&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These contracts become the single source of truth. The AI agent generates code &lt;em&gt;against&lt;/em&gt; contracts, not into thin air.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Implementation Phase
&lt;/h3&gt;

&lt;p&gt;Now the agent writes code — but constrained by contracts. The generated CLAUDE.md (or equivalent config) includes Aegis rules that enforce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All API handlers must match the OpenAPI spec&lt;/li&gt;
&lt;li&gt;All shared types must come from the contract package&lt;/li&gt;
&lt;li&gt;All errors must use registered error codes&lt;/li&gt;
&lt;li&gt;No magic numbers, no ad-hoc interfaces&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Verification Phase
&lt;/h3&gt;

&lt;p&gt;Aegis includes scripts and templates for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contract tests&lt;/strong&gt; — does the implementation match the spec?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gap reports&lt;/strong&gt; — what's in the design brief but not in the code?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration tests&lt;/strong&gt; — do the services actually talk to each other correctly?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. PM Phase
&lt;/h3&gt;

&lt;p&gt;Progress tracking and quality gates. Know what's done, what's pending, and what's drifted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Two Modes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Lite Mode&lt;/strong&gt; — Just the Design Brief. Perfect for solo devs or small features. Takes 5 minutes to set up, prevents 80% of the chaos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Full Mode&lt;/strong&gt; — Complete contract-first workflow. For teams, complex projects, or anything with more than one service boundary.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Start
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Claude Code users:&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;git clone https://github.com/skill-forge-ai/aegis.git /tmp/aegis &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; /tmp/aegis/cc-skill ~/.claude/skills/aegis &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;-rf&lt;/span&gt; /tmp/aegis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;OpenClaw users:&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;npx clawhub@latest &lt;span class="nb"&gt;install &lt;/span&gt;aegis-quality-guardian
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Then initialize in your project:&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;bash ~/.claude/skills/aegis/scripts/init-project.sh /path/to/your/project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What's Included
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Count&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Templates&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Design Brief, CLAUDE.md, OpenAPI starter, shared types, error codes, contract tests, integration tests, implementation summary&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scripts&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;Project init, stack detection, contract validation, gap report, type generation, guardrails setup&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;References&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Contract-first guide, testing strategy, multi-agent protocol&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why Open Source?
&lt;/h2&gt;

&lt;p&gt;Because quality guardrails shouldn't be proprietary. Every team using AI agents faces the same coherence problem. Aegis is MIT-licensed and designed to be extended:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add templates for your language/framework&lt;/li&gt;
&lt;li&gt;Customize the Design Brief for your domain&lt;/li&gt;
&lt;li&gt;Contribute contract validation rules&lt;/li&gt;
&lt;li&gt;Build on the multi-agent coordination protocol&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Compatibility
&lt;/h2&gt;

&lt;p&gt;Aegis works with any agent that supports the AgentSkill spec:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Claude Code&lt;/li&gt;
&lt;li&gt;✅ OpenAI Codex CLI&lt;/li&gt;
&lt;li&gt;✅ Gemini CLI&lt;/li&gt;
&lt;li&gt;✅ Cursor&lt;/li&gt;
&lt;li&gt;✅ OpenClaw&lt;/li&gt;
&lt;li&gt;✅ Any tool that reads SKILL.md&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📦 &lt;strong&gt;Repository:&lt;/strong&gt; &lt;a href="https://github.com/skill-forge-ai/aegis" rel="noopener noreferrer"&gt;github.com/skill-forge-ai/aegis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🏪 &lt;strong&gt;ClawHub:&lt;/strong&gt; &lt;a href="https://clawhub.ai/PeterHiroshi/aegis-quality-guardian" rel="noopener noreferrer"&gt;aegis-quality-guardian&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📄 &lt;strong&gt;License:&lt;/strong&gt; MIT&lt;/li&gt;
&lt;li&gt;🏷️ &lt;strong&gt;Latest Release:&lt;/strong&gt; &lt;a href="https://github.com/skill-forge-ai/aegis/releases/tag/v1.1.0" rel="noopener noreferrer"&gt;v1.1.0&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🤝 &lt;strong&gt;Contributing:&lt;/strong&gt; &lt;a href="https://github.com/skill-forge-ai/aegis/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;CONTRIBUTING.md&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built by &lt;a href="https://github.com/skill-forge-ai" rel="noopener noreferrer"&gt;SkillForge AI&lt;/a&gt; — open-source AI agent skills for the community.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Star the repo if you find it useful. And if you've built quality guardrails for your own AI workflows, we'd love your contributions.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agentskill</category>
      <category>coding</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
