A declaration buys fewer stages, never fewer boundaries
The ai-native-sdlc plugin packages six stages as committed Markdown artifacts and uses an opt-in PreToolUse gate to block uncovered source-code writes.
I watched a team adopt an AI-native lifecycle as a wiki page. Six stages, a gate at each handoff, everyone nodding in the review meeting. Three months later nobody could say which changes had actually gone through it. The page was still there. The process was not.
That is the failure mode this plugin is built against. A process you cannot verify is not a process, and under deadline the unverifiable step is always the first one to go.
So the rules live in hooks, not prose.
Six stages, one artifact each. Plan writes intent.md: the problem, the outcome, the constraints, the open questions. Design turns an accepted intent into spec.md. Build reviews plan.md before a line of code exists, then implements it in the declared order. Test proves it. Deploy runs the REVIEW.md passes on the pull request. Maintain watches control bands and files the next intent.md when one breaks. Every artifact is committed Markdown, so the history of a change stays readable to the next person and the next agent.
The enforcement is a PreToolUse hook. In an opted-in repository, when an active plan includes a `## Files that change` section, the hook checks source-code write paths against that list. An uncovered source path exits 2 before the tool call runs. Add `.sdlc/OPTOUT` to disable the gate. It runs before the tool action, not as a later lint check.
The part I argued with myself about is the fast path. Real teams fix typos, and making a typo walk through intent and spec is how a process earns contempt. So a person can declare a change low-risk, and it enters at Build, skipping two stages.
What it does not skip is the boundary. The same hook refuses that change any path listed under Sensitive paths in REVIEW.md: CI workflows, project memory, the review policy itself. REVIEW.md is on its own list, so the fast path cannot be used to empty the list that constrains it. Stage 5 then re-checks the real diff, because a declared file list is a claim about work that has not happened yet.
Review is bounded on purpose, following what Anthropic published about running code review at scale. Three rounds. After the first, only the diff since the reviewed SHA. No finding posted twice. One defect across several call sites reported once, as a class, with every instance required fixed. A separate verifier runs in a clean context and decides whether a finding is real before it reaches the author: it sees the finding and the code, never the reasoning behind it. At the cap the change goes back to its plan, because rounds that keep finding more mean the approach is wrong, not that the review is working.
Two subagents have separate jobs. The reviewer checks the plan before Build, reviews the diff later, and verifies findings before they reach the author. The diagnostician investigates a control-band breach and outputs a draft `intent.md`; a human accepts it before work begins.
Every hook is inert unless the repository has a .sdlc/ directory, so installing this changes nothing until a project opts in. MIT, and one source builds both the Claude Code and the Codex plugin, so the two cannot drift.
You can try the gate without installing anything. Clone the repository, export GATE to plugins/ai-sdlc/hooks/artifact-gate.sh, source docs/demo-setup.sh, then run the gate twice: README.md returns exit 0, REVIEW.md returns exit 2.
That second exit code is the whole argument.
Source: https://github.com/ghiaog123/ai-native-sdlc
Listing: https://hol.org/registry/plugins/ghiaog123%2Fai-native-sdlc
Continue reading
All posts
Why I built jevmem, and what it guards against
Why I built jevmem, a project memory plugin for Claude Code, and the three things it guards against, with numbers from my own tests.

Launch story: RAPR AI
Run Claude Code, Codex, Ollama and other AI agents side by side on your own machine, and control them from your browser, Telegram or WhatsApp.

Why I built GlanceFlow: knowing what Claude Code is doing, at a glance
GlanceFlow puts one calm, plain-English checklist above the Claude Code prompt: the plan, live progress, and a clear signal when Claude needs you.
