User Story Writer
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
Unified PDCA cycle management — plan, design, do, analyze, iterate, report.
$ npx skills add ww-w-ai/bkit-claude-code --skill pdca -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ww-w-ai/bkit-claude-code pdca --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ww-w-ai/bkit-claude-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/pdca .claude/skills/pdca && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pdca" agent skill from https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdca into .claude/skills/pdca/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pdca", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdcaType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ww-w-ai/bkit-claude-code --skill pdca -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ww-w-ai/bkit-claude-code pdca --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ww-w-ai/bkit-claude-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/pdca .agents/skills/pdca && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pdca" agent skill from https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdca into .agents/skills/pdca/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pdca", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ww-w-ai/bkit-claude-code --skill pdca -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ww-w-ai/bkit-claude-code pdca --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ww-w-ai/bkit-claude-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/pdca .cursor/skills/pdca && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pdca" agent skill from https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdca into .cursor/skills/pdca/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pdca", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ww-w-ai/bkit-claude-code.git --path skills/pdca--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ww-w-ai/bkit-claude-code --skill pdca -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ww-w-ai/bkit-claude-code pdca --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ww-w-ai/bkit-claude-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/pdca .gemini/skills/pdca && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pdca" agent skill from https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdca into .gemini/skills/pdca/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pdca", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ww-w-ai/bkit-claude-code pdcaInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ww-w-ai/bkit-claude-code --skill pdca -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ww-w-ai/bkit-claude-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/pdca .github/skills/pdca && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pdca" agent skill from https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdca into .github/skills/pdca/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pdca", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ww-w-ai/bkit-claude-code --skill pdca -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ww-w-ai/bkit-claude-code pdca --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ww-w-ai/bkit-claude-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/pdca .opencode/skills/pdca && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pdca" agent skill from https://github.com/ww-w-ai/bkit-claude-code/tree/main/skills/pdca into .opencode/skills/pdca/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pdca", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pdcaUnified PDCA cycle management — plan, design, do, analyze, iterate, report.
Pdca is an agent skill from ww-w-ai/bkit-claude-code. Unified PDCA cycle management — plan, design, do, analyze, iterate, report. PDCA runs per-feature (9-phase: pm→plan→design→do→check→act→qa→report→archive); for multi-feature scope/budget grouping use /sprint (v2.1.13, 8-phase container that may host PDCA cycles inside). Triggers: pdca, plan, design, analyze, report, status, next, iterate
Its SKILL.md is about 9.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Product & Project Management. The repository describes itself as: bkit Vibecoding Kit - PDCA methodology + Claude Code mastery for AI-native development. The licence is Apache-2.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 85b4913. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditGlobGrepBashTaskTaskCreateTaskUpdateTaskList…and 1 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxcurlpnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, curl and pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pdca loads about 9.1k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 3,813 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, Task, TaskCreate, TaskUpdate, TaskList, AskUserQuestionAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ww-w-ai/bkit-claude-code at commit 85b4913, republished under its Apache-2.0 licence (© ww-w-ai). 3,813 words, ~9,050 tokens.
.claude/skills/pdca/SKILL.md (or your agent's skills folder).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 modulesGuide 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: idleteam_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
[ ] CancelRelated 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)getPdcaStatusView() (lib/pdca/status.js), never
the file alone. It returns the stored .bkit/state/pdca-status.json with any
feature whose phase is evidenced only by its documents filled in, and marks
each feature's source as status-file or documents.
.bkit-memory.json is a deprecated v1.6.0 legacy path that no lib module
reads or writes; the migrated .bkit/state/memory.json holds the 9-phase
pipeline status, which is a different thing from the PDCA phase.source is documents, add one line:
phase read from documents — no run recorded it. Do not present it as a
recorded phase, and do not write it to the status file from here.Output Example:
📊 PDCA Status
─────────────────────────────
Feature: user-authentication
Phase: Check (Gap Analysis)
Match Rate: 85%
Iteration: 2/5
─────────────────────────────
[Plan] ✅ → [Design] ✅ → [Do] ✅ → [Check] 🔄 → [Act] ⏳getPdcaStatusView(), for the reason
given under status abovePhase 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-guideThis 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 sessionSuggest 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© ww-w-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/pdca of ww-w-ai/bkit-claude-code.
Open the folder on GitHubat commit 85b4913
Pdca next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pdca this skillww-w-ai/bkit-claude-code | 601 | — | ~9.1k | Automated safety check: Notes | Apache-2.0 | |
| User Story Writerdeanpeters/Product-Manager-Skills | 7.2k | 2 repos | ~2.9k | Automated safety check: Pass | Custom licence | |
| Game Changing FeaturesopenstatusHQ/data-table-filters | 2.3k | 3 repos | ~2.1k | Automated safety check: Pass | MIT | |
| CCPM Project Managementautomazeio/ccpm | 8.4k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Convex Create Componentspokvulcan/poker-planning | 114 | 8 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Self Improving Agentfarm-fe/farm | 5.6k | 2 repos | ~3.3k | Automated safety check: Notes | MIT |
deanpeters/Product-Manager-Skills
Writes user stories in Mike Cohn's format with Gherkin acceptance criteria, turning user needs into development-ready work with testable conditions.
openstatusHQ/data-table-filters
Find 10x product opportunities and high-leverage improvements.
automazeio/ccpm
Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.
spokvulcan/poker-planning
Builds reusable Convex components with isolated tables and app-facing APIs.
farm-fe/farm
A universal self-improving agent that learns from ALL skill experiences.
garrytan/gstack
Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.
ww-w-ai/bkit-claude-code
View audit logs, decision traces, and session history for AI transparency.
ww-w-ai/bkit-claude-code
bkend.ai authentication — email/social login, JWT tokens, RBAC, session management.
ww-w-ai/bkit-claude-code
bkend.ai project tutorials (todo to SaaS) and common error troubleshooting.
ww-w-ai/bkit-claude-code
bkend.ai onboarding — MCP setup, resource hierarchy, tenant/user model, first project.
ww-w-ai/bkit-claude-code
bkend.ai file storage — upload (presigned URL), download (CDN), visibility levels, buckets.
ww-w-ai/bkit-claude-code
bkit plugin help - list available functions including /pdca (9-phase feature cycle), /sprint (8-phase feature container, v2.1.13), /control (Trust L0-L4 + SPRINTAUTORUNSCOPE), /bkit-explore, and 40+…
Categories
Unified PDCA cycle management — plan, design, do, analyze, iterate, report. Pdca is an agent skill from ww-w-ai/bkit-claude-code. Unified PDCA cycle management — plan, design, do, analyze, iterate, report.
Pdca fits situations like: product & Project Management work in your project.
Run `npx skills add ww-w-ai/bkit-claude-code --skill pdca -a claude-code`. Or copy the skill folder (skills/pdca in ww-w-ai/bkit-claude-code) into .claude/skills/pdca in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ww-w-ai/bkit-claude-code --skill pdca -a codex`. Or copy the skill folder (skills/pdca in ww-w-ai/bkit-claude-code) into .agents/skills/pdca in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ww-w-ai/bkit-claude-code --skill pdca -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pdca, .gemini/skills/pdca, .github/skills/pdca and .opencode/skills/pdca in your project.
Going by SKILL.md and its folder, Pdca needs the command-line tools its instructions call (npx, curl and pnpm). Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash, Task, TaskCreate, TaskUpdate, TaskList, AskUserQuestion.
SKILL.md contains no URLs. Its commands use npx and curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pdca is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 9.1k tokens (SKILL.md is roughly 36k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pdca: User Story Writer (deanpeters/Product-Manager-Skills, 7.2k stars), Game Changing Features (openstatusHQ/data-table-filters, 2.3k stars), CCPM Project Management (automazeio/ccpm, 8.4k stars) and Convex Create Component (spokvulcan/poker-planning, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ww-w-ai (a GitHub organization) maintains it in ww-w-ai/bkit-claude-code, which has 601 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on September 27, 2026.
Source: ww-w-ai/bkit-claude-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.