PDLC

A Claude Code plugin that gives Claude a complete Product Development Life Cycle workflow.

31 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.

🎯 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 31 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 (17)

UI / DB / architecture / security / perf / code-gen / scaffolding / i18n / migration / changelog / bootstrap / adopt / onboard / 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.0.0  Status: ✔ enabled

After restarting your Claude Code session, type / and start typing pdlc- — autocomplete will show all 31 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.

  1. Persist to disk — every artifact is a real file, not just chat output
  2. Update the state machine — every completed stage writes docs/.pdlc-state/<feature-id>.json
  3. Tests first — code cannot be implemented until a failing test exists (TDD red light)
  4. Self-check — every stage runs a self-audit before handing off
  5. 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

📄 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? No — PDLC is a Claude Code plugin that uses Claude Code’s plugin / slash-command infrastructure. Currently Claude Code is the only target.

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.