Unified skill for managing the entire PDCA cycle. Auto-triggered by keywords: "plan", "design", "analyze", "report", "status". Replaces legacy /pdca-* commands.
Use proactively when user mentions...
Unified Skill for managing PDCA cycle. Supports the entire Plan → Design → Do → Check → Act flow.
| Argument | Description | Example |
|---|---|---|
pm [feature] |
Run PM Agent Team analysis (pre-Plan) | /pdca pm user-auth |
plan [feature] |
Create Plan document | /pdca plan user-auth |
design [feature] |
Create Design document | /pdca design user-auth |
do [feature] |
Do phase guide (start implementation) | /pdca do user-auth |
analyze [feature] |
Run Gap analysis (Check phase) | /pdca analyze user-auth |
iterate [feature] |
Auto improvement iteration (Act phase) | /pdca iterate user-auth |
qa [feature] |
Run QA phase (L1-L5 tests) | /pdca qa user-auth |
report [feature] |
Generate completion report | /pdca report user-auth |
archive [feature] |
Archive completed PDCA documents | /pdca archive user-auth |
cleanup [feature] |
Cleanup archived features from status | /pdca cleanup |
team [feature] |
Start PDCA Team Mode (requires Agent Teams) | /pdca team user-auth |
team status |
Show Team status | /pdca team status |
team cleanup |
Cleanup Team resources | /pdca team cleanup |
status |
Show current PDCA status | /pdca status |
next |
Guide to next phase | /pdca next |
Run PM Agent Team for product discovery and strategy analysis before Plan phase.
docs/00-pm/{feature}.prd.md[PM] {feature}.bkit/state/pdca-status.json: phase = "pm"/pdca plan {feature}Output Path: docs/00-pm/{feature}.prd.md
Requirements:
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1templates/plan.template.md to understand the required Plan document structure and sections. Use this template's sections as your document outline. This is MANDATORY — do not generate Plan documents from memory or assumptions.docs/00-pm/{feature}.prd.md exists/pdca pm {feature} first for better results)docs/01-plan/features/{feature}.plan.md existsplan.template.md[PM] {feature} Task exists and is still in_progress, use TaskList to find it and TaskUpdate it to status: "completed" before creating the Plan Task (see Phase Transition Rule). Then Create Task: [Plan] {feature}.bkit/state/pdca-status.json: phase = "plan"## Executive Summary at document top with 4-perspective table (Problem/Solution/Function UX Effect/Core Value), each 1-2 sentences## Context Anchor table between Executive Summary and Section 1. This anchor propagates to Design/Do documents for cross-session context continuity.Output Path: docs/01-plan/features/{feature}.plan.md
Tip: For features with ambiguous requirements or multiple implementation approaches, use
/plan-plus {feature}instead. Plan Plus adds brainstorming phases (intent discovery, alternatives exploration, YAGNI review) before document generation for higher-quality plans.
templates/design.template.md to understand the required Design document structure. Use this template's sections as your document outline. This is MANDATORY — do not generate Design documents from memory or assumptions.docs/00-pm/{feature}.prd.md exists. If found, read the Executive Summary and Beachhead/GTM sections to inform architecture decisions with market context. This prevents strategic context loss at the Plan→Design handoff.## Context Anchor table to Design document top (between header metadata and ## 1. Overview). If Plan has no Context Anchor (legacy), skip this step gracefully.docs/02-design/features/{feature}.design.md using selected architecturedesign.template.md structure + reference Plan content## 11. Implementation Guide structure to generate Module Map and Recommended Session Plan. Add as ### 11.3 Session Guide within Implementation Guide section. This enables /pdca do {feature} --scope module-N for multi-session incremental implementation./design-anchor capture {feature} 로 디자인 토큰을 잠그세요"docs/02-design/styles/{feature}.design-anchor.md), embed it in the Design document as ## Design Anchor section[Plan] {feature} Task (and any earlier phase Task for this feature still in_progress) and TaskUpdate each to status: "completed" — this resolves the blockedBy chain and prevents stale phase status from leaking into prompt context (see Phase Transition Rule). Then Create Task: [Design] {feature} (blockedBy: Plan task).bkit/state/pdca-status.json: phase = "design"Output Path: docs/02-design/features/{feature}.design.md
docs/00-pm/{feature}.prd.md) — extract WHY context (JTBD, value proposition, market positioning)docs/01-plan/features/{feature}.plan.md) — extract Context Anchor, Success Criteria, Requirements📋 Decision Record Chain
[PRD] Target: {market/user segment} — {rationale}
[Plan] Architecture: {selected option} — {rationale}
[Design] State Mgmt: {selected approach} — {rationale}
--scope <value>, extract module list (comma-separated scope keys). Match against Design's Session Guide Module Map. Filter implementation items to show only matching modules.do.template.md// Design Ref: §{section} — {decision rationale}// Plan SC: {success criteria being addressed}[Design] {feature} Task (and any earlier phase Task for this feature still in_progress) and TaskUpdate each to status: "completed" — this resolves the blockedBy chain and prevents stale phase status from leaking into prompt context (see Phase Transition Rule). Then Create Task: [Do] {feature} (blockedBy: Design task).bkit/state/pdca-status.json: phase = "do"--scope Parameter:
/pdca do feature # Full scope (backward compatible) + session guide
/pdca do feature --scope module-1 # Only module-1
/pdca do feature --scope module-1,module-2 # Multiple modules
Guide Provided:
Verify Do completion status (implementation code exists)
Full Upstream Context Loading (Phase 2+3): Load the COMPLETE upstream document chain for comprehensive evaluation:
docs/00-pm/{feature}.prd.md) — verify strategic alignment (was the right problem solved?)docs/01-plan/features/{feature}.plan.md) — verify Requirements fulfillment + Success Criteriadocs/02-design/features/{feature}.design.md) — verify structural implementation matchContext Anchor Embed: Copy Context Anchor from Design to Analysis document header.
Strategic Alignment Check (Phase 3): Before structural gap analysis, verify:
Plan Success Criteria Reference: Evaluate each Success Criteria from Plan:
Call gap-detector Agent (v2.3.0: Static Analysis + Runtime Verification Plan)
Compare Design document vs implementation code on 3 static axes:
Runtime Verification (v2.3.0): After gap-detector completes, execute runtime tests.
tests/e2e/{feature}.spec.ts (written during Do phase)L1 — API Endpoint Tests (always run if server is available):
curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/L2 — UI Action Tests (run if Playwright is installed):
tests/e2e/{feature}-actions.spec.tsnpx playwright test tests/e2e/{feature}-actions.spec.tspnpm add -D @playwright/testL3 — E2E Scenario Tests (run if Playwright is installed):
tests/e2e/{feature}-e2e.spec.tsnpx playwright test tests/e2e/{feature}-e2e.spec.tsMatch Rate Formula (v2.3.0):
If runtime executed:
Overall = (Structural × 0.15) + (Functional × 0.25)
+ (Contract × 0.25) + (Runtime × 0.35)
If static only (no server):
Overall = (Structural × 0.2) + (Functional × 0.4) + (Contract × 0.4)
Calculate Match Rate and generate Gap list. Report all rates separately.
Decision Record Verification (Phase 3): Check if key decisions from Decision Record Chain were followed in implementation. Flag deviations.
Checkpoint 5 — Review Decision: Present issues by severity (Critical/Important only, confidence ≥80%). Use AskUserQuestion with options:
Complete predecessor Task first: Use TaskList to find the [Do] {feature} Task (and any earlier phase Task for this feature still in_progress) and TaskUpdate each to status: "completed" — this resolves the blockedBy chain and prevents stale phase status from leaking into prompt context (see Phase Transition Rule). Then Create Task: [Check] {feature} (blockedBy: Do task)
Update .bkit/state/pdca-status.json: phase = "check", matchRate
Output Path: docs/03-analysis/{feature}.analysis.md
/qa-phase {feature} skill,
which owns L1-L5 test planning, generation, execution, and reporting.qa-test-planner to refine L1-L5 test specsqa-test-generator to emit runnable test filesQA_PASS → auto-advance to report phaseQA_FAIL → fall back to iterate phaseQA_SKIP → mark qa as skipped, proceed to report[Check] {feature} Task and the latest [Act-N] {feature} Task (and any earlier phase Task for this feature still in_progress) and TaskUpdate each to status: "completed" (see Phase Transition Rule). Then Create Task: [QA] {feature}.bkit/state/pdca-status.json: phase = "qa", qaStatus = <PASS|FAIL|SKIP>Output Path: docs/05-qa/{feature}.qa-report.md
Agent: bkit:qa-lead (mapped via frontmatter agents.qa)
[Check] {feature} Task and any prior [Act-*] {feature} Task for this feature still in_progress and TaskUpdate each to status: "completed" (see Phase Transition Rule). Then Create Task: [Act-N] {feature} (N = iteration count)Iteration Rules:
templates/report.template.md to understand the required Report document structure. Use this template's sections as your document outline. This is MANDATORY — do not generate Report documents from memory or assumptions.## Executive Summary with ### 1.3 Value Delivered reflecting actual results (4 perspectives with metrics)[QA] {feature} Task (or the [Check] {feature} / latest [Act-N] {feature} Task if QA was skipped) and any earlier phase Task for this feature still in_progress, and TaskUpdate each to status: "completed" (see Phase Transition Rule). Then Create Task: [Report] {feature}.bkit/state/pdca-status.json: phase = "completed"Output Path: docs/04-report/{feature}.report.md
Start PDCA Team Mode using Claude Code Agent Teams (requires CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1).
isTeamModeAvailable() from lib/team/coordinator.jsCLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 to enable."detectLevel() - Starter projects cannot use Team ModegenerateTeamStrategy(level):assignNextTeammateWork()formatTeamStatus() from lib/team/coordinator.jsOutput Example:
📊 PDCA Team Status
─────────────────────────────
Agent Teams: Available ✅
Display Mode: in-process
Teammates: 4 / 4 (Enterprise)
─────────────────────────────
Feature: user-auth
architect: [Design] in progress
developer: [Do] waiting
qa: idle
reviewer: idle
team_session_ended in PDCA history via addPdcaHistory()Required Environment: CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
Level Requirements:
| Level | Available | Teammates | CTO Lead |
|---|---|---|---|
| Starter | No | - | - |
| Dynamic | Yes | 3 | cto-lead (fable) |
| Enterprise | Yes | 6 | cto-lead (fable) |
[Report] {feature} Task and any other [Phase] {feature} Task for this feature still in_progress, and TaskUpdate each to status: "completed" — the feature is terminal, so no phase Task should remain open (see Phase Transition Rule).docs/archive/YYYY-MM/{feature}/ folderdocs/archive/YYYY-MM/_INDEX.md)--summary option)Arguments:
| Argument | Description | Example |
|---|---|---|
archive {feature} |
Archive with complete cleanup (default) | /pdca archive user-auth |
archive {feature} --summary |
Archive with summary preservation (FR-04) | /pdca archive user-auth --summary |
Output Path: docs/archive/YYYY-MM/{feature}/
Documents to Archive:
docs/01-plan/features/{feature}.plan.mddocs/02-design/features/{feature}.design.mddocs/03-analysis/{feature}.analysis.mddocs/04-report/features/{feature}.report.mdFR-04: Summary Preservation Option (v1.4.8):
When using --summary (or --preserve-summary, -s), the feature data in .bkit/state/pdca-status.json
is converted to a lightweight summary instead of being deleted:
// Summary format (70% size reduction)
{
"my-feature": {
"phase": "archived",
"matchRate": 100,
"iterationCount": 2,
"startedAt": "2026-01-15T10:00:00Z",
"archivedAt": "2026-01-20T15:30:00Z",
"archivedTo": "docs/archive/2026-01/my-feature/"
}
}
Use --summary when you need:
Important Notes:
--summary to preserve metrics for future referenceClean up archived features from .bkit/state/pdca-status.json to reduce file size.
.bkit/state/pdca-status.jsoncleanupArchivedFeatures()Arguments:
| Argument | Description | Example |
|---|---|---|
cleanup |
Interactive cleanup (shows list) | /pdca cleanup |
cleanup all |
Delete all archived features | /pdca cleanup all |
cleanup {feature} |
Delete specific feature | /pdca cleanup old-feature |
Output Example:
🧹 PDCA Cleanup
─────────────────────────────
Archived features found: 3
1. feature-a (archived: 2026-01-15)
2. feature-b (archived: 2026-01-20)
3. feature-c (archived: 2026-01-25)
Select features to cleanup:
[ ] All archived features
[ ] Select specific features
[ ] Cancel
Related Functions (lib/pdca/status.js):
getArchivedFeatures() - Get list of archived featurescleanupArchivedFeatures(features?) - Cleanup specific or all archiveddeleteFeatureFromStatus(feature) - Delete single featureenforceFeatureLimit(max=50) - Auto cleanup when limit exceededNotes:
docs/archive/ (only status is cleaned).bkit/state/pdca-status.json (the live state-of-truth; via the
lib/pdca/status-core.js API). Note: .bkit-memory.json is a deprecated
v1.6.0 legacy path that no lib module reads or writes.Output Example:
📊 PDCA Status
─────────────────────────────
Feature: user-authentication
Phase: Check (Gap Analysis)
Match Rate: 85%
Iteration: 2/5
─────────────────────────────
[Plan] ✅ → [Design] ✅ → [Do] ✅ → [Check] 🔄 → [Act] ⏳
Phase Guide:
| Current | Next | Suggestion |
|---|---|---|
| None | pm | /pdca pm [feature] (recommended) or /pdca plan [feature] |
| pm | plan | /pdca plan [feature] (PRD auto-referenced) |
| plan | design | /pdca design [feature] |
| design | do | Implementation start guide |
| do | check | /pdca analyze [feature] |
| check (<90%) | act | /pdca iterate [feature] |
| check (>=90%) | report | /pdca report [feature] |
| report | archive | /pdca archive [feature] |
Templates loaded from imports are used when executing each action:
| Action | Template | Purpose |
|---|---|---|
| plan | plan.template.md |
Plan document structure |
| design | design.template.md |
Design document structure |
| do | do.template.md |
Implementation guide structure |
| analyze | analysis.template.md |
Analysis report structure |
| report | report.template.md |
Completion report structure |
Each PDCA phase automatically integrates with Task System:
Task Creation Pattern:
┌────────────────────────────────────────┐
│ [PM] {feature} │
│ ↓ (optional, pre-Plan) │
│ [Plan] {feature} │
│ ↓ (blockedBy) │
│ [Design] {feature} │
│ ↓ (blockedBy) │
│ [Do] {feature} │
│ ↓ (blockedBy) │
│ [Check] {feature} │
│ ↓ (blockedBy, Check < 90%) │
│ [Act-1] {feature} │
│ ↓ (on iteration) │
│ [Act-N] {feature} │
│ ↓ (Check >= 90%) │
│ [Report] {feature} │
│ ↓ (after Report completion) │
│ [Archive] {feature} │
└────────────────────────────────────────┘
The diagram above shows task creation. Advancing a phase also requires task completion:
Before creating a new phase's Task, mark every prior
[Phase] {feature}Task for this feature that is stillin_progressascompleted— useTaskListto find them andTaskUpdate {status: "completed"}on each. Thearchiveaction likewise completes the terminal[Report]Task.
Why this matters: a blockedBy chain is only semantically correct when the predecessor
is completed by the time the successor is created. More importantly, Claude Code surfaces
the native Task list into ambient prompt context every turn. If a predecessor Task is left
in_progress, that stale phase (e.g. "design" during a "do" phase) keeps leaking back to the
user — disagreeing with .bkit/state/pdca-status.json's phase field, which is the phase
source of truth. Completing predecessors keeps the two in sync. Each phase action above
embeds this step immediately before its Create-Task step.
| Action | Agent | Role |
|---|---|---|
| pm | pm-lead | Orchestrate PM Agent Team (4 sub-agents) |
| analyze | gap-detector | Compare Design vs Implementation |
| iterate | pdca-iterator | Auto code fix and re-verification |
| report | report-generator | Generate completion report |
# Run PM analysis (recommended before planning)
/pdca pm user-authentication
# Start new feature
/pdca plan user-authentication
# Create design document
/pdca design user-authentication
# Implementation guide
/pdca do user-authentication
# Gap analysis after implementation
/pdca analyze user-authentication
# Auto improvement (if needed)
/pdca iterate user-authentication
# Completion report
/pdca report user-authentication
# Check current status
/pdca status
# Guide to next phase
/pdca next
| Legacy Command | PDCA Skill |
|---|---|
/pdca-plan |
/pdca plan |
/pdca-design |
/pdca design |
/pdca-analyze |
/pdca analyze |
/pdca-iterate |
/pdca iterate |
/pdca-report |
/pdca report |
/pdca-status |
/pdca status |
/pdca-next |
/pdca next |
/archive |
/pdca archive |
PDCA workflows benefit from the bkit-pdca-guide output style:
/output-style bkit-pdca-guide
This provides PDCA-specific response formatting:
[Plan] -> [Design] -> [Do] -> [Check] -> [Act]When running PDCA commands, suggest this style if not already active.
For Dynamic/Enterprise projects, PDCA phases can run in parallel using Agent Teams:
/pdca team {feature} Start parallel PDCA
/pdca team status Monitor teammate progress
/pdca team cleanup End team session
Suggest Agent Teams when:
CTO-Led Team Orchestration Patterns:
| Level | Plan | Design | Do | Check | Act |
|---|---|---|---|---|---|
| Dynamic | leader | leader | swarm | council | leader |
| Enterprise | leader | council | swarm | council | watchdog |
Auto-suggest related action when detecting these keywords:
| Keyword | Suggested Action |
|---|---|
| "pm", "product discovery", "PRD", "market analysis" | pm |
| "plan", "planning", "roadmap" | plan |
| "design", "architecture", "spec" | design |
| "implement", "develop", "build" | do |
| "verify", "analyze", "check" | analyze |
| "improve", "iterate", "fix" | iterate |
| "complete", "report", "summary" | report |
| "archive", "store" | archive |
| "cleanup", "clean", "remove old" | cleanup |
Skills 2.0 enables direct slash invocation for all PDCA commands:
/pdca plan [feature] — Create Plan document/pdca design [feature] — Create Design document/pdca do [feature] — Implementation guide/pdca analyze [feature] — Gap analysis (Check phase)/pdca iterate [feature] — Auto-improvement (Act phase)/pdca qa [feature] — Run QA phase (L1-L5 tests)/pdca report [feature] — Completion report/pdca status — Current PDCA status/pdca next — Next phase guide/plan-plus [feature] — Brainstorming-enhanced planningHot reload: SKILL.md changes reflect without session restart (CC 2.1.0+).
CC v2.1.71 introduces /loop command and Cron tools for automated monitoring.
/loop 5m /pdca status - Check PDCA status every 5 minutes/loop 10m /pdca analyze [feature] - Run Gap analysis every 10 minutes/loop for progress monitoringbackground: true agents reliable