# BMAD Workflow Improvements - Lessons from Batch Execution
**Date:** 2026-01-08
**Context:** Batch-super-dev tried to regenerate 14 skeleton stories but failed
**Root Cause:** Agents cannot invoke workflows/skills in batch mode
---
## Issue Summary
**What Happened:**
1. Created 21 skeleton sub-story files (just headers + widget lists)
2. Launched 14 agents via batch-super-dev to process them
3. Agents correctly identified stories were incomplete (no tasks section)
4. Agents correctly halted per super-dev-pipeline Step 1.4.5
5. BUT: Batch-super-dev Step 2.5 says to "Invoke workflow: /bmad..." which agents can't do
6. Result: 13/14 agents halted correctly, 1 somehow succeeded
**The Problem:**
- Workflows correctly validate and halt
- BUT batch-super-dev suggests agents can regenerate stories
- Agents CANNOT execute `/` commands or invoke workflows autonomously
- This creates false expectations
---
## Proposed Fixes
### Fix 1: Update batch-super-dev Step 2.5 (Story Validation)
**Current Code (lines 82-99):**
```xml
Create story file with gap analysis? (yes/no):
Invoke workflow: /bmad:bmm:workflows:create-story-with-gap-analysis
Parameters: story_key={{story_key}}
```
**Problem:**
- "Invoke workflow: /bmad..." doesn't work for agents
- Agents can't run slash commands
- This will always fail in batch mode
**Recommended Fix:**
```xml
Create story file with gap analysis? (yes/no):
Mark story for removal from selection
Add to skipped_stories with reason: "Story creation requires manual workflow"
HALT - Cannot auto-invoke create-story workflow
```
**Why This Works:**
- ✅ Explicitly states agents can't create stories in batch
- ✅ Tells user exactly what to do
- ✅ Prevents false expectations
- ✅ Provides clear halt message
---
### Fix 2: Add Agent Limitations Section to batch-super-dev
**Add new section after line 5:**
```xml
Agents Cannot Invoke Workflows
Task agents running in batch mode cannot execute slash commands (/)
or invoke other BMAD workflows. If a story requires creation or
regeneration, the batch must halt and user must handle manually.
Stories without proper BMAD format (12 sections, tasks) will be skipped
in batch execution. User must run /create-story-with-gap-analysis first.
Agents Cannot Prompt User Interactively
Batch agents run autonomously. They cannot ask user questions mid-execution.
All decisions must be pre-configured or stories will be skipped.
Optional steps are auto-skipped. Ambiguous requirements cause halt.
Skeleton Stories Will Be Skipped
If a story file has <12 BMAD sections or 0 tasks, super-dev-pipeline
will correctly halt with "Nothing to implement" message. This is NOT
a bug - it's correct behavior. User must regenerate story first.
Batch execution requires ALL stories to be properly formatted BEFORE
running batch-super-dev. Do not attempt batch regeneration.
...
```
**Why This Helps:**
- ✅ Sets clear expectations upfront
- ✅ Explains why stories get skipped
- ✅ Prevents users from making same mistake I did
- ✅ Documents known limitations explicitly
---
### Fix 3: Enhance super-dev-pipeline Step 1.4.5 (Pre-Flight Bailout)
**Current Code (lines 94-105):**
```
If total_task_count == 0:
Display:
⚠️ EARLY BAILOUT: No Tasks Found
Story file exists but has no tasks in Tasks/Subtasks section.
- Story may be incomplete or malformed
- Run create-story or validate-create-story first
HALT - Nothing to implement
```
**Recommended Enhancement:**
```
If total_task_count == 0:
Display:
⚠️ EARLY BAILOUT: No Tasks Found
Story file exists but has no tasks in Tasks/Subtasks section.
**Common Causes:**
1. Story file is a skeleton/template (not generated by /create-story)
2. Story file is missing BMAD sections
3. Story file was manually created without proper format
**This is NOT a pipeline bug** - this is correct validation behavior.
**Required Action:**
{if batch mode}
- Story will be SKIPPED from batch execution
- User must regenerate: /create-story-with-gap-analysis
- Then re-run batch for this story
{else}
- Run: /create-story-with-gap-analysis
- Specify story key: {story_key}
- Then re-run super-dev-pipeline
{endif}
**IMPORTANT FOR AGENTS:**
Do NOT attempt to regenerate the story yourself. Agents cannot invoke
the /create-story-with-gap-analysis workflow. Document this issue and
halt gracefully.
HALT - Nothing to implement
```
**Why This Helps:**
- ✅ Explains this is CORRECT behavior, not a bug
- ✅ Explicitly tells agents NOT to try regenerating
- ✅ Provides clear user action steps
- ✅ Different guidance for batch vs interactive mode
- ✅ Sets correct expectations
---
### Fix 4: Add Pre-Batch Validation Recommendations
**Add new document:** `_bmad/bmm/workflows/4-implementation/batch-super-dev/BATCH-BEST-PRACTICES.md`
```markdown
# Batch Super-Dev Best Practices
## Pre-Batch Checklist
**BEFORE running /batch-super-dev, verify:**
### ✅ All Story Files Exist
```bash
# Check all ready-for-dev stories have files
for story in $(grep "ready-for-dev" docs/sprint-artifacts/sprint-status.yaml | cut -d: -f1); do
if [ ! -f "docs/sprint-artifacts/story-$story.md" ]; then
echo "❌ Missing: $story"
fi
done
```
### ✅ All Stories Have Proper BMAD Format
Run validation script:
```bash
./scripts/validate-bmad-format.sh docs/sprint-artifacts/story-*.md
```
**Required:** All stories must show "✅ All 12 sections present"
### ✅ All Stories Have Tasks
```bash
# Check all stories have at least 1 task
for file in docs/sprint-artifacts/story-*.md; do
task_count=$(grep -c "^- \[ \]" "$file" 2>/dev/null || echo "0")
if [ "$task_count" -eq 0 ]; then
echo "❌ No tasks: $(basename $file)"
fi
done
```
**Required:** All stories must have unchecked tasks (something to implement)
---
## Common Mistakes
### ❌ Mistake 1: Batch Regeneration
**Don't:**
```bash
# Create 20 skeleton story files
# Run batch-super-dev expecting agents to regenerate them
```
**Why:** Agents cannot invoke /create-story-with-gap-analysis workflow
**Do Instead:**
```bash
# Regenerate stories one at a time
for story in story-20-13a-{1..5}; do
/create-story-with-gap-analysis # Interactive, per story
done
# THEN run batch-super-dev
/batch-super-dev
```
### ❌ Mistake 2: Mixed Story Quality
**Don't:**
- Mix properly generated stories with skeleton templates
- Assume agents will "fix" incomplete stories
- Launch batch without validating story format
**Do:**
- Validate ALL stories before batch
- Regenerate any incomplete ones
- Ensure consistent quality
### ❌ Mistake 3: Assuming Agents Can Run / Commands
**Don't:**
- Tell agents to "Run /create-story"
- Expect agents to invoke other workflows
- Assume agents can execute user CLI commands
**Do:**
- Pre-generate all stories before batch
- Use batch ONLY for implementation, not planning
- Keep story creation separate from story execution
---
## Success Patterns
### ✅ Pattern 1: Manual Create → Batch Execute
```bash
# Step 1: Create all stories manually (1-2 days)
/create-story-with-gap-analysis # For each of 20 stories
# Step 2: Validate all stories
./scripts/validate-all-stories.sh
# Step 3: Batch execute (parallel, fast)
/batch-super-dev # Select all 20 stories, run 4 agents
```
### ✅ Pattern 2: Incremental Batch Execution
```bash
# Execute stories in small batches as you create them
/create-story-with-gap-analysis # Create 5 stories
/batch-super-dev # Execute those 5 (filter by epic)
/create-story-with-gap-analysis # Create 5 more
/batch-super-dev # Execute those 5
```
### ✅ Pattern 3: Validation Before Batch
```bash
# Add to your workflow
validate_stories() {
for story in $@; do
if ! ./scripts/validate-bmad-format.sh "$story"; then
echo "❌ Story $story is not ready for batch"
echo "Run: /create-story-with-gap-analysis"
exit 1
fi
done
echo "✅ All stories validated, ready for batch"
}
validate_stories docs/sprint-artifacts/story-20-13*.md
/batch-super-dev
```
---
## When to Use Batch vs Individual
### Use Batch When:
- ✅ All stories properly formatted (12 sections, tasks present)
- ✅ Stories are independent (no complex dependencies)
- ✅ You want parallel execution (2-4 stories at once)
- ✅ Stories are similar complexity (all ~1 day effort)
### Use Individual (/dev-story) When:
- ✅ Story needs interactive decisions
- ✅ Story is complex (>3 days effort)
- ✅ Story has complex dependencies
- ✅ You want close monitoring/control
### DON'T Use Batch When:
- ❌ Stories are skeleton templates (not generated)
- ❌ Stories missing BMAD sections
- ❌ Mixed quality (some good, some incomplete)
- ❌ Need to create/regenerate stories
```
---
## Key Takeaway
**Batch-super-dev is for EXECUTION, not CREATION.**
Story creation is an interactive, context-heavy process that requires:
- User input on requirements
- Codebase scanning
- Gap analysis decisions
- Template generation
This cannot be reliably automated in batch mode. Always create stories first,
then batch execute them.
```
---
**Location:** `_bmad/bmm/workflows/4-implementation/batch-super-dev/BATCH-BEST-PRACTICES.md`