pdca-batch
$
npx mdskill add popup-studio-ai/bkit-claude-code/pdca-batchManage multiple PDCA features as independent parallel cycles
- Solve the problem of tracking multiple features with no shared scope or budget
- Uses file system operations and task management tools for state tracking
- Decides actions based on feature status and user input arguments
- Delivers results through JSON output and interactive task management
SKILL.md
.github/skills/pdca-batchView on GitHub ↗
---
name: pdca-batch
classification: workflow
classification-reason: Batch PDCA management persists regardless of model advancement
deprecation-risk: none
effort: high
description: |
Manage multiple PDCA features as independent parallel cycles (no shared scope/budget). For multiple features that share scope, budget, or timeline as one cohesive initiative, use /sprint (v2.1.13) — sprint groups features into a single 8-phase container, while pdca-batch keeps them independent.
Triggers: pdca-batch, batch, multiple features, 다중 기능, 배치.
argument-hint: "[status|plan|manage]"
user-invocable: true
allowed-tools:
- Read
- Write
- Glob
- Grep
- Bash
- Task
- TaskCreate
- TaskList
- AskUserQuestion
imports: []
next-skill: null
pdca-phase: null
task-template: "[Batch] {action}"
---
# PDCA Batch Skill
> User-invocable skill for managing multiple PDCA features and batch operations.
## Arguments
| Argument | Description | Example |
|----------|-------------|---------|
| (none) | Show all active features (same as `status`) | `/pdca-batch` |
| `status` | Show all active features and their PDCA status | `/pdca-batch status` |
| `plan <f1> <f2> ...` | Plan multiple features in sequence | `/pdca-batch plan auth search api` |
| `manage` | Interactive dashboard for parallel features | `/pdca-batch manage` |
## Action Details
### status (Default)
Show all active PDCA features and their current status.
1. Read `.bkit/state/pdca-status.json`
2. Filter to active features (exclude archived/completed unless `--all` flag)
3. For each feature, display: phase, matchRate, iterationCount, last updated
4. Show summary: total active, total completed, total archived
5. Warn if approaching max parallel limit (3)
**Output Format**:
```
--- PDCA Feature Dashboard ------------------------
Active Features: 2/3 (max)
# Feature Phase Match% Iter Last Updated
1 user-auth check 85% 2/5 10 min ago
2 search-api design - 0/5 2 hours ago
- (1 slot available)
Completed (recent):
3 payment-flow archived 96% 3/5 2 days ago
---------------------------------------------------
Totals: 2 active | 1 completed | 0 stale
Tip: Use /pdca-batch manage for interactive control
```
### plan <feature1> <feature2> ...
Plan multiple features in a batch sequence.
1. Parse feature names from arguments (space-separated)
2. Validate: max 5 features per batch plan
3. Check current active feature count (max 3 concurrent)
4. For features exceeding the parallel limit, queue them
5. Display batch plan summary and ask for confirmation via AskUserQuestion
6. On confirmation, for each feature sequentially:
a. Initialize feature in `pdca-status.json` (state: idle)
b. Create Plan document using plan template
c. Record batch origin: `batchId` in feature metadata
7. Display batch plan results
**Batch Plan Output**:
```
--- Batch Plan Results ----------------------------
Batch ID: batch-1710842700000
Features planned: 3
Feature Status Plan Document
auth OK docs/01-plan/features/auth.plan.md
search OK docs/01-plan/features/search.plan.md
api-v2 QUEUED (waiting for slot, 2/3 active)
---------------------------------------------------
Next: Run /pdca design <feature> for each planned feature
```
**Constraints**:
- Maximum 5 features per batch plan command
- Maximum 3 features active simultaneously
- Features beyond the limit are queued with `phase: queued`
- Queued features auto-activate when a slot becomes available
### manage
Interactive dashboard for managing parallel features.
1. Read all active features from `pdca-status.json`
2. Display interactive-style management panel
3. Show available actions per feature
4. Accept user input for next action via AskUserQuestion
**Output Format**:
```
--- Feature Management Dashboard ------------------
Active Features: 2/3
[1] user-auth (check, 85%, iter 2/5)
Actions: [a]nalyze [i]terate [r]eport [p]ause
[2] search-api (design, -, iter 0/5)
Actions: [d]esign-review [n]ext [p]ause
[Q] user-input (queued, waiting for slot)
Actions: [c]ancel [p]rioritize
---------------------------------------------------
Global Actions:
[s] Switch active feature
[n] New feature (if slot available)
[r] Refresh dashboard
[x] Exit dashboard
---------------------------------------------------
Select feature number or action:
```
**Management Actions**:
| Action | Description |
|--------|-------------|
| Switch feature | Change which feature is "focused" for subsequent /pdca commands |
| Prioritize queued | Move a queued feature to next available slot |
| Pause feature | Temporarily halt a feature's PDCA progression |
| Cancel queued | Remove a feature from the queue |
| New feature | Start a new PDCA cycle if slot available |
## Parallel Feature Rules
1. **Maximum 3 concurrent features**: Prevents context overload and resource contention
2. **Independent state**: Each feature has its own phase, matchRate, and iteration count
3. **Shared guardrails**: Automation level and trust score are global (not per-feature)
4. **Queue system**: Features beyond limit are queued and auto-activated on slot availability
5. **Isolation**: Features do NOT share checkpoints or audit entries
## State File Schema
Features in `pdca-status.json` with batch support:
```json
{
"user-auth": {
"phase": "check",
"matchRate": 85,
"iterationCount": 2,
"batchId": "batch-1710842700000",
"queuePosition": null,
"lastUpdated": "2026-03-19T10:30:00.000Z"
},
"search-api": {
"phase": "design",
"matchRate": 0,
"iterationCount": 0,
"batchId": "batch-1710842700000",
"queuePosition": null,
"lastUpdated": "2026-03-19T08:30:00.000Z"
},
"api-v2": {
"phase": "queued",
"batchId": "batch-1710842700000",
"queuePosition": 1,
"lastUpdated": "2026-03-19T10:30:00.000Z"
}
}
```
## Module Dependencies
| Module | Function | Usage |
|--------|----------|-------|
| `lib/pdca/status.js` | `getPdcaStatus()` | Read all feature states |
| `lib/pdca/status.js` | `updatePdcaStatus()` | Update feature state |
| `lib/pdca/state-machine.js` | `createContext()` | Initialize new feature |
| `lib/pdca/lifecycle.js` | `activateQueuedFeature()` | Auto-activate from queue |
| `lib/audit/audit-logger.js` | `writeAuditLog()` | Record batch operations |
## Usage Examples
```bash
# View all features
/pdca-batch
# Plan multiple features
/pdca-batch plan user-auth search-api payment-flow
# Interactive management
/pdca-batch manage
```
## Integration with /pdca
The `/pdca-batch` skill complements the main `/pdca` skill:
| Scope | Use /pdca | Use /pdca-batch |
|-------|-----------|-----------------|
| Single feature operations | Yes | No |
| Multi-feature overview | No | Yes |
| Phase transitions | Yes | No (redirects to /pdca) |
| Batch planning | No | Yes |
| Feature switching | No | Yes (manage) |
When using `/pdca` commands, they operate on the currently "focused" feature.
Use `/pdca-batch manage` to switch the focused feature.