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.

  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

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