PDLC
A Claude Code plugin that gives Claude a complete Product Development Life Cycle workflow.
36 standardized stages exposed as slash commands. Every artifact lands on disk, every stage updates a state machine, tests must exist before code. Soft conventions become hard contracts.
✨ Why PDLC
📝 Artifacts on disk
Every stage produces real files under docs/. No more "PRDs that only live in the chat transcript." You can git diff exactly what the AI did.
📊 State machine per feature
docs/.pdlc-state/<feature-id>.json records every stage transition. /pdlc-status always knows where each feature stands.
🚦 Tests before code
A hard TDD red-light gate. Implementation is blocked until failing tests exist. No more retroactive "let me also write some tests."
🔍 Self-check at every handoff
Each stage runs a self-audit before transitioning. Drift is caught at the stage boundary, not weeks later in review.
🛠️ One-shot auto-repair
Auto-fix loops run at most once. Stubborn failures are surfaced to humans rather than spiraling in "fix → check → fix" forever.
🧭 Explicit next_step
Every stage declares its successor. Multi-stage flows are command-driven, not memorized by you or the AI.
🔁 Autonomous convergence (loop engineering)
/pdlc-loop-run drives tdd → implement → review to review_done unattended — reading the state machine each round, with hard guardrails (max-steps / fail-stop / stuck-stop). Release always stays a human gate.
🌐 More than one AI tool
Deepest support on Claude Code (plugin + statusline + loop engine). The same single-source SKILL bodies project to Codex as native skills, and a platform-neutral methodology drives PDLC in natural language on any AI tool — the per-feature state machine carries over across them.
🎯 What it does for you
Ship a feature end-to-end
/pdlc-feature add phone-number verification to login — PDLC walks through PRD → Design → TDD → Implement → Review → Ship, persisting every artifact along the way.
Fix a bug with audit trail
/pdlc-fix the pagination crash on empty lists — locate, reproduce, fix, test, document. The defect file in docs/04_testing/defects/ outlives the chat session.
See where every feature stands
/pdlc-status reads every state machine file and shows you at a glance which features are in PRD, which are in TDD red light, which are ready to ship.
Adopt a legacy project
/pdlc-adopt surveys an existing codebase, fills in missing standards and design docs, and bootstraps the PDLC layout — without rewriting your code.
Run a retrospective with trends
/pdlc-retro compares the current iteration against past data captured in state machines — surfacing trends like "review pass rate dropped" or "TDD red-light skipped this sprint."
📦 The 36 commands, three layers
Layer 1 · Entry points (3)
/pdlc-feature · /pdlc-fix · /pdlc-status
One-sentence prompts drive the whole chain.
Layer 2 · Stages (11)
prd · design · tdd · implement · review · e2e · refactor · ship · deploy · retro · task
Fine-grained control over individual stages.
Layer 3 · Tools (22)
UI / DB / architecture / security / perf / code-gen / scaffolding / i18n / migration / changelog / bootstrap / adopt / onboard / autonomous loop / statusline config / feature relations / standards / etc.
Specialized stages you can invoke explicitly.
Distribution
Shipped as a standard Claude Code plugin. ~/.claude/plugins/pdlc/ after install.
MIT license · open source on GitHub.
⬇️ Install
One-liner (global)
Installs to ~/.claude/plugins/pdlc/. No clone needed.
curl -fsSL https://raw.githubusercontent.com/kanfu-panda/pdlc-skills/main/install.sh \
| bash -s -- --global
Project-scoped
Installs into a specific project's .claude/plugins/pdlc/.
curl -fsSL https://raw.githubusercontent.com/kanfu-panda/pdlc-skills/main/install.sh \
| bash -s -- --project /path/to/my-project
Equivalent native commands
If you’d rather use Claude Code’s plugin CLI directly:
claude plugin marketplace add kanfu-panda/pdlc-skills
claude plugin install pdlc@pdlc-skills
Verify the install
claude plugin list | grep pdlc
# expected: pdlc@pdlc-skills Version: 1.5.2 Status: ✔ enabled
After restarting your Claude Code session, type / and start typing pdlc- — autocomplete will show all 36 sub-commands.
🧪 Quick start (3 steps)
# 1. Install
curl -fsSL https://raw.githubusercontent.com/kanfu-panda/pdlc-skills/main/install.sh \
| bash -s -- --global
# 2. Ship a feature (in Claude Code)
/pdlc-feature add a captcha to login
# 3. Fix a bug
/pdlc-fix the pagination crash on empty lists
Check progress any time with /pdlc-status.
🛡️ The Iron Law
Every Layer 1 / Layer 2 stage that produces artifacts enforces five invariants. Read-only stages (such as /pdlc-status) are exempt.
- Persist to disk — every artifact is a real file, not just chat output
- Update the state machine — every completed stage writes
docs/.pdlc-state/<feature-id>.json - Tests first — code cannot be implemented until a failing test exists (TDD red light)
- Self-check — every stage runs a self-audit before handing off
- One-shot repair — auto-fix loops run at most once; stubborn failures get flagged for humans
📁 Target-project contract
When a stage runs, it reads and writes these paths in your project:
docs/00_standards/coding/ # coding standards (read-only)
docs/01_requirements/prd/ # PRDs
docs/02_design/{api,database,architecture,ui-ux}/ # technical design
docs/03_development/ # developer manuals
docs/04_testing/{unit-tests,e2e-tests,defects,...} # tests & defects
docs/05_deployment/ # deployment docs
docs/06_tasks/ # in-stage task tracking
docs/07_reviews/{doc,code,design,retro}/ # review records
docs/.pdlc-state/<feature-id>.json # per-feature state machine
📚 Article series
I’m writing a blog series on the thinking behind PDLC, from concepts through to practice:
| # | Title |
|---|---|
| 01 | Prompt Engineering, Loop Engineering, Graph Engineering: What Are They? |
| 02 | Why Does pdlc-skills Fit All Three Engineering Paradigms So Naturally? |
Coming up: why PDLC lands on these three layers, how they interlock, getting it running on a project, how quality is enforced, and unattended runs.
📄 License
MIT. Use it, fork it, ship it. Source code, issue tracker, and full documentation: github.com/kanfu-panda/pdlc-skills.
❓ FAQ
Q: Does it work without Claude Code?
PDLC has the deepest, most complete support on Claude Code — the full plugin with statusline and the autonomous loop engine. As of v1.5, the same single-source SKILL bodies also project to Codex (native, description-triggered skills) via a build-time adapter, and the platform-neutral methodology doc lets you drive PDLC in natural language on any AI coding tool. The per-feature state machine (docs/.pdlc-state/) carries over across tools. As of v1.5.2, an external Runbook driver (adapters/codex-loop-run.sh) even runs the autonomous tdd → implement → review convergence loop on Codex — release stays a human gate — after clearing a state-integrity admission gate on a real run.
Q: Will it modify my code without asking?
Stages that produce artifacts do write files (under docs/ and your code base when implementing). Each stage runs a self-check and surfaces a handoff before continuing to the next. Your normal Claude Code permission prompts still apply.
Q: How do I customize templates?
Clone the repo, edit references/templates/*.md or skills/pdlc-*/SKILL.md, then run bash install.sh --global from the clone to install your customized version. See CONTRIBUTING.md.
Q: Found a bug or want to discuss? Use GitHub Discussions for design/usage questions, Issues for confirmed bugs. For private security concerns, see the project’s SECURITY.md.