From bmad-skills
Delivers all incomplete stories in an Epic using configurable pipeline in isolated worktrees, auto-selecting smallest Epic with incomplete stories if omitted.
npx claudepluginhub terryso/claude-bmad-skillsThis skill uses the workspace's default tool permissions.
Deliver all incomplete user stories in Epic `{ARGUMENT}` using configurable pipeline, each story developed in isolated worktree and merged only after tests pass.
Runs configurable BMAD story pipeline in isolated git worktree for specified or auto-selected story number. Merges to main only after tests pass.
Orchestrates beads epic delivery via polecats and refinery: sets up integration branches, creates convoys, dispatches waves of leaf tasks, monitors progress, runs quality gates, validates plan completion.
Share bugs, ideas, or general feedback.
Deliver all incomplete user stories in Epic {ARGUMENT} using configurable pipeline, each story developed in isolated worktree and merged only after tests pass.
If no epic number is provided ({ARGUMENT} is empty):
_bmad-output/implementation-artifacts/sprint-status.yaml (or docs/sprint/sprint-status.yaml)done (format: X-Y-story-name){ARGUMENT}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 Auto-selected Epic: {ARGUMENT} (has incomplete stories)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Example:
3-2-llm-prompt-template: backlog, 3-3-xxx: in-progress, 4-1-xxx: done| Feature | bmad-epic-worktree | bmad-epic-pipeline-worktree |
|---|---|---|
| Story delivery | bmad-story-worktree | bmad-story-pipeline-worktree |
| Workflow config | Fixed 8-step flow | Configurable via workflow-steps.md |
| Customization | Limited | Full pipeline customization |
| Safety level | High | High |
/bmad-story-pipeline-worktree for each story sequentiallyRead sprint-status.yaml, collect all incomplete stories under specified Epic:
Task(
subagent_type: general-purpose,
description: "Collect Epic {ARGUMENT} story list",
prompt: "Read _bmad-output/implementation-artifacts/sprint-status.yaml (or docs/sprint/sprint-status.yaml), collect all stories for Epic {ARGUMENT}:
1. Filter entries with key format '{ARGUMENT}-Y-story-name'
2. Keep only stories with status not 'done'
3. Sort by Story number Y ascending
4. Return story list with format:
- Story number: 'X.Y', Story name, Current status
- Number of incomplete stories
If no incomplete stories found, return 'Epic {ARGUMENT} has no incomplete stories'"
)
Progress output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Epic {ARGUMENT} - Story List
Story | Name | Status
-------|-------------------------|--------
{ARGUMENT}.1 | {story-name-1} | backlog
{ARGUMENT}.3 | {story-name-3} | in-progress
...
📊 Total: {N} incomplete stories
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
For each incomplete story, execute in order:
For story {STORY_NUM} (i-th of N total):
Execute /bmad-story-pipeline-worktree {STORY_NUM}
Wait for completion before continuing to next story
Each story delivery progress:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔄 Story [{i}/{N}]: {STORY_NUM}
📝 Name: {story-name}
⏳ Executing configurable pipeline...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[... Execute bmad-story-pipeline-worktree phases ...]
Phase 1: Create Worktree
Phase 2: Configurable Pipeline (from workflow-steps.md)
Phase 3: Merge Branch
Phase 4: Update Status
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Story [{i}/{N}]: {STORY_NUM} Complete
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
If any story fails:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
❌ Story [{i}/{N}]: {STORY_NUM} Failed
⚠️ Stopping subsequent story delivery
📁 Please handle manually before continuing
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
All complete:
╔════════════════════════════════════════════════════════╗
║ 🎉 BMAD Epic Pipeline Complete! ║
╠════════════════════════════════════════════════════════╣
║ Epic: {ARGUMENT} ║
║ ║
║ ✅ Story 1: {story-1} - done ║
║ ✅ Story 2: {story-2} - done ║
║ ... ║
║ ✅ Story N: {story-N} - done ║
║ ║
║ 📊 Total: {N}/{N} stories completed ║
║ 🎯 Epic status: done ║
╚════════════════════════════════════════════════════════╝
Partial completion (has failures):
╔════════════════════════════════════════════════════════╗
║ ⚠️ BMAD Epic Pipeline - Partial Completion ║
╠════════════════════════════════════════════════════════╣
║ Epic: {ARGUMENT} ║
║ ║
║ ✅ Story 1: {story-1} - done ║
║ ✅ Story 2: {story-2} - done ║
║ ❌ Story 3: {story-3} - failed ║
║ ⏸️ Story 4: {story-4} - not started ║
║ ... ║
║ ║
║ 📊 Progress: {completed}/{total} stories completed ║
║ 📁 Failed story: {failed-story} ║
║ 💡 Handle failed story then re-run to continue ║
╚════════════════════════════════════════════════════════╝
If any story delivery fails:
Resume delivery:
# 1. Manually fix failed story
cd {WORKTREE_PATH}
# Fix issues...
git add . && git commit -m "fix: resolve issues"
cd {ORIGINAL_REPO_PATH}
git merge feature/story-{STORY_NUM}
git worktree remove {WORKTREE_PATH}
# 2. Re-run epic delivery, will auto-skip completed stories
/bmad-epic-pipeline-worktree {ARGUMENT}
Pipeline workflow uses bmad-story-pipeline-worktree's configuration.
To customize the pipeline, edit: bmad-story-pipeline-worktree/references/workflow-steps.md
Changes supported:
/bmad-story-pipeline-worktree {story-num}