agent-sdlc
A software development lifecycle shipped as agent config for Claude Code and Codex: rules, skills, slash commands, hooks, and a diff-scoped mutation gate.
Docs: https://pavelguzenfeld.com/agent-sdlc/
Why
A coding agent writes the code and the tests for it, and tests written next to the code tend to agree with it, bugs included. On a mature suite, 57% of real bug-class mutants survived. agent-sdlc puts that check, plus scope, intent and git safety, into hooks and a gate instead of leaving them to the agent's memory.
| Problem | What catches it |
|---|---|
| Tests that pass but assert nothing | mutation-gate: a surviving mutant blocks the commit |
| Tests shaped to the code | An adversary review that sees intent and tests, never the code |
| Scope creep | 40-line limit without a ticket; one ticket, one branch, one PR |
| Design notes rotting in the tree | New .md files are blocked; intent lives in the tracker |
| Destructive git | A hook that denies reset --hard, add -A, force-push |
| AI tells and leaked identity in commits | commit-msg and no-leaks hooks |
Example
def is_adult(age):
return age >= 18
def test_adult():
assert is_adult(30)
def test_child():
assert not is_adult(5)
BLOCKED: 2 mutant(s) survived with no waiver.
age.py:2:11:operator:age >= 18 => age > 18
age.py:2:18:literal:18 => 19
Add assert is_adult(18) and assert not is_adult(17), and the gate passes.
Install
Claude Code:
claude plugin marketplace add PavelGuzenfeld/agent-sdlc
claude plugin install agent-sdlc@agent-sdlc
Tools the gate needs, and Codex:
git clone https://github.com/PavelGuzenfeld/agent-sdlc
cd agent-sdlc
./install.sh --deps
| Want | Do |
|---|---|
| Claude Code | The plugin above; --scope local or --scope project keeps it to one repo |
| Codex | ./install.sh --target codex, or add the repo as a Codex marketplace source |
| Gate dependencies | ./install.sh --deps (--deps=say adds voice) |
| Only the gate | pip install agent-sdlc (WordNet check: agent-sdlc[vocabulary]) |
| The gate on a repo | Add .mutation-gate.toml, wire the pre-commit hooks |
install.shlinksskills/into~/.codexand renderscommands/as Codex skills. It installs nothing into~/.claude. A second run changes nothing.- Installed an older
install.shinto~/.claude?./install.sh --uninstall-legacyremoves those links and hooks, or every hook fires twice. ast-grep-cliadds ansgshim that can shadow the systemsg; callast-grep.
Use it
In Claude Code (Codex: $name instead of /name):
- Install the plugin and
./install.sh --deps - In your repo:
touch .mutation-gate.toml && mutation-gate rules sync claude, then/grill <idea>orgh issue create …- Approve the ticket:
gh issue edit 42 --add-label model:sonnet /kata 42: a worker writes the failing test, implements, gates, opens the PR- Review, then type
LGTM: it squash-merges and cleans up /doneto close out the session
Full walkthrough, and what differs in Codex: https://pavelguzenfeld.com/agent-sdlc/usage/
What's inside
| Path | What |
|---|---|
rules/ |
How to work; synced into a repo with mutation-gate rules sync |
commands/ |
Slash commands: /kata, /done, /grill, /rectify … |
skills/ |
On-demand playbooks: /diagnose, /sol-budget, /verify-generated-diff … |
bin/ |
Hooks and helpers: git-guardrail.sh, the /say stack |
mutation_gate/ |
The gate and the mutation-gate CLI |
CI runs scripts/no-leaks.sh on every PR. It flags emails, RFC1918
addresses, user-at-host references, /home/<user>/ paths and non-personal
ghcr.io/ paths, and prints only file:line.
MIT, see LICENSE and NOTICE.md for one vendored third-party skill. Contributions: CONTRIBUTING.md, bound by CODE_OF_CONDUCT.md. Security: SECURITY.md.
Metadata
Release files for agent-sdlc 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| agent_sdlc-0.3.1.tar.gz | 77.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| agent_sdlc-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 170.0 kB
Release files / agent_sdlc-0.3.1.tar.gz
| Download URL | agent_sdlc-0.3.1.tar.gz |
|---|---|
| Size | 77.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
04ce79b1b1dce0772439b45bacbffd6326d1cf96bceadb3a53908f39004c059e
|
|
BLAKE2b-256 checksum How to use checksums |
140ef2b740722f4ffd3a20dd9ccdb354f7f0c524e226f24f8008933e17f9fd3d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / agent_sdlc-0.3.1-py3-none-any.whl
| Download URL | agent_sdlc-0.3.1-py3-none-any.whl |
|---|---|
| Size | 92.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
48c56db21e773b73b23a3e7299580c9c142665f35862b6445016a7f62e915e42
|
|
BLAKE2b-256 checksum How to use checksums |
c4723315e4f81c528da6c71e8ac0d36aac6ca0ba5d187086a62019cb9fa26368
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency log