diff --git a/resources/skills/bmad-guide.md b/resources/skills/bmad-guide.md
index 0f2ac6aa..f16b73cd 100644
--- a/resources/skills/bmad-guide.md
+++ b/resources/skills/bmad-guide.md
@@ -7,7 +7,7 @@ You are working within the **BMAD Method (BMM)** - a 4-phase AI-powered agile de
1. **NEVER skip phases** - Each phase builds on the previous (except Phase 1 which is optional)
2. **ALWAYS check project level** - This determines which workflows to use
3. **ALWAYS use workflows** - Don't implement features manually without BMAD workflows
-4. **ALWAYS consult workflow docs** - Located in `src/modules/bmm/workflows/`
+4. **ALWAYS consult workflow docs** - Located in `src/bmm/workflows/`
5. **STAY IN PHASE** - Complete current phase before moving to next
---
@@ -143,32 +143,32 @@ You are working within the **BMAD Method (BMM)** - a 4-phase AI-powered agile de
### Method 1: Read Workflow Documentation
```bash
# Read workflow guide for current phase
-cat src/modules/bmm/workflows/README.md
-cat src/modules/bmm/docs/workflows-{phase}.md
+cat src/bmm/workflows/README.md
+cat src/bmm/docs/workflows-{phase}.md
# Example: Planning phase
-cat src/modules/bmm/docs/workflows-planning.md
+cat src/bmm/docs/workflows-planning.md
# Example: Implementation phase
-cat src/modules/bmm/docs/workflows-implementation.md
+cat src/bmm/docs/workflows-implementation.md
```
### Method 2: Read Specific Workflow
```bash
# Read workflow details
-cat src/modules/bmm/workflows/{phase}/{workflow-name}/README.md
+cat src/bmm/workflows/{phase}/{workflow-name}/README.md
# Example: PRD workflow
-cat src/modules/bmm/workflows/2-plan-workflows/prd/README.md
+cat src/bmm/workflows/2-plan-workflows/prd/README.md
# Example: Dev story workflow
-cat src/modules/bmm/workflows/4-implementation/dev-story/README.md
+cat src/bmm/workflows/4-implementation/dev-story/README.md
```
### Method 3: Check Workflow Configuration
```bash
# See workflow config
-cat src/modules/bmm/workflows/{phase}/{workflow-name}/workflow.yaml
+cat src/bmm/workflows/{phase}/{workflow-name}/workflow.yaml
```
### Method 4: Use Explore Agent
@@ -363,16 +363,16 @@ cat {project-root}/_bmad/bmm/workflow-status.yaml
## π ADDITIONAL RESOURCES
### Core Documentation
-- `src/modules/bmm/docs/workflows-analysis.md` - Phase 1 guidance
-- `src/modules/bmm/docs/workflows-planning.md` - Phase 2 guidance
-- `src/modules/bmm/docs/workflows-solutioning.md` - Phase 3 guidance
-- `src/modules/bmm/docs/workflows-implementation.md` - Phase 4 guidance
-- `src/modules/bmm/docs/scale-adaptive-system.md` - Level detection
-- `src/modules/bmm/docs/brownfield-guide.md` - Existing codebases
+- `src/bmm/docs/workflows-analysis.md` - Phase 1 guidance
+- `src/bmm/docs/workflows-planning.md` - Phase 2 guidance
+- `src/bmm/docs/workflows-solutioning.md` - Phase 3 guidance
+- `src/bmm/docs/workflows-implementation.md` - Phase 4 guidance
+- `src/bmm/docs/scale-adaptive-system.md` - Level detection
+- `src/bmm/docs/brownfield-guide.md` - Existing codebases
### Specialized Guides
-- `src/modules/bmm/docs/test-architecture.md` - TestArch workflows
-- `src/modules/bmm/docs/agents-guide.md` - All 12 specialized agents
+- `src/bmm/docs/test-architecture.md` - TestArch workflows
+- `src/bmm/docs/agents-guide.md` - All 12 specialized agents
---
diff --git a/src/modules/bmm/patterns/README.md b/src/bmm/patterns/README.md
similarity index 100%
rename from src/modules/bmm/patterns/README.md
rename to src/bmm/patterns/README.md
diff --git a/src/bmm/patterns/agent-completion.md b/src/bmm/patterns/agent-completion.md
index d256c155..f2cf1309 100644
--- a/src/bmm/patterns/agent-completion.md
+++ b/src/bmm/patterns/agent-completion.md
@@ -1,187 +1,225 @@
-# Agent Completion Format
+# Agent Completion Artifact Pattern
-
-All agents must return structured output that the orchestrator can parse. This enables automated verification and reliable workflow progression.
+**Problem:** Agents fail to update story files reliably (60% success rate)
+**Solution:** Agents create completion.json artifacts. Orchestrator uses them to update story files.
-**Principle:** Return parseable data, not prose. The orchestrator needs to extract file lists, status, and evidence.
-
+## The Contract
-
-## Standard Completion Format
+### Agent Responsibility
+Each agent MUST create a completion artifact before finishing:
+- **File path:** `docs/sprint-artifacts/completions/{{story_key}}-{{agent_name}}.json`
+- **Format:** Structured JSON (see formats below)
+- **Verification:** File exists = work done (binary check)
-Every agent returns this structure when done:
+### Orchestrator Responsibility
+Orchestrator reads completion artifacts and:
+- Parses JSON for structured data
+- Updates story file tasks (check off completed)
+- Fills Dev Agent Record with evidence
+- Verifies updates succeeded
+
+## Why This Works
+
+**File-based verification:**
+- β
Binary check: File exists or doesn't
+- β
No complex parsing of agent output
+- β
No reconciliation logic needed
+- β
Hard stop if artifact missing
+
+**JSON format:**
+- β
Easy to parse reliably
+- β
Structured data (not prose)
+- β
Version controllable
+- β
Auditable trail
+
+## How to Use This Pattern
+
+### In Agent Prompts
+
+Include this in every agent prompt:
```markdown
-## AGENT COMPLETE
+## CRITICAL: Create Completion Artifact
-**Agent:** [builder|inspector|reviewer|fixer]
-**Story:** {{story_key}}
-**Status:** [SUCCESS|PASS|FAIL|ISSUES_FOUND|PARTIAL]
+**MANDATORY:** Before returning, you MUST create a completion artifact JSON file.
-### [Agent-Specific Section]
-[See below for each agent type]
+**File Path:** `docs/sprint-artifacts/completions/{{story_key}}-{{agent_name}}.json`
-### Files Created
-- path/to/new/file.ts
-- path/to/another.ts
-
-### Files Modified
-- path/to/existing/file.ts
-
-### Ready For
-[Next phase or action required]
+**Format:**
+```json
+{
+ "story_key": "{{story_key}}",
+ "agent": "{{agent_name}}",
+ "status": "SUCCESS",
+ "files_created": ["file1.ts", "file2.ts"],
+ "files_modified": ["file3.ts"],
+ "timestamp": "2026-01-27T02:30:00Z"
+}
```
-
-
-## Builder Agent Output
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** builder
-**Story:** {{story_key}}
-**Status:** SUCCESS | FAILED
-
-### Files Created
-- src/lib/feature/service.ts
-- src/lib/feature/__tests__/service.test.ts
-
-### Files Modified
-- src/app/api/feature/route.ts
-
-### Tests Added
-- 3 test files
-- 12 test cases total
-
-### Implementation Summary
-Brief description of what was built.
-
-### Known Gaps
-- Edge case X not handled
-- NONE if all complete
-
-### Ready For
-Inspector validation
+**Use Write tool to create this file. No exceptions.**
```
-
-
-## Inspector Agent Output
+### In Orchestrator Verification
-```markdown
-## AGENT COMPLETE
-
-**Agent:** inspector
-**Story:** {{story_key}}
-**Status:** PASS | FAIL
-
-### Evidence
-- **Type Check:** PASS (0 errors)
-- **Lint:** PASS (0 warnings)
-- **Build:** PASS
-- **Tests:** 45 passing, 0 failing, 92% coverage
-
-### Files Verified
-- src/lib/feature/service.ts β
-- src/app/api/feature/route.ts β
-
-### Failures (if FAIL status)
-1. Type error in service.ts:45
-2. Test failing: "should handle empty input"
-
-### Ready For
-Reviewer (if PASS) | Builder fix (if FAIL)
-```
-
-
-
-## Reviewer Agent Output
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** reviewer
-**Story:** {{story_key}}
-**Status:** ISSUES_FOUND | CLEAN
-
-### Issue Summary
-- **CRITICAL:** 1 (security, data loss)
-- **HIGH:** 2 (production bugs)
-- **MEDIUM:** 3 (tech debt)
-- **LOW:** 1 (nice-to-have)
-
-### Must Fix (CRITICAL + HIGH)
-1. [CRITICAL] service.ts:45 - SQL injection vulnerability
-2. [HIGH] route.ts:23 - Missing authorization check
-3. [HIGH] service.ts:78 - Unhandled null case
-
-### Should Fix (MEDIUM)
-1. service.ts:92 - No error logging
-
-### Files Reviewed
-- src/lib/feature/service.ts β
-- src/app/api/feature/route.ts β
-
-### Ready For
-Fixer agent to address CRITICAL and HIGH issues
-```
-
-
-
-## Fixer Agent Output
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** fixer
-**Story:** {{story_key}}
-**Status:** SUCCESS | PARTIAL | FAILED
-
-### Issues Fixed
-- **CRITICAL:** 1/1 fixed
-- **HIGH:** 2/2 fixed
-- **Total:** 3 issues resolved
-
-### Fixes Applied
-1. [CRITICAL] service.ts:45 - Parameterized query
-2. [HIGH] route.ts:23 - Added auth check
-3. [HIGH] service.ts:78 - Added null guard
-
-### Quality Checks
-- **Type Check:** PASS
-- **Lint:** PASS
-- **Tests:** 47 passing (2 new)
-
-### Git Commit
-- **Hash:** abc123def
-- **Message:** fix({{story_key}}): address security and null handling
-
-### Deferred Issues
-- MEDIUM: 3 (defer to follow-up)
-- LOW: 1 (skip as gold-plating)
-
-### Ready For
-Orchestrator reconciliation
-```
-
-
-
-## Parsing Hints for Orchestrator
-
-Extract key data using grep:
+After agent completes, verify artifact exists:
```bash
-# Get status
-grep "^\*\*Status:\*\*" agent_output.txt | cut -d: -f2 | xargs
+COMPLETION_FILE="docs/sprint-artifacts/completions/{{story_key}}-{{agent}}.json"
-# Get files created
-sed -n '/### Files Created/,/###/p' agent_output.txt | grep "^-" | cut -d' ' -f2
+if [ ! -f "$COMPLETION_FILE" ]; then
+ echo "β BLOCKER: Agent failed to create completion artifact"
+ exit 1
+fi
-# Get issue count
-grep "CRITICAL:" agent_output.txt | grep -oE "[0-9]+"
-
-# Check if ready for next phase
-grep "### Ready For" -A 1 agent_output.txt | tail -1
+echo "β
Completion artifact found"
```
-
+
+### In Reconciliation
+
+Parse artifact to update story file:
+
+```markdown
+1. Load completion artifact with Read tool
+2. Parse JSON to extract data
+3. Use Edit tool to update story file
+4. Verify updates with bash checks
+```
+
+## Artifact Formats by Agent
+
+### Builder Completion
+
+```json
+{
+ "story_key": "19-4",
+ "agent": "builder",
+ "status": "SUCCESS",
+ "tasks_completed": [
+ "Create PaymentProcessor service",
+ "Add retry logic with exponential backoff"
+ ],
+ "files_created": [
+ "lib/billing/payment-processor.ts",
+ "lib/billing/__tests__/payment-processor.test.ts"
+ ],
+ "files_modified": [
+ "lib/billing/worker.ts"
+ ],
+ "tests": {
+ "files": 2,
+ "cases": 15
+ },
+ "timestamp": "2026-01-27T02:30:00Z"
+}
+```
+
+### Inspector Completion
+
+```json
+{
+ "story_key": "19-4",
+ "agent": "inspector",
+ "status": "PASS",
+ "quality_checks": {
+ "type_check": "PASS",
+ "lint": "PASS",
+ "build": "PASS"
+ },
+ "tests": {
+ "passing": 45,
+ "failing": 0,
+ "total": 45,
+ "coverage": 95
+ },
+ "files_verified": [
+ "lib/billing/payment-processor.ts"
+ ],
+ "timestamp": "2026-01-27T02:35:00Z"
+}
+```
+
+### Reviewer Completion
+
+```json
+{
+ "story_key": "19-4",
+ "agent": "reviewer",
+ "status": "ISSUES_FOUND",
+ "issues": {
+ "critical": 2,
+ "high": 3,
+ "medium": 4,
+ "low": 2,
+ "total": 11
+ },
+ "must_fix": [
+ {
+ "severity": "CRITICAL",
+ "location": "api/route.ts:45",
+ "description": "SQL injection vulnerability"
+ }
+ ],
+ "files_reviewed": [
+ "api/route.ts"
+ ],
+ "timestamp": "2026-01-27T02:40:00Z"
+}
+```
+
+### Fixer Completion (FINAL)
+
+```json
+{
+ "story_key": "19-4",
+ "agent": "fixer",
+ "status": "SUCCESS",
+ "issues_fixed": {
+ "critical": 2,
+ "high": 3,
+ "total": 5
+ },
+ "fixes_applied": [
+ "Fixed SQL injection in agreement route (CRITICAL)",
+ "Added authorization check (CRITICAL)"
+ ],
+ "files_modified": [
+ "api/route.ts"
+ ],
+ "quality_checks": {
+ "type_check": "PASS",
+ "lint": "PASS",
+ "build": "PASS"
+ },
+ "tests": {
+ "passing": 48,
+ "failing": 0,
+ "total": 48,
+ "coverage": 96
+ },
+ "git_commit": "a1b2c3d4e5f",
+ "timestamp": "2026-01-27T02:50:00Z"
+}
+```
+
+## Benefits
+
+- **Reliability:** 60% β 100% (file exists is binary)
+- **Simplicity:** No complex output parsing
+- **Auditability:** JSON files are version controlled
+- **Debuggability:** Can inspect artifacts when issues occur
+- **Enforcement:** Can't proceed without completion artifact (hard stop)
+
+## Anti-Patterns
+
+**Don't do this:**
+- β Trust agent output without verification
+- β Parse agent prose for structured data
+- β Let agents update story files directly
+- β Skip artifact creation ("just this once")
+
+**Do this instead:**
+- β
Verify artifact exists (binary check)
+- β
Parse JSON for reliable data
+- β
Orchestrator updates story files
+- β
Hard stop if artifact missing
diff --git a/src/bmm/patterns/security-checklist.md b/src/bmm/patterns/security-checklist.md
index b7e41310..70ffc1c5 100644
--- a/src/bmm/patterns/security-checklist.md
+++ b/src/bmm/patterns/security-checklist.md
@@ -1,122 +1,340 @@
# Security Review Checklist
-
-Security vulnerabilities are CRITICAL issues. A single vulnerability can expose user data, enable account takeover, or cause financial loss.
+**Philosophy:** Security issues are CRITICAL. No exceptions.
-**Principle:** Assume all input is malicious. Validate everything.
-
+This checklist helps identify common security vulnerabilities in code reviews.
-
-## OWASP Top 10 Checks
+## CRITICAL Security Issues
-### 1. Injection
-```bash
-# Check for SQL injection
-grep -E "SELECT.*\+|INSERT.*\+|UPDATE.*\+|DELETE.*\+" . -r
-grep -E '\$\{.*\}.*query|\`.*\$\{' . -r
+These MUST be fixed. No story ships with these issues.
-# Check for command injection
-grep -E "exec\(|spawn\(|system\(" . -r
+### 1. SQL Injection
+
+**Look for:**
+```javascript
+// β BAD: User input in query string
+const query = `SELECT * FROM users WHERE id = '${userId}'`;
+const query = "SELECT * FROM users WHERE id = '" + userId + "'";
```
-**Fix:** Use parameterized queries, never string concatenation.
+**Fix with:**
+```javascript
+// β
GOOD: Parameterized queries
+const query = db.prepare('SELECT * FROM users WHERE id = ?');
+query.get(userId);
-### 2. Broken Authentication
-```bash
-# Check for hardcoded credentials
-grep -E "password.*=.*['\"]|api.?key.*=.*['\"]|secret.*=.*['\"]" . -r -i
-
-# Check for weak session handling
-grep -E "localStorage.*token|sessionStorage.*password" . -r
+// β
GOOD: ORM/Query builder
+const user = await prisma.user.findUnique({ where: { id: userId } });
```
-**Fix:** Use secure session management, never store secrets in code.
+### 2. XSS (Cross-Site Scripting)
-### 3. Sensitive Data Exposure
-```bash
-# Check for PII logging
-grep -E "console\.(log|info|debug).*password|log.*email|log.*ssn" . -r -i
-
-# Check for unencrypted transmission
-grep -E "http://(?!localhost)" . -r
+**Look for:**
+```javascript
+// β BAD: Unsanitized user input in HTML
+element.innerHTML = userInput;
+document.write(userInput);
```
-**Fix:** Never log sensitive data, always use HTTPS.
+**Fix with:**
+```javascript
+// β
GOOD: Use textContent or sanitize
+element.textContent = userInput;
-### 4. XML External Entities (XXE)
-```bash
-# Check for unsafe XML parsing
-grep -E "parseXML|DOMParser|xml2js" . -r
+// β
GOOD: Use framework's built-in escaping
+{userInput}
// React automatically escapes
```
-**Fix:** Disable external entity processing.
+### 3. Authentication Bypass
-### 5. Broken Access Control
-```bash
-# Check for missing auth checks
-grep -E "export.*function.*(GET|POST|PUT|DELETE)" . -r | head -20
-# Then verify each has auth check
+**Look for:**
+```javascript
+// β BAD: No auth check
+app.get('/api/admin/users', async (req, res) => {
+ const users = await getUsers();
+ res.json(users);
+});
```
-**Fix:** Every endpoint must verify user has permission.
-
-### 6. Security Misconfiguration
-```bash
-# Check for debug mode in prod
-grep -E "debug.*true|NODE_ENV.*development" . -r
-
-# Check for default credentials
-grep -E "admin.*admin|password.*password|123456" . -r
+**Fix with:**
+```javascript
+// β
GOOD: Require auth
+app.get('/api/admin/users', requireAuth, async (req, res) => {
+ const users = await getUsers();
+ res.json(users);
+});
```
-**Fix:** Secure configuration, no defaults.
+### 4. Authorization Gaps
-### 7. Cross-Site Scripting (XSS)
-```bash
-# Check for innerHTML usage
-grep -E "innerHTML|dangerouslySetInnerHTML" . -r
-
-# Check for unescaped output
-grep -E "\$\{.*\}.*<|<.*\$\{" . -r
+**Look for:**
+```javascript
+// β BAD: No ownership check
+app.delete('/api/orders/:id', async (req, res) => {
+ await deleteOrder(req.params.id);
+ res.json({ success: true });
+});
```
-**Fix:** Always escape user input, use safe rendering.
-
-### 8. Insecure Deserialization
-```bash
-# Check for unsafe JSON parsing
-grep -E "JSON\.parse\(.*req\." . -r
-grep -E "eval\(|Function\(" . -r
+**Fix with:**
+```javascript
+// β
GOOD: Verify user owns resource
+app.delete('/api/orders/:id', async (req, res) => {
+ const order = await getOrder(req.params.id);
+
+ if (order.userId !== req.user.id) {
+ return res.status(403).json({ error: 'Forbidden' });
+ }
+
+ await deleteOrder(req.params.id);
+ res.json({ success: true });
+});
```
-**Fix:** Validate structure before parsing.
+### 5. Hardcoded Secrets
-### 9. Using Components with Known Vulnerabilities
+**Look for:**
+```javascript
+// β BAD: Secrets in code
+const API_KEY = 'sk-1234567890abcdef';
+const DB_PASSWORD = 'MyP@ssw0rd123';
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Environment variables
+const API_KEY = process.env.API_KEY;
+const DB_PASSWORD = process.env.DB_PASSWORD;
+
+// β
GOOD: Secrets manager
+const API_KEY = await secretsManager.get('API_KEY');
+```
+
+### 6. Insecure Direct Object Reference (IDOR)
+
+**Look for:**
+```javascript
+// β BAD: Use user-supplied ID without validation
+app.get('/api/documents/:id', async (req, res) => {
+ const doc = await getDocument(req.params.id);
+ res.json(doc);
+});
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Verify access
+app.get('/api/documents/:id', async (req, res) => {
+ const doc = await getDocument(req.params.id);
+
+ // Check user has permission to view this document
+ if (!await userCanAccessDocument(req.user.id, doc.id)) {
+ return res.status(403).json({ error: 'Forbidden' });
+ }
+
+ res.json(doc);
+});
+```
+
+## HIGH Security Issues
+
+These should be fixed before shipping.
+
+### 7. Missing Input Validation
+
+**Look for:**
+```javascript
+// β BAD: No validation
+app.post('/api/users', async (req, res) => {
+ await createUser(req.body);
+ res.json({ success: true });
+});
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Validate input
+app.post('/api/users', async (req, res) => {
+ const schema = z.object({
+ email: z.string().email(),
+ age: z.number().min(18).max(120)
+ });
+
+ try {
+ const data = schema.parse(req.body);
+ await createUser(data);
+ res.json({ success: true });
+ } catch (error) {
+ res.status(400).json({ error: error.errors });
+ }
+});
+```
+
+### 8. Sensitive Data Exposure
+
+**Look for:**
+```javascript
+// β BAD: Exposing sensitive fields
+const user = await getUser(userId);
+res.json(user); // Contains password hash, SSN, etc.
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Select only safe fields
+const user = await getUser(userId);
+res.json({
+ id: user.id,
+ name: user.name,
+ email: user.email
+ // Don't include: password, ssn, etc.
+});
+```
+
+### 9. Missing Rate Limiting
+
+**Look for:**
+```javascript
+// β BAD: No rate limit
+app.post('/api/login', async (req, res) => {
+ const user = await authenticate(req.body);
+ res.json({ token: user.token });
+});
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Rate limit sensitive endpoints
+app.post('/api/login',
+ rateLimit({ max: 5, windowMs: 60000 }), // 5 attempts per minute
+ async (req, res) => {
+ const user = await authenticate(req.body);
+ res.json({ token: user.token });
+ }
+);
+```
+
+### 10. Insecure Randomness
+
+**Look for:**
+```javascript
+// β BAD: Using Math.random() for tokens
+const token = Math.random().toString(36);
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Cryptographically secure random
+const crypto = require('crypto');
+const token = crypto.randomBytes(32).toString('hex');
+```
+
+## MEDIUM Security Issues
+
+These improve security but aren't critical.
+
+### 11. Missing HTTPS
+
+**Look for:**
+```javascript
+// β BAD: HTTP only
+app.listen(3000);
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Force HTTPS in production
+if (process.env.NODE_ENV === 'production') {
+ app.use((req, res, next) => {
+ if (req.header('x-forwarded-proto') !== 'https') {
+ res.redirect(`https://${req.header('host')}${req.url}`);
+ } else {
+ next();
+ }
+ });
+}
+```
+
+### 12. Missing Security Headers
+
+**Look for:**
+```javascript
+// β BAD: No security headers
+app.use(express.json());
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Add security headers
+app.use(helmet()); // Adds multiple security headers
+```
+
+### 13. Verbose Error Messages
+
+**Look for:**
+```javascript
+// β BAD: Exposing stack traces
+app.use((error, req, res, next) => {
+ res.status(500).json({ error: error.stack });
+});
+```
+
+**Fix with:**
+```javascript
+// β
GOOD: Generic error message
+app.use((error, req, res, next) => {
+ console.error(error); // Log internally
+ res.status(500).json({ error: 'Internal server error' });
+});
+```
+
+## Review Process
+
+### Step 1: Automated Checks
+
+Run security scanners:
```bash
-# Check for outdated dependencies
+# Check for known vulnerabilities
npm audit
+
+# Static analysis
+npx eslint-plugin-security
+
+# Secrets detection
+git secrets --scan
```
-**Fix:** Keep dependencies updated, monitor CVEs.
+### Step 2: Manual Review
-### 10. Insufficient Logging
-```bash
-# Check for security event logging
-grep -E "log.*(login|auth|permission|access)" . -r
+Use this checklist to review:
+- [ ] SQL injection vulnerabilities
+- [ ] XSS vulnerabilities
+- [ ] Authentication bypasses
+- [ ] Authorization gaps
+- [ ] Hardcoded secrets
+- [ ] IDOR vulnerabilities
+- [ ] Missing input validation
+- [ ] Sensitive data exposure
+- [ ] Missing rate limiting
+- [ ] Insecure randomness
+
+### Step 3: Document Findings
+
+For each issue found:
+```markdown
+**Issue #1: SQL Injection Vulnerability**
+- **Location:** api/users/route.ts:45
+- **Severity:** CRITICAL
+- **Problem:** User input concatenated into query
+- **Code:**
+ ```typescript
+ const query = `SELECT * FROM users WHERE id = '${userId}'`
+ ```
+- **Fix:** Use parameterized queries with Prisma
```
-**Fix:** Log security events with context.
-
+## Remember
-
-## Severity Ratings
+**Security issues are CRITICAL. They MUST be fixed.**
-| Severity | Impact | Examples |
-|----------|--------|----------|
-| CRITICAL | Data breach, account takeover | SQL injection, auth bypass |
-| HIGH | Service disruption, data corruption | Logic flaws, N+1 queries |
-| MEDIUM | Technical debt, maintainability | Missing validation, tight coupling |
-| LOW | Code style, nice-to-have | Naming, documentation |
-
-**CRITICAL and HIGH must be fixed before merge.**
-
+Don't let security issues slide because "we'll fix it later." Fix them now.
diff --git a/src/bmm/patterns/tdd.md b/src/bmm/patterns/tdd.md
index 7cb113a2..db9bda36 100644
--- a/src/bmm/patterns/tdd.md
+++ b/src/bmm/patterns/tdd.md
@@ -1,93 +1,184 @@
-# Test-Driven Development Pattern
+# Test-Driven Development (TDD) Pattern
-
-TDD is about design quality, not coverage metrics. Writing tests first forces you to think about behavior before implementation.
+**Red β Green β Refactor**
-**Principle:** If you can describe behavior as `expect(fn(input)).toBe(output)` before writing `fn`, TDD improves the result.
-
+Write tests first, make them pass, then refactor.
-
-## When TDD Improves Quality
+## Why TDD?
-**Use TDD for:**
-- Business logic with defined inputs/outputs
-- API endpoints with request/response contracts
-- Data transformations, parsing, formatting
-- Validation rules and constraints
-- Algorithms with testable behavior
+1. **Design quality:** Writing tests first forces good API design
+2. **Coverage:** 90%+ coverage by default
+3. **Confidence:** Refactor without fear
+4. **Documentation:** Tests document expected behavior
-**Skip TDD for:**
-- UI layout and styling
-- Configuration changes
-- Glue code connecting existing components
-- One-off scripts
-- Simple CRUD with no business logic
-
+## TDD Cycle
-
-## Red-Green-Refactor Cycle
-
-**RED - Write failing test:**
-1. Create test describing expected behavior
-2. Run test - it MUST fail
-3. If test passes: feature exists or test is wrong
-
-**GREEN - Implement to pass:**
-1. Write minimal code to make test pass
-2. No cleverness, no optimization - just make it work
-3. Run test - it MUST pass
-
-**REFACTOR (if needed):**
-1. Clean up implementation
-2. Run tests - MUST still pass
-3. Only commit if changes made
-
-
-
-## Good Tests vs Bad Tests
-
-**Test behavior, not implementation:**
-```typescript
-// GOOD: Tests observable behavior
-expect(formatDate(new Date('2024-01-15'))).toBe('Jan 15, 2024')
-
-// BAD: Tests implementation details
-expect(formatDate).toHaveBeenCalledWith(expect.any(Date))
+```
+βββββββββββββββββββββββββββββββββββββββββββββββ
+β 1. RED: Write a failing test β
+β - Test what the code SHOULD do β
+β - Test fails (code doesn't exist yet) β
+βββββββββββββββββββββββββββββββββββββββββββββββ
+ β
+βββββββββββββββββββββββββββββββββββββββββββββββ
+β 2. GREEN: Write minimal code to pass β
+β - Simplest implementation that works β
+β - Test passes β
+βββββββββββββββββββββββββββββββββββββββββββββββ
+ β
+βββββββββββββββββββββββββββββββββββββββββββββββ
+β 3. REFACTOR: Clean up code β
+β - Improve design β
+β - Remove duplication β
+β - Tests still pass β
+βββββββββββββββββββββββββββββββββββββββββββββββ
+ β
+ (repeat for next feature)
```
-**One concept per test:**
-```typescript
-// GOOD: Separate tests
-it('accepts valid email', () => { ... })
-it('rejects empty email', () => { ... })
-it('rejects malformed email', () => { ... })
+## Implementation Order
-// BAD: Multiple assertions
-it('validates email', () => {
- expect(validate('test@example.com')).toBe(true)
- expect(validate('')).toBe(false)
- expect(validate('invalid')).toBe(false)
-})
+### Greenfield (New Code)
+1. Write test for happy path
+2. Write test for error cases
+3. Write test for edge cases
+4. Implement to make all tests pass
+5. Refactor
+
+### Brownfield (Existing Code)
+1. Understand existing behavior
+2. Add tests for current behavior (characterization tests)
+3. Write test for new behavior
+4. Implement new behavior
+5. Refactor
+
+## Test Quality Standards
+
+### Good Test Characteristics
+- β
**Isolated:** Each test independent
+- β
**Fast:** Runs in milliseconds
+- β
**Clear:** Obvious what it tests
+- β
**Focused:** One behavior per test
+- β
**Stable:** No flakiness
+
+### Test Structure (AAA Pattern)
+```typescript
+test('should calculate total price with tax', () => {
+ // Arrange: Set up test data
+ const cart = new ShoppingCart();
+ cart.addItem({ price: 100, quantity: 2 });
+
+ // Act: Execute the behavior
+ const total = cart.getTotalWithTax(0.08);
+
+ // Assert: Verify the result
+ expect(total).toBe(216); // (100 * 2) * 1.08
+});
```
-**Descriptive names:**
+## What to Test
+
+### Must Test (Critical)
+- Business logic
+- API endpoints
+- Data transformations
+- Error handling
+- Authorization checks
+- Edge cases
+
+### Nice to Test (Important)
+- UI components
+- Integration flows
+- Performance benchmarks
+
+### Don't Waste Time Testing
+- Third-party libraries (already tested)
+- Framework internals (already tested)
+- Trivial getters/setters
+- Generated code
+
+## Coverage Target
+
+**Minimum:** 90% line coverage
+**Ideal:** 95%+ with meaningful tests
+
+**Coverage β Quality**
+- 100% coverage with bad tests is worthless
+- 90% coverage with good tests is excellent
+
+## TDD Anti-Patterns
+
+**Avoid these:**
+- β Writing tests after code (test-after)
+- β Testing implementation details
+- β Tests that test nothing
+- β Brittle tests (break with refactoring)
+- β Slow tests (> 1 second)
+
+## Example: TDD for API Endpoint
+
```typescript
-// GOOD
-it('returns null for invalid user ID')
-it('should reject empty email')
+// Step 1: RED - Write failing test
+describe('POST /api/orders', () => {
+ test('should create order and return 201', async () => {
+ const response = await request(app)
+ .post('/api/orders')
+ .send({ items: [{ id: 1, qty: 2 }] })
+ .expect(201);
+
+ expect(response.body).toHaveProperty('orderId');
+ });
+});
-// BAD
-it('test1')
-it('handles error')
-it('works')
+// Test fails (endpoint doesn't exist yet)
+
+// Step 2: GREEN - Minimal implementation
+app.post('/api/orders', async (req, res) => {
+ const orderId = await createOrder(req.body);
+ res.status(201).json({ orderId });
+});
+
+// Test passes
+
+// Step 3: REFACTOR - Add validation, error handling
+app.post('/api/orders', async (req, res) => {
+ try {
+ // Input validation
+ const schema = z.object({
+ items: z.array(z.object({
+ id: z.number(),
+ qty: z.number().min(1)
+ }))
+ });
+
+ const data = schema.parse(req.body);
+
+ // Business logic
+ const orderId = await createOrder(data);
+
+ res.status(201).json({ orderId });
+ } catch (error) {
+ if (error instanceof z.ZodError) {
+ res.status(400).json({ error: error.errors });
+ } else {
+ res.status(500).json({ error: 'Internal error' });
+ }
+ }
+});
+
+// All tests still pass
```
-
-
-## Coverage Targets
+## TDD in Practice
-- **90%+ line coverage** for new code
-- **100% branch coverage** for critical paths (auth, payments)
-- **Every error path** has at least one test
-- **Edge cases** explicitly tested
-
+**Start here:**
+1. Write one test for the simplest case
+2. Make it pass with simplest code
+3. Write next test for slightly more complex case
+4. Refactor when you see duplication
+5. Repeat
+
+**Don't:**
+- Write all tests first (too much work)
+- Write production code without failing test
+- Skip refactoring step
diff --git a/src/bmm/patterns/verification.md b/src/bmm/patterns/verification.md
index 2d359205..2a435d35 100644
--- a/src/bmm/patterns/verification.md
+++ b/src/bmm/patterns/verification.md
@@ -1,143 +1,198 @@
-# Verification Patterns
+# Independent Verification Pattern
-
-Existence β Implementation. A file existing does not mean the feature works.
+**Philosophy:** Trust but verify. Fresh eyes catch what familiarity misses.
-**Verification levels:**
-1. **Exists** - File is present
-2. **Substantive** - Content is real, not placeholder
-3. **Wired** - Connected to rest of system
-4. **Functional** - Actually works when invoked
-
+## Core Principle
-
-## Detecting Stubs and Placeholders
+The person who built something should NOT validate their own work.
+**Why?**
+- Confirmation bias (see what you expect to see)
+- Blind spots (familiar with your own code)
+- Fatigue (validated while building, miss issues)
+
+## Verification Requirements
+
+### Fresh Context
+Inspector agent has:
+- β
No knowledge of what Builder did
+- β
No preconceptions about implementation
+- β
Only the story requirements as context
+
+**This means:**
+- Run all checks yourself
+- Don't trust any claims
+- Start from scratch
+
+### What to Verify
+
+**1. Files Exist**
```bash
-# Comment-based stubs
-grep -E "(TODO|FIXME|XXX|PLACEHOLDER)" "$file"
-grep -E "implement|add later|coming soon" "$file" -i
-
-# Empty implementations
-grep -E "return null|return undefined|return \{\}|return \[\]" "$file"
-grep -E "console\.(log|warn).*only" "$file"
-
-# Placeholder text
-grep -E "placeholder|lorem ipsum|sample data" "$file" -i
+# For each file mentioned in story tasks
+ls -la {{file_path}}
+# FAIL if file missing or empty
```
-**Red flags in code:**
-```typescript
-// STUBS - Not real implementations:
-return Placeholder
-onClick={() => {}}
-export async function POST() { return Response.json({ ok: true }) }
-```
-
+**2. File Contents**
+- Open each file
+- Check it has actual code (not just TODO/stub)
+- Verify it matches story requirements
-
-## File Verification Commands
-
-**React Components:**
+**3. Tests Exist**
```bash
-# Exists and exports component
-[ -f "$file" ] && grep -E "export.*function|export const.*=" "$file"
-
-# Has real JSX (not null/empty)
-grep -E "return.*<" "$file" | grep -v "return.*null"
-
-# Uses props/state (not static)
-grep -E "props\.|useState|useEffect" "$file"
+find . -name "*.test.ts" -o -name "__tests__"
+# FAIL if no tests found for new code
```
-**API Routes:**
-```bash
-# Exports HTTP handlers
-grep -E "export.*(GET|POST|PUT|DELETE)" "$file"
+**4. Quality Checks Pass**
-# Has database interaction
-grep -E "prisma\.|db\.|query|find|create" "$file"
-
-# Has error handling
-grep -E "try|catch|throw" "$file"
-```
-
-**Tests:**
-```bash
-# Test file exists
-[ -f "$test_file" ]
-
-# Has test cases
-grep -E "it\(|test\(|describe\(" "$test_file"
-
-# Not all skipped
-grep -c "\.skip" "$test_file"
-```
-
-
-
-## Quality Check Commands
+Run these yourself. Don't trust claims.
```bash
-# Type check - zero errors
+# Type check
npm run type-check
-echo "Exit code: $?"
+# FAIL if any errors
-# Lint - zero errors/warnings
-npm run lint 2>&1 | tail -5
+# Linter
+npm run lint
+# FAIL if any errors or warnings
-# Tests - all passing
-npm test 2>&1 | grep -E "pass|fail|error" -i | tail -10
+# Build
+npm run build
+# FAIL if build fails
-# Build - succeeds
-npm run build 2>&1 | tail -5
+# Tests
+npm test -- {{story_specific_tests}}
+# FAIL if any tests fail
+# FAIL if tests are skipped
+# FAIL if coverage < 90%
```
-**All must return exit code 0.**
-
-
-
-## Wiring Verification
-
-**Component β API:**
+**5. Git Status**
```bash
-# Check component calls the API
-grep -E "fetch\(['\"].*$api_path|axios.*$api_path" "$component"
+git status
+# Check for uncommitted files
+# List what was changed
```
-**API β Database:**
-```bash
-# Check API queries database
-grep -E "await.*prisma|await.*db\." "$route"
-```
+## Verification Verdict
-**Form β Handler:**
-```bash
-# Check form has real submit handler
-grep -A 5 "onSubmit" "$component" | grep -E "fetch|axios|mutate"
-```
-
+### PASS Criteria
+All of these must be true:
+- [ ] All story files exist and have content
+- [ ] Type check returns 0 errors
+- [ ] Linter returns 0 errors/warnings
+- [ ] Build succeeds
+- [ ] Tests run and pass (not skipped)
+- [ ] Test coverage >= 90%
+- [ ] Git status is clean or has expected changes
-
-## Verdict Format
+**If ANY checkbox is unchecked β FAIL verdict**
+
+### PASS Output
```markdown
-## VALIDATION RESULT
+β
VALIDATION PASSED
-**Status:** PASS | FAIL
-
-### Evidence
+Evidence:
+- Files verified: [list files checked]
- Type check: PASS (0 errors)
-- Lint: PASS (0 warnings)
+- Linter: PASS (0 warnings)
- Build: PASS
-- Tests: 45/45 passing
+- Tests: 45/45 passing (95% coverage)
+- Git: 12 files modified, 3 new files
-### Files Verified
-- path/to/file.ts β
-- path/to/other.ts β
-
-### Failures (if FAIL)
-1. [CRITICAL] Missing file: src/api/route.ts
-2. [HIGH] Type error in lib/auth.ts:45
+Ready for code review.
```
-
+
+### FAIL Output
+
+```markdown
+β VALIDATION FAILED
+
+Failures:
+1. File missing: app/api/occupant/agreement/route.ts
+2. Type check: 3 errors in lib/api/auth.ts
+3. Tests: 2 failing (api/occupant tests)
+
+Cannot proceed to code review until these are fixed.
+```
+
+## Why This Works
+
+**Verification is NOT rubber-stamping.**
+
+Inspector's job is to find the truth:
+- Did the work actually get done?
+- Do the quality checks actually pass?
+- Are the files actually there?
+
+If something is wrong, say so with evidence.
+
+## Anti-Patterns
+
+**Don't do this:**
+- β Take Builder's word for anything
+- β Skip verification steps
+- β Assume tests pass without running them
+- β Give PASS verdict if ANY check fails
+
+**Do this instead:**
+- β
Run all checks yourself
+- β
Provide specific evidence
+- β
Give honest verdict
+- β
FAIL fast if issues found
+
+## Example: Good Verification
+
+```markdown
+## Verification Results
+
+**File Checks:**
+β
lib/billing/payment-processor.ts (1,234 lines)
+β
lib/billing/__tests__/payment-processor.test.ts (456 lines)
+β
lib/billing/worker.ts (modified)
+
+**Quality Checks:**
+β
Type check: PASS (0 errors)
+β
Linter: PASS (0 warnings)
+β
Build: PASS (2.3s)
+
+**Tests:**
+β
48/48 passing
+β
96% coverage
+β
0 skipped
+
+**Git Status:**
+- Modified: 1 file
+- Created: 2 files
+- Total: 3 files changed
+
+**Verdict:** PASS
+
+Ready for code review.
+```
+
+## Example: Bad Verification (Don't Do This)
+
+```markdown
+## Verification Results
+
+Everything looks good! β
+
+Builder said tests pass and I believe them.
+
+**Verdict:** PASS
+```
+
+**What's wrong:**
+- β No evidence
+- β Trusted claims without verification
+- β Didn't run checks
+- β Rubber-stamped
+
+## Remember
+
+**You are the INSPECTOR. Your job is to find the truth.**
+
+If you give a PASS verdict and later find issues, that's on you.
diff --git a/src/bmm/workflows/4-implementation/multi-agent-review/workflow.md b/src/bmm/workflows/4-implementation/multi-agent-review/workflow.md
index 1d774706..95a8b1cc 100644
--- a/src/bmm/workflows/4-implementation/multi-agent-review/workflow.md
+++ b/src/bmm/workflows/4-implementation/multi-agent-review/workflow.md
@@ -19,9 +19,9 @@ name: multi-agent-review
version: 3.0.0
agent_selection:
- micro: {count: 1, agents: [security]}
- standard: {count: 2, agents: [security, code_quality]}
- complex: {count: 3, agents: [security, code_quality, architecture]}
+ micro: {count: 2, agents: [security, code_quality]}
+ standard: {count: 4, agents: [security, code_quality, architecture, testing]}
+ complex: {count: 6, agents: [security, code_quality, architecture, testing, performance, domain_expert]}
available_agents:
security: "Identifies vulnerabilities and security risks"
@@ -41,40 +41,21 @@ available_agents:
-**Select agents based on override or complexity**
+**Select agents based on complexity**
```
-# Priority 1: Check for explicit override
-If override_agent_count is provided (not null):
- agent_count = min(override_agent_count, 6) # Cap at 6 max
- Select top N agents based on changed code patterns
- Display: π§ CUSTOM Review ({{agent_count}} agents)
-
-# Priority 2: Use complexity-based default
-Else if complexity_level == "micro":
- agent_count = 1
- agents = ["security"]
- Display: π MICRO Review (1 agent)
+If complexity_level == "micro":
+ agents = ["security", "code_quality"]
+ Display: π MICRO Review (2 agents)
Else if complexity_level == "standard":
- agent_count = 2
- agents = ["security", "code_quality"]
- Display: π STANDARD Review (2 agents)
+ agents = ["security", "code_quality", "architecture", "testing"]
+ Display: π STANDARD Review (4 agents)
Else if complexity_level == "complex":
- agent_count = 3
- agents = ["security", "code_quality", "architecture"]
- Display: π¬ COMPLEX Review (3 agents)
+ agents = ALL 6 agents
+ Display: π¬ COMPLEX Review (6 agents)
```
-
-**Agent Selection Priority:**
-1. Security (always first)
-2. Code Quality (always second)
-3-6. Selected based on code patterns:
- - Architecture (for structural changes)
- - Testing (for test coverage)
- - Performance (for optimization)
- - Domain Expert (for business logic)
diff --git a/src/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml b/src/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml
index e554cccd..8ffb9b7f 100644
--- a/src/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml
+++ b/src/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml
@@ -18,29 +18,28 @@ story_id: "{story_id}" # Required
story_file: "{sprint_artifacts}/story-{story_id}.md"
base_branch: "main" # Optional: branch to compare against
complexity_level: "standard" # micro | standard | complex (passed from story-full-pipeline)
-override_agent_count: null # Optional: override complexity-based count (1-6, null = use complexity_level)
# Complexity-based agent selection (NEW v1.0.0)
# Cost-effective review depth based on story RISK and technical complexity
# Complexity determined by batch-stories based on: risk keywords, architectural impact, security concerns
complexity_routing:
micro:
- agent_count: 1
- agents: ["security"]
+ agent_count: 2
+ agents: ["security", "code_quality"]
description: "Quick sanity check for low-risk stories"
examples: ["UI tweaks", "text changes", "simple CRUD", "documentation"]
cost_multiplier: 1x
standard:
- agent_count: 2
- agents: ["security", "code_quality"]
+ agent_count: 4
+ agents: ["security", "code_quality", "architecture", "testing"]
description: "Balanced multi-perspective review for medium-risk changes"
examples: ["API endpoints", "business logic", "data validation", "component refactors"]
cost_multiplier: 2x
complex:
- agent_count: 3
- agents: ["security", "code_quality", "architecture"]
+ agent_count: 6
+ agents: ["security", "code_quality", "architecture", "testing", "performance", "domain_expert"]
description: "Comprehensive review for high-risk/high-complexity changes"
examples: ["auth/security", "payments", "data migration", "architecture changes", "performance-critical", "complex algorithms"]
cost_multiplier: 3x
diff --git a/src/modules/bmm/patterns/agent-completion.md b/src/modules/bmm/patterns/agent-completion.md
deleted file mode 100644
index f2cf1309..00000000
--- a/src/modules/bmm/patterns/agent-completion.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# Agent Completion Artifact Pattern
-
-**Problem:** Agents fail to update story files reliably (60% success rate)
-**Solution:** Agents create completion.json artifacts. Orchestrator uses them to update story files.
-
-## The Contract
-
-### Agent Responsibility
-Each agent MUST create a completion artifact before finishing:
-- **File path:** `docs/sprint-artifacts/completions/{{story_key}}-{{agent_name}}.json`
-- **Format:** Structured JSON (see formats below)
-- **Verification:** File exists = work done (binary check)
-
-### Orchestrator Responsibility
-Orchestrator reads completion artifacts and:
-- Parses JSON for structured data
-- Updates story file tasks (check off completed)
-- Fills Dev Agent Record with evidence
-- Verifies updates succeeded
-
-## Why This Works
-
-**File-based verification:**
-- β
Binary check: File exists or doesn't
-- β
No complex parsing of agent output
-- β
No reconciliation logic needed
-- β
Hard stop if artifact missing
-
-**JSON format:**
-- β
Easy to parse reliably
-- β
Structured data (not prose)
-- β
Version controllable
-- β
Auditable trail
-
-## How to Use This Pattern
-
-### In Agent Prompts
-
-Include this in every agent prompt:
-
-```markdown
-## CRITICAL: Create Completion Artifact
-
-**MANDATORY:** Before returning, you MUST create a completion artifact JSON file.
-
-**File Path:** `docs/sprint-artifacts/completions/{{story_key}}-{{agent_name}}.json`
-
-**Format:**
-```json
-{
- "story_key": "{{story_key}}",
- "agent": "{{agent_name}}",
- "status": "SUCCESS",
- "files_created": ["file1.ts", "file2.ts"],
- "files_modified": ["file3.ts"],
- "timestamp": "2026-01-27T02:30:00Z"
-}
-```
-
-**Use Write tool to create this file. No exceptions.**
-```
-
-### In Orchestrator Verification
-
-After agent completes, verify artifact exists:
-
-```bash
-COMPLETION_FILE="docs/sprint-artifacts/completions/{{story_key}}-{{agent}}.json"
-
-if [ ! -f "$COMPLETION_FILE" ]; then
- echo "β BLOCKER: Agent failed to create completion artifact"
- exit 1
-fi
-
-echo "β
Completion artifact found"
-```
-
-### In Reconciliation
-
-Parse artifact to update story file:
-
-```markdown
-1. Load completion artifact with Read tool
-2. Parse JSON to extract data
-3. Use Edit tool to update story file
-4. Verify updates with bash checks
-```
-
-## Artifact Formats by Agent
-
-### Builder Completion
-
-```json
-{
- "story_key": "19-4",
- "agent": "builder",
- "status": "SUCCESS",
- "tasks_completed": [
- "Create PaymentProcessor service",
- "Add retry logic with exponential backoff"
- ],
- "files_created": [
- "lib/billing/payment-processor.ts",
- "lib/billing/__tests__/payment-processor.test.ts"
- ],
- "files_modified": [
- "lib/billing/worker.ts"
- ],
- "tests": {
- "files": 2,
- "cases": 15
- },
- "timestamp": "2026-01-27T02:30:00Z"
-}
-```
-
-### Inspector Completion
-
-```json
-{
- "story_key": "19-4",
- "agent": "inspector",
- "status": "PASS",
- "quality_checks": {
- "type_check": "PASS",
- "lint": "PASS",
- "build": "PASS"
- },
- "tests": {
- "passing": 45,
- "failing": 0,
- "total": 45,
- "coverage": 95
- },
- "files_verified": [
- "lib/billing/payment-processor.ts"
- ],
- "timestamp": "2026-01-27T02:35:00Z"
-}
-```
-
-### Reviewer Completion
-
-```json
-{
- "story_key": "19-4",
- "agent": "reviewer",
- "status": "ISSUES_FOUND",
- "issues": {
- "critical": 2,
- "high": 3,
- "medium": 4,
- "low": 2,
- "total": 11
- },
- "must_fix": [
- {
- "severity": "CRITICAL",
- "location": "api/route.ts:45",
- "description": "SQL injection vulnerability"
- }
- ],
- "files_reviewed": [
- "api/route.ts"
- ],
- "timestamp": "2026-01-27T02:40:00Z"
-}
-```
-
-### Fixer Completion (FINAL)
-
-```json
-{
- "story_key": "19-4",
- "agent": "fixer",
- "status": "SUCCESS",
- "issues_fixed": {
- "critical": 2,
- "high": 3,
- "total": 5
- },
- "fixes_applied": [
- "Fixed SQL injection in agreement route (CRITICAL)",
- "Added authorization check (CRITICAL)"
- ],
- "files_modified": [
- "api/route.ts"
- ],
- "quality_checks": {
- "type_check": "PASS",
- "lint": "PASS",
- "build": "PASS"
- },
- "tests": {
- "passing": 48,
- "failing": 0,
- "total": 48,
- "coverage": 96
- },
- "git_commit": "a1b2c3d4e5f",
- "timestamp": "2026-01-27T02:50:00Z"
-}
-```
-
-## Benefits
-
-- **Reliability:** 60% β 100% (file exists is binary)
-- **Simplicity:** No complex output parsing
-- **Auditability:** JSON files are version controlled
-- **Debuggability:** Can inspect artifacts when issues occur
-- **Enforcement:** Can't proceed without completion artifact (hard stop)
-
-## Anti-Patterns
-
-**Don't do this:**
-- β Trust agent output without verification
-- β Parse agent prose for structured data
-- β Let agents update story files directly
-- β Skip artifact creation ("just this once")
-
-**Do this instead:**
-- β
Verify artifact exists (binary check)
-- β
Parse JSON for reliable data
-- β
Orchestrator updates story files
-- β
Hard stop if artifact missing
diff --git a/src/modules/bmm/patterns/hospital-grade.md b/src/modules/bmm/patterns/hospital-grade.md
deleted file mode 100644
index a8bfc09c..00000000
--- a/src/modules/bmm/patterns/hospital-grade.md
+++ /dev/null
@@ -1,75 +0,0 @@
-# Hospital-Grade Quality Standards
-
-**Philosophy:** Quality >> Speed
-
-This pattern ensures code meets production-grade standards regardless of story complexity.
-
-## Core Principles
-
-1. **Take time to do it right**
- - Don't rush implementations
- - Consider edge cases
- - Handle errors properly
-
-2. **No shortcuts**
- - Don't skip error handling
- - Don't leave TODO comments
- - Don't use `any` types
- - Don't hardcode values
-
-3. **Production-ready from day one**
- - All code deployable immediately
- - No "we'll fix it later"
- - No technical debt by design
-
-## Quality Checklist
-
-### Code Quality
-- [ ] All functions have clear, single responsibility
-- [ ] Error handling for all failure paths
-- [ ] Input validation at system boundaries
-- [ ] No magic numbers or hardcoded strings
-- [ ] Type safety (no `any`, proper generics)
-
-### Testing
-- [ ] Unit tests for business logic
-- [ ] Integration tests for API endpoints
-- [ ] Edge cases covered
-- [ ] Error cases covered
-- [ ] 90%+ coverage target
-
-### Security
-- [ ] No SQL injection vulnerabilities
-- [ ] No XSS vulnerabilities
-- [ ] Authentication/authorization checks
-- [ ] Input sanitization
-- [ ] No secrets in code
-
-### Performance
-- [ ] No N+1 query patterns
-- [ ] Appropriate database indexes
-- [ ] Efficient algorithms (avoid O(nΒ²) where possible)
-- [ ] Resource cleanup (connections, files)
-
-### Maintainability
-- [ ] Code follows project patterns
-- [ ] Self-documenting code (clear names)
-- [ ] Comments only where logic isn't obvious
-- [ ] Consistent formatting
-- [ ] DRY (Don't Repeat Yourself)
-
-## Red Flags
-
-**Immediate rejection criteria:**
-- β Security vulnerabilities
-- β Data loss scenarios
-- β Production bugs
-- β Missing error handling
-- β Skipped tests
-- β Hardcoded secrets
-
-## Hospital-Grade Mindset
-
-> "If this code ran a medical device, would I trust it with my family's life?"
-
-If the answer is no, it's not hospital-grade. Fix it.
diff --git a/src/modules/bmm/patterns/security-checklist.md b/src/modules/bmm/patterns/security-checklist.md
deleted file mode 100644
index 70ffc1c5..00000000
--- a/src/modules/bmm/patterns/security-checklist.md
+++ /dev/null
@@ -1,340 +0,0 @@
-# Security Review Checklist
-
-**Philosophy:** Security issues are CRITICAL. No exceptions.
-
-This checklist helps identify common security vulnerabilities in code reviews.
-
-## CRITICAL Security Issues
-
-These MUST be fixed. No story ships with these issues.
-
-### 1. SQL Injection
-
-**Look for:**
-```javascript
-// β BAD: User input in query string
-const query = `SELECT * FROM users WHERE id = '${userId}'`;
-const query = "SELECT * FROM users WHERE id = '" + userId + "'";
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Parameterized queries
-const query = db.prepare('SELECT * FROM users WHERE id = ?');
-query.get(userId);
-
-// β
GOOD: ORM/Query builder
-const user = await prisma.user.findUnique({ where: { id: userId } });
-```
-
-### 2. XSS (Cross-Site Scripting)
-
-**Look for:**
-```javascript
-// β BAD: Unsanitized user input in HTML
-element.innerHTML = userInput;
-document.write(userInput);
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Use textContent or sanitize
-element.textContent = userInput;
-
-// β
GOOD: Use framework's built-in escaping
-{userInput}
// React automatically escapes
-```
-
-### 3. Authentication Bypass
-
-**Look for:**
-```javascript
-// β BAD: No auth check
-app.get('/api/admin/users', async (req, res) => {
- const users = await getUsers();
- res.json(users);
-});
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Require auth
-app.get('/api/admin/users', requireAuth, async (req, res) => {
- const users = await getUsers();
- res.json(users);
-});
-```
-
-### 4. Authorization Gaps
-
-**Look for:**
-```javascript
-// β BAD: No ownership check
-app.delete('/api/orders/:id', async (req, res) => {
- await deleteOrder(req.params.id);
- res.json({ success: true });
-});
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Verify user owns resource
-app.delete('/api/orders/:id', async (req, res) => {
- const order = await getOrder(req.params.id);
-
- if (order.userId !== req.user.id) {
- return res.status(403).json({ error: 'Forbidden' });
- }
-
- await deleteOrder(req.params.id);
- res.json({ success: true });
-});
-```
-
-### 5. Hardcoded Secrets
-
-**Look for:**
-```javascript
-// β BAD: Secrets in code
-const API_KEY = 'sk-1234567890abcdef';
-const DB_PASSWORD = 'MyP@ssw0rd123';
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Environment variables
-const API_KEY = process.env.API_KEY;
-const DB_PASSWORD = process.env.DB_PASSWORD;
-
-// β
GOOD: Secrets manager
-const API_KEY = await secretsManager.get('API_KEY');
-```
-
-### 6. Insecure Direct Object Reference (IDOR)
-
-**Look for:**
-```javascript
-// β BAD: Use user-supplied ID without validation
-app.get('/api/documents/:id', async (req, res) => {
- const doc = await getDocument(req.params.id);
- res.json(doc);
-});
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Verify access
-app.get('/api/documents/:id', async (req, res) => {
- const doc = await getDocument(req.params.id);
-
- // Check user has permission to view this document
- if (!await userCanAccessDocument(req.user.id, doc.id)) {
- return res.status(403).json({ error: 'Forbidden' });
- }
-
- res.json(doc);
-});
-```
-
-## HIGH Security Issues
-
-These should be fixed before shipping.
-
-### 7. Missing Input Validation
-
-**Look for:**
-```javascript
-// β BAD: No validation
-app.post('/api/users', async (req, res) => {
- await createUser(req.body);
- res.json({ success: true });
-});
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Validate input
-app.post('/api/users', async (req, res) => {
- const schema = z.object({
- email: z.string().email(),
- age: z.number().min(18).max(120)
- });
-
- try {
- const data = schema.parse(req.body);
- await createUser(data);
- res.json({ success: true });
- } catch (error) {
- res.status(400).json({ error: error.errors });
- }
-});
-```
-
-### 8. Sensitive Data Exposure
-
-**Look for:**
-```javascript
-// β BAD: Exposing sensitive fields
-const user = await getUser(userId);
-res.json(user); // Contains password hash, SSN, etc.
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Select only safe fields
-const user = await getUser(userId);
-res.json({
- id: user.id,
- name: user.name,
- email: user.email
- // Don't include: password, ssn, etc.
-});
-```
-
-### 9. Missing Rate Limiting
-
-**Look for:**
-```javascript
-// β BAD: No rate limit
-app.post('/api/login', async (req, res) => {
- const user = await authenticate(req.body);
- res.json({ token: user.token });
-});
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Rate limit sensitive endpoints
-app.post('/api/login',
- rateLimit({ max: 5, windowMs: 60000 }), // 5 attempts per minute
- async (req, res) => {
- const user = await authenticate(req.body);
- res.json({ token: user.token });
- }
-);
-```
-
-### 10. Insecure Randomness
-
-**Look for:**
-```javascript
-// β BAD: Using Math.random() for tokens
-const token = Math.random().toString(36);
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Cryptographically secure random
-const crypto = require('crypto');
-const token = crypto.randomBytes(32).toString('hex');
-```
-
-## MEDIUM Security Issues
-
-These improve security but aren't critical.
-
-### 11. Missing HTTPS
-
-**Look for:**
-```javascript
-// β BAD: HTTP only
-app.listen(3000);
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Force HTTPS in production
-if (process.env.NODE_ENV === 'production') {
- app.use((req, res, next) => {
- if (req.header('x-forwarded-proto') !== 'https') {
- res.redirect(`https://${req.header('host')}${req.url}`);
- } else {
- next();
- }
- });
-}
-```
-
-### 12. Missing Security Headers
-
-**Look for:**
-```javascript
-// β BAD: No security headers
-app.use(express.json());
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Add security headers
-app.use(helmet()); // Adds multiple security headers
-```
-
-### 13. Verbose Error Messages
-
-**Look for:**
-```javascript
-// β BAD: Exposing stack traces
-app.use((error, req, res, next) => {
- res.status(500).json({ error: error.stack });
-});
-```
-
-**Fix with:**
-```javascript
-// β
GOOD: Generic error message
-app.use((error, req, res, next) => {
- console.error(error); // Log internally
- res.status(500).json({ error: 'Internal server error' });
-});
-```
-
-## Review Process
-
-### Step 1: Automated Checks
-
-Run security scanners:
-```bash
-# Check for known vulnerabilities
-npm audit
-
-# Static analysis
-npx eslint-plugin-security
-
-# Secrets detection
-git secrets --scan
-```
-
-### Step 2: Manual Review
-
-Use this checklist to review:
-- [ ] SQL injection vulnerabilities
-- [ ] XSS vulnerabilities
-- [ ] Authentication bypasses
-- [ ] Authorization gaps
-- [ ] Hardcoded secrets
-- [ ] IDOR vulnerabilities
-- [ ] Missing input validation
-- [ ] Sensitive data exposure
-- [ ] Missing rate limiting
-- [ ] Insecure randomness
-
-### Step 3: Document Findings
-
-For each issue found:
-```markdown
-**Issue #1: SQL Injection Vulnerability**
-- **Location:** api/users/route.ts:45
-- **Severity:** CRITICAL
-- **Problem:** User input concatenated into query
-- **Code:**
- ```typescript
- const query = `SELECT * FROM users WHERE id = '${userId}'`
- ```
-- **Fix:** Use parameterized queries with Prisma
-```
-
-## Remember
-
-**Security issues are CRITICAL. They MUST be fixed.**
-
-Don't let security issues slide because "we'll fix it later." Fix them now.
diff --git a/src/modules/bmm/patterns/tdd.md b/src/modules/bmm/patterns/tdd.md
deleted file mode 100644
index db9bda36..00000000
--- a/src/modules/bmm/patterns/tdd.md
+++ /dev/null
@@ -1,184 +0,0 @@
-# Test-Driven Development (TDD) Pattern
-
-**Red β Green β Refactor**
-
-Write tests first, make them pass, then refactor.
-
-## Why TDD?
-
-1. **Design quality:** Writing tests first forces good API design
-2. **Coverage:** 90%+ coverage by default
-3. **Confidence:** Refactor without fear
-4. **Documentation:** Tests document expected behavior
-
-## TDD Cycle
-
-```
-βββββββββββββββββββββββββββββββββββββββββββββββ
-β 1. RED: Write a failing test β
-β - Test what the code SHOULD do β
-β - Test fails (code doesn't exist yet) β
-βββββββββββββββββββββββββββββββββββββββββββββββ
- β
-βββββββββββββββββββββββββββββββββββββββββββββββ
-β 2. GREEN: Write minimal code to pass β
-β - Simplest implementation that works β
-β - Test passes β
-βββββββββββββββββββββββββββββββββββββββββββββββ
- β
-βββββββββββββββββββββββββββββββββββββββββββββββ
-β 3. REFACTOR: Clean up code β
-β - Improve design β
-β - Remove duplication β
-β - Tests still pass β
-βββββββββββββββββββββββββββββββββββββββββββββββ
- β
- (repeat for next feature)
-```
-
-## Implementation Order
-
-### Greenfield (New Code)
-1. Write test for happy path
-2. Write test for error cases
-3. Write test for edge cases
-4. Implement to make all tests pass
-5. Refactor
-
-### Brownfield (Existing Code)
-1. Understand existing behavior
-2. Add tests for current behavior (characterization tests)
-3. Write test for new behavior
-4. Implement new behavior
-5. Refactor
-
-## Test Quality Standards
-
-### Good Test Characteristics
-- β
**Isolated:** Each test independent
-- β
**Fast:** Runs in milliseconds
-- β
**Clear:** Obvious what it tests
-- β
**Focused:** One behavior per test
-- β
**Stable:** No flakiness
-
-### Test Structure (AAA Pattern)
-```typescript
-test('should calculate total price with tax', () => {
- // Arrange: Set up test data
- const cart = new ShoppingCart();
- cart.addItem({ price: 100, quantity: 2 });
-
- // Act: Execute the behavior
- const total = cart.getTotalWithTax(0.08);
-
- // Assert: Verify the result
- expect(total).toBe(216); // (100 * 2) * 1.08
-});
-```
-
-## What to Test
-
-### Must Test (Critical)
-- Business logic
-- API endpoints
-- Data transformations
-- Error handling
-- Authorization checks
-- Edge cases
-
-### Nice to Test (Important)
-- UI components
-- Integration flows
-- Performance benchmarks
-
-### Don't Waste Time Testing
-- Third-party libraries (already tested)
-- Framework internals (already tested)
-- Trivial getters/setters
-- Generated code
-
-## Coverage Target
-
-**Minimum:** 90% line coverage
-**Ideal:** 95%+ with meaningful tests
-
-**Coverage β Quality**
-- 100% coverage with bad tests is worthless
-- 90% coverage with good tests is excellent
-
-## TDD Anti-Patterns
-
-**Avoid these:**
-- β Writing tests after code (test-after)
-- β Testing implementation details
-- β Tests that test nothing
-- β Brittle tests (break with refactoring)
-- β Slow tests (> 1 second)
-
-## Example: TDD for API Endpoint
-
-```typescript
-// Step 1: RED - Write failing test
-describe('POST /api/orders', () => {
- test('should create order and return 201', async () => {
- const response = await request(app)
- .post('/api/orders')
- .send({ items: [{ id: 1, qty: 2 }] })
- .expect(201);
-
- expect(response.body).toHaveProperty('orderId');
- });
-});
-
-// Test fails (endpoint doesn't exist yet)
-
-// Step 2: GREEN - Minimal implementation
-app.post('/api/orders', async (req, res) => {
- const orderId = await createOrder(req.body);
- res.status(201).json({ orderId });
-});
-
-// Test passes
-
-// Step 3: REFACTOR - Add validation, error handling
-app.post('/api/orders', async (req, res) => {
- try {
- // Input validation
- const schema = z.object({
- items: z.array(z.object({
- id: z.number(),
- qty: z.number().min(1)
- }))
- });
-
- const data = schema.parse(req.body);
-
- // Business logic
- const orderId = await createOrder(data);
-
- res.status(201).json({ orderId });
- } catch (error) {
- if (error instanceof z.ZodError) {
- res.status(400).json({ error: error.errors });
- } else {
- res.status(500).json({ error: 'Internal error' });
- }
- }
-});
-
-// All tests still pass
-```
-
-## TDD in Practice
-
-**Start here:**
-1. Write one test for the simplest case
-2. Make it pass with simplest code
-3. Write next test for slightly more complex case
-4. Refactor when you see duplication
-5. Repeat
-
-**Don't:**
-- Write all tests first (too much work)
-- Write production code without failing test
-- Skip refactoring step
diff --git a/src/modules/bmm/patterns/verification.md b/src/modules/bmm/patterns/verification.md
deleted file mode 100644
index 2a435d35..00000000
--- a/src/modules/bmm/patterns/verification.md
+++ /dev/null
@@ -1,198 +0,0 @@
-# Independent Verification Pattern
-
-**Philosophy:** Trust but verify. Fresh eyes catch what familiarity misses.
-
-## Core Principle
-
-The person who built something should NOT validate their own work.
-
-**Why?**
-- Confirmation bias (see what you expect to see)
-- Blind spots (familiar with your own code)
-- Fatigue (validated while building, miss issues)
-
-## Verification Requirements
-
-### Fresh Context
-Inspector agent has:
-- β
No knowledge of what Builder did
-- β
No preconceptions about implementation
-- β
Only the story requirements as context
-
-**This means:**
-- Run all checks yourself
-- Don't trust any claims
-- Start from scratch
-
-### What to Verify
-
-**1. Files Exist**
-```bash
-# For each file mentioned in story tasks
-ls -la {{file_path}}
-# FAIL if file missing or empty
-```
-
-**2. File Contents**
-- Open each file
-- Check it has actual code (not just TODO/stub)
-- Verify it matches story requirements
-
-**3. Tests Exist**
-```bash
-find . -name "*.test.ts" -o -name "__tests__"
-# FAIL if no tests found for new code
-```
-
-**4. Quality Checks Pass**
-
-Run these yourself. Don't trust claims.
-
-```bash
-# Type check
-npm run type-check
-# FAIL if any errors
-
-# Linter
-npm run lint
-# FAIL if any errors or warnings
-
-# Build
-npm run build
-# FAIL if build fails
-
-# Tests
-npm test -- {{story_specific_tests}}
-# FAIL if any tests fail
-# FAIL if tests are skipped
-# FAIL if coverage < 90%
-```
-
-**5. Git Status**
-```bash
-git status
-# Check for uncommitted files
-# List what was changed
-```
-
-## Verification Verdict
-
-### PASS Criteria
-All of these must be true:
-- [ ] All story files exist and have content
-- [ ] Type check returns 0 errors
-- [ ] Linter returns 0 errors/warnings
-- [ ] Build succeeds
-- [ ] Tests run and pass (not skipped)
-- [ ] Test coverage >= 90%
-- [ ] Git status is clean or has expected changes
-
-**If ANY checkbox is unchecked β FAIL verdict**
-
-### PASS Output
-
-```markdown
-β
VALIDATION PASSED
-
-Evidence:
-- Files verified: [list files checked]
-- Type check: PASS (0 errors)
-- Linter: PASS (0 warnings)
-- Build: PASS
-- Tests: 45/45 passing (95% coverage)
-- Git: 12 files modified, 3 new files
-
-Ready for code review.
-```
-
-### FAIL Output
-
-```markdown
-β VALIDATION FAILED
-
-Failures:
-1. File missing: app/api/occupant/agreement/route.ts
-2. Type check: 3 errors in lib/api/auth.ts
-3. Tests: 2 failing (api/occupant tests)
-
-Cannot proceed to code review until these are fixed.
-```
-
-## Why This Works
-
-**Verification is NOT rubber-stamping.**
-
-Inspector's job is to find the truth:
-- Did the work actually get done?
-- Do the quality checks actually pass?
-- Are the files actually there?
-
-If something is wrong, say so with evidence.
-
-## Anti-Patterns
-
-**Don't do this:**
-- β Take Builder's word for anything
-- β Skip verification steps
-- β Assume tests pass without running them
-- β Give PASS verdict if ANY check fails
-
-**Do this instead:**
-- β
Run all checks yourself
-- β
Provide specific evidence
-- β
Give honest verdict
-- β
FAIL fast if issues found
-
-## Example: Good Verification
-
-```markdown
-## Verification Results
-
-**File Checks:**
-β
lib/billing/payment-processor.ts (1,234 lines)
-β
lib/billing/__tests__/payment-processor.test.ts (456 lines)
-β
lib/billing/worker.ts (modified)
-
-**Quality Checks:**
-β
Type check: PASS (0 errors)
-β
Linter: PASS (0 warnings)
-β
Build: PASS (2.3s)
-
-**Tests:**
-β
48/48 passing
-β
96% coverage
-β
0 skipped
-
-**Git Status:**
-- Modified: 1 file
-- Created: 2 files
-- Total: 3 files changed
-
-**Verdict:** PASS
-
-Ready for code review.
-```
-
-## Example: Bad Verification (Don't Do This)
-
-```markdown
-## Verification Results
-
-Everything looks good! β
-
-Builder said tests pass and I believe them.
-
-**Verdict:** PASS
-```
-
-**What's wrong:**
-- β No evidence
-- β Trusted claims without verification
-- β Didn't run checks
-- β Rubber-stamped
-
-## Remember
-
-**You are the INSPECTOR. Your job is to find the truth.**
-
-If you give a PASS verdict and later find issues, that's on you.
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/AGENT-LIMITATIONS.md b/src/modules/bmm/workflows/4-implementation/batch-super-dev/AGENT-LIMITATIONS.md
deleted file mode 100644
index 8e218632..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/AGENT-LIMITATIONS.md
+++ /dev/null
@@ -1,237 +0,0 @@
-# Agent Limitations in Batch Mode
-
-**CRITICAL:** Agents running in batch-stories have specific limitations. Understanding these prevents wasted time and sets correct expectations.
-
----
-
-## Core Limitations
-
-### β Agents CANNOT Invoke Other Workflows
-
-**What this means:**
-- Agents cannot run `/create-story-with-gap-analysis`
-- Agents cannot execute `/` slash commands (those are for user CLI)
-- Agents cannot call other BMAD workflows mid-execution
-
-**Why:**
-- Slash commands require user terminal context
-- Workflow invocation requires special tool access
-- Batch agents are isolated execution contexts
-
-**Implication:**
-- Story creation MUST happen before batch execution
-- If stories are incomplete, batch will skip them
-- No way to "fix" stories during batch
-
----
-
-### β Agents CANNOT Prompt User Interactively
-
-**What this means:**
-- Batch runs autonomously, no user interaction
-- `` tags are auto-answered with defaults
-- No way to clarify ambiguous requirements mid-batch
-
-**Why:**
-- Batch is designed for unattended execution
-- User may not be present during execution
-- Prompts would break parallel execution
-
-**Implication:**
-- All requirements must be clear in story file
-- Optional steps are skipped
-- Ambiguous stories will halt or skip
-
----
-
-### β Agents CANNOT Generate Missing BMAD Sections
-
-**What this means:**
-- If story has <12 sections, agent halts
-- If story has 0 tasks, agent halts
-- Agent will NOT try to "fix" the story format
-
-**Why:**
-- Story format is structural, not implementation
-- Generating sections requires context agent doesn't have
-- Gap analysis requires codebase scanning beyond agent scope
-
-**Implication:**
-- All stories must be properly formatted BEFORE batch
-- Run validation: `./scripts/validate-bmad-format.sh`
-- Regenerate incomplete stories manually
-
----
-
-## What Agents CAN Do
-
-### β
Execute Clear, Well-Defined Tasks
-
-**Works well:**
-- Stories with 10-30 specific tasks
-- Clear acceptance criteria
-- Existing code to modify
-- Well-defined scope
-
-### β
Make Implementation Decisions
-
-**Works well:**
-- Choose between valid approaches
-- Apply patterns from codebase
-- Fix bugs based on error messages
-- Optimize existing code
-
-### β
Run Tests and Verify
-
-**Works well:**
-- Execute test suites
-- Measure coverage
-- Fix failing tests
-- Validate implementations
-
----
-
-## Pre-Batch Validation Checklist
-
-**Before running /batch-stories, verify ALL selected stories:**
-
-```bash
-# 1. Check story files exist
-for story in $(grep "ready-for-dev" docs/sprint-artifacts/sprint-status.yaml | awk '{print $1}' | sed 's/://'); do
- [ -f "docs/sprint-artifacts/story-$story.md" ] || echo "β Missing: $story"
-done
-
-# 2. Check all have 12 BMAD sections
-for file in docs/sprint-artifacts/story-*.md; do
- sections=$(grep -c "^## " "$file")
- if [ "$sections" -lt 12 ]; then
- echo "β Incomplete: $file ($sections/12 sections)"
- fi
-done
-
-# 3. Check all have tasks
-for file in docs/sprint-artifacts/story-*.md; do
- tasks=$(grep -c "^- \[ \]" "$file")
- if [ "$tasks" -eq 0 ]; then
- echo "β No tasks: $file"
- fi
-done
-```
-
-**If any checks fail:**
-1. Regenerate those stories: `/create-story-with-gap-analysis`
-2. Validate again
-3. THEN run batch-stories
-
----
-
-## Error Messages Explained
-
-### "EARLY BAILOUT: No Tasks Found"
-
-**What it means:** Story file has 0 unchecked tasks
-**Is this a bug?** β NO - This is correct validation
-**What to do:**
-- If story is skeleton: Regenerate with /create-story-with-gap-analysis
-- If story is complete: Mark as "done" in sprint-status.yaml
-- If story needs work: Add tasks to story file
-
-### "EARLY BAILOUT: Invalid Story Format"
-
-**What it means:** Story missing required sections (Tasks, AC, etc.)
-**Is this a bug?** β NO - This is correct validation
-**What to do:**
-- Regenerate with /create-story-with-gap-analysis
-- Do NOT try to manually add sections (skip gap analysis)
-- Do NOT launch batch with incomplete stories
-
-### "Story Creation Failed" or "Skipped"
-
-**What it means:** Agent tried to create story but couldn't
-**Is this a bug?** β NO - Agents can't create stories
-**What to do:**
-- Exit batch-stories
-- Manually run /create-story-with-gap-analysis
-- Re-run batch after story created
-
----
-
-## Best Practices
-
-### β
DO: Generate All Stories Before Batch
-
-**Workflow:**
-```
-1. Plan epic β Identify stories β Create list
-2. Generate stories: /create-story-with-gap-analysis (1-2 days)
-3. Validate stories: ./scripts/validate-all-stories.sh
-4. Execute stories: /batch-stories (parallel, fast)
-```
-
-### β
DO: Use Small Batches for Mixed Complexity
-
-**Workflow:**
-```
-1. Group by complexity (micro, standard, complex)
-2. Batch micro stories (quick wins)
-3. Batch standard stories
-4. Execute complex stories individually
-```
-
-### β DON'T: Try to Batch Regenerate
-
-**Why it fails:**
-```
-1. Create 20 skeleton files with just widget lists
-2. Run /batch-stories
-3. Expect agents to regenerate them
- β FAILS: Agents can't invoke /create-story workflow
-```
-
-### β DON'T: Mix Skeletons with Proper Stories
-
-**Why it fails:**
-```
-1. 10 proper BMAD stories + 10 skeletons
-2. Run /batch-stories
-3. Expect batch to handle both
- β RESULT: 10 execute, 10 skipped (confusing)
-```
-
-### β DON'T: Assume Agents Will "Figure It Out"
-
-**Why it fails:**
-```
-1. Launch batch with unclear stories
-2. Hope agents will regenerate/fix/create
- β RESULT: Agents halt correctly, nothing happens
-```
-
----
-
-## Summary
-
-**The Golden Rule:**
-> **Batch-super-dev is for EXECUTION, not CREATION.**
->
-> Story creation is interactive and requires user input.
-> Always create/regenerate stories BEFORE batch execution.
-
-**Remember:**
-- Agents have limitations (documented above)
-- These are features, not bugs
-- Workflows correctly validate and halt
-- User must prepare stories properly first
-
-**Success Formula:**
-```
-Proper Story Generation (1-2 days manual work)
- β
-Validation (5 minutes automated)
- β
-Batch Execution (4-8 hours parallel autonomous)
- β
-Review & Merge (1-2 hours)
-```
-
-Don't skip the preparation steps!
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/README.md b/src/modules/bmm/workflows/4-implementation/batch-super-dev/README.md
deleted file mode 100644
index 375c381a..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/README.md
+++ /dev/null
@@ -1,742 +0,0 @@
-# Batch Super-Dev Workflow
-
-**Version:** 1.3.1 (Agent Limitations Documentation)
-**Created:** 2026-01-06
-**Updated:** 2026-01-08
-**Author:** BMad
-
----
-
-## Critical Prerequisites
-
-> **β οΈ IMPORTANT: Read before running batch-stories!**
-
-**BEFORE running batch-stories:**
-
-### β
1. All stories must be properly generated
-
-- Run: `/create-story-with-gap-analysis` for each story
-- Do NOT create skeleton/template files manually
-- Validation: `./scripts/validate-all-stories.sh`
-
-**Why:** Agents CANNOT invoke `/create-story-with-gap-analysis` workflow. Story generation requires user interaction and context-heavy codebase scanning.
-
-### β
2. All stories must have 12 BMAD sections
-
-Required sections:
-1. Business Context
-2. Current State
-3. Acceptance Criteria
-4. Tasks/Subtasks
-5. Technical Requirements
-6. Architecture Compliance
-7. Testing Requirements
-8. Dev Agent Guardrails
-9. Definition of Done
-10. References
-11. Dev Agent Record
-12. Change Log
-
-### β
3. All stories must have tasks
-
-- At least 3 unchecked tasks (minimum for valid story)
-- Zero-task stories will be skipped
-- Validation: `grep -c "^- \[ \]" story-file.md`
-
-### Common Failure Mode: Batch Regeneration
-
-**What you might try:**
-```
-1. Create 20 skeleton story files (just headers + widget lists)
-2. Run /batch-stories
-3. Expect agents to regenerate them
-```
-
-**What happens:**
-- Agents identify stories are incomplete
-- Agents correctly halt per story-full-pipeline validation
-- Stories get skipped (not regenerated)
-- You waste time
-
-**Solution:**
-```bash
-# 1. Generate all stories (1-2 days, manual)
-/create-story-with-gap-analysis # For each story
-
-# 2. Validate (30 seconds, automated)
-./scripts/validate-all-stories.sh
-
-# 3. Execute (4-8 hours, parallel autonomous)
-/batch-stories
-```
-
-See: `AGENT-LIMITATIONS.md` for full documentation on what agents can and cannot do.
-
----
-
-## Overview
-
-Interactive batch workflow for processing multiple `ready-for-dev` stories sequentially or in parallel using the story-full-pipeline with full quality gates.
-
-**New in v1.2.0:** Smart Story Validation & Auto-Creation - validates story files, creates missing stories, regenerates invalid ones automatically.
-**New in v1.1.0:** Smart Story Reconciliation - automatically verifies story accuracy after each implementation.
-
----
-
-## Features
-
-### Core Capabilities
-
-1. **π Smart Story Validation & Auto-Creation** (NEW v1.2.0)
- - Validates all selected stories before processing
- - Checks for 12 required BMAD sections
- - Validates content quality (Current State β₯100 words, gap analysis present)
- - **Auto-creates missing story files** with codebase gap analysis
- - **Auto-regenerates invalid stories** (incomplete or stub files)
- - Interactive prompts (or fully automated with settings)
- - Backups existing files before regeneration
-
-2. **Interactive Story Selection**
- - Lists all `ready-for-dev` stories from sprint-status.yaml
- - Shows story status icons (β
file exists, β missing, π needs status update)
- - Supports flexible selection syntax: single, ranges, comma-separated, "all"
- - Optional epic filtering (process only Epic 3 stories, etc.)
-
-3. **Execution Modes**
- - **Sequential:** Process stories one-by-one in current session (easier monitoring)
- - **Parallel:** Spawn Task agents to process stories concurrently (faster, autonomous)
- - Configurable parallelism: 2, 4, or all stories at once
-
-4. **Full Quality Gates** (from story-full-pipeline)
- - Pre-gap analysis (validate story completeness)
- - Test-driven implementation
- - Post-validation (verify requirements met)
- - Multi-agent code review (4 specialized agents)
- - Targeted git commits
- - Definition of done verification
-
-5. **Smart Story Reconciliation** (v1.1.0)
- - Automatically checks story accuracy after implementation
- - Verifies Acceptance Criteria checkboxes match Dev Agent Record
- - Verifies Tasks/Subtasks checkboxes match implementation
- - Verifies Definition of Done completion
- - Updates story status (done/review/in-progress) based on actual completion
- - Synchronizes sprint-status.yaml with story file status
- - **Prevents "done" stories with unchecked items** β
-
----
-
-## Smart Story Validation & Auto-Creation (NEW v1.2.0)
-
-### What It Does
-
-Before processing any selected stories, the workflow automatically validates each story file:
-
-1. **File Existence Check** - Verifies story file exists (tries multiple naming patterns)
-2. **Section Validation** - Ensures all 12 BMAD sections are present
-3. **Content Quality Check** - Validates sufficient content (not stubs):
- - Current State: β₯100 words
- - Gap analysis markers: β
/β present
- - Acceptance Criteria: β₯3 items
- - Tasks: β₯5 items
-4. **Auto-Creation** - Creates missing stories with codebase gap analysis
-5. **Auto-Regeneration** - Regenerates invalid/incomplete story files
-
-### Why This Matters
-
-**Problem this solves:**
-
-Before v1.2.0:
-```
-User: "Process stories 3.1, 3.2, 3.3, 3.4"
-Workflow: "Story 3.3 file missing - please create it first"
-User: Ctrl+C β /create-story β /batch-stories again
-```
-
-After v1.2.0:
-```
-User: "Process stories 3.1, 3.2, 3.3, 3.4"
-Workflow: "Story 3.3 missing - create it? (yes)"
-User: "yes"
-Workflow: Creates story 3.3 with gap analysis β Processes all 4 stories
-```
-
-**Prevents:**
-- Incomplete story files being processed
-- Missing gap analysis
-- Stub files (< 100 words)
-- Manual back-and-forth workflow interruptions
-
-### Validation Process
-
-```
-Load Sprint Status
- β
-Display Available Stories
- β
-π VALIDATE EACH STORY β NEW STEP 2.5
- β
-For each story:
- ββ File missing? β Prompt: "Create story with gap analysis?"
- β ββ yes β /create-story-with-gap-analysis β β
Created
- β ββ no β βοΈ Skip story
- β
- ββ File exists but invalid?
- β (< 12 sections OR < 100 words OR no gap analysis)
- β β Prompt: "Regenerate story with codebase scan?"
- β ββ yes β Backup original β /create-story-with-gap-analysis β β
Regenerated
- β ββ no β βοΈ Skip story
- β
- ββ File valid? β β
Ready to process
- β
-Remove skipped stories
- β
-Display Validated Stories
- β
-User Selection (only validated stories)
- β
-Process Stories
-```
-
-### Configuration Options
-
-**In workflow.yaml:**
-
-```yaml
-# Story validation settings (NEW in v1.2.0)
-validation:
- enabled: true # Enable/disable validation
- auto_create_missing: false # Auto-create without prompting (use cautiously)
- auto_regenerate_invalid: false # Auto-regenerate without prompting (use cautiously)
- min_sections: 12 # BMAD format requires all 12
- min_current_state_words: 100 # Minimum content length
- require_gap_analysis: true # Must have β
/β markers
- backup_before_regenerate: true # Create .backup before regenerating
-```
-
-**Interactive Mode (default):**
-- Prompts before creating/regenerating each story
-- Safe, user retains control
-- Recommended for most workflows
-
-**Fully Automated Mode:**
-```yaml
-validation:
- auto_create_missing: true
- auto_regenerate_invalid: true
-```
-- Creates/regenerates without prompting
-- Faster for large batches
-- Use with caution (may overwrite valid stories)
-
-### Example Session (v1.2.0)
-
-```
-π€ /batch-stories
-
-π Ready-for-Dev Stories (5)
-
-1. **3-1-vehicle-card** β
- β Story file exists
-2. **3-2-vehicle-search** β
- β Story file exists
-3. **3-3-vehicle-compare** β
- β Story file missing
-4. **3-4-vehicle-details** β οΈ
- β File exists (7/12 sections, stub content)
-5. **3-5-vehicle-history** β
- β Story file exists
-
-βββββββββββββββββββββββββββββββββββββββββββ
-π VALIDATING STORY FILES
-βββββββββββββββββββββββββββββββββββββββββββ
-
-Story 3-1-vehicle-card: β
Valid (12/12 sections, gap analysis present)
-
-Story 3-2-vehicle-search: β
Valid (12/12 sections, gap analysis present)
-
-π Story 3-3-vehicle-compare: File missing
-
-Create story file with gap analysis? (yes/no): yes
-
-Creating story 3-3-vehicle-compare with codebase gap analysis...
-β Scanning apps/frontend/web for existing components...
-β Scanning packages/widgets for related widgets...
-β Analyzing gap: 3 files exist, 5 need creation
-
-β
Story 3-3-vehicle-compare created successfully (12/12 sections)
-
-β οΈ Story 3-4-vehicle-details: File incomplete or invalid
- - Sections: 7/12
- - Current State: stub (32 words, expected β₯100)
- - Gap analysis: missing
-
-Regenerate story with codebase scan? (yes/no): yes
-
-Regenerating story 3-4-vehicle-details with gap analysis...
-β Backing up to docs/sprint-artifacts/3-4-vehicle-details.md.backup
-β Scanning codebase for VehicleDetails implementation...
-β Found: packages/widgets/vehicle-details-v2 (partial)
-β Analyzing gap: 8 files exist, 3 need creation
-
-β
Story 3-4-vehicle-details regenerated successfully (12/12 sections)
-
-Story 3-5-vehicle-history: β
Valid (12/12 sections, gap analysis present)
-
-βββββββββββββββββββββββββββββββββββββββββββ
-β
Story Validation Complete
-βββββββββββββββββββββββββββββββββββββββββββ
-**Validated:** 5 stories ready to process
-βββββββββββββββββββββββββββββββββββββββββββ
-
-Select stories to process: all
-
-[Proceeds to process all 5 validated stories...]
-```
-
----
-
-## Smart Story Reconciliation (v1.1.0)
-
-### What It Does
-
-After each story completes, the workflow automatically:
-
-1. **Loads Dev Agent Record** - Reads implementation summary, file list, test results
-2. **Analyzes Acceptance Criteria** - Checks which ACs have evidence of completion
-3. **Analyzes Tasks** - Verifies which tasks have been implemented
-4. **Analyzes Definition of Done** - Confirms quality gates passed
-5. **Calculates Completion %** - AC%, Tasks%, DoD% percentages
-6. **Determines Correct Status:**
- - `done`: ACβ₯95% AND Tasksβ₯95% AND DoDβ₯95%
- - `review`: ACβ₯80% AND Tasksβ₯80% AND DoDβ₯80%
- - `in-progress`: Below 80% on any category
-7. **Updates Story File** - Checks/unchecks boxes to match reality
-8. **Updates sprint-status.yaml** - Synchronizes status entry
-
-### Why This Matters
-
-**Problem this solves:**
-
-Story 20.8 (before reconciliation):
-- Dev Agent Record: "COMPLETE - 10 files created, 37 tests passing"
-- Acceptance Criteria: All unchecked β
-- Tasks: All unchecked β
-- Definition of Done: All unchecked β
-- sprint-status.yaml: `ready-for-dev` β
-- **Reality:** Story was 100% complete but looked 0% complete!
-
-**After reconciliation:**
-- Acceptance Criteria: 17/18 checked β
-- Tasks: 24/24 checked β
-- Definition of Done: 24/25 checked β
-- sprint-status.yaml: `done` β
-- **Accurate representation of actual completion** β
-
-### Reconciliation Process
-
-```
-Implementation Complete
- β
-Load Dev Agent Record
- β
-Parse: Implementation Summary, File List, Test Results, Completion Notes
- β
-For each checkbox in ACs/Tasks/DoD:
- - Search Dev Agent Record for evidence
- - Determine expected status (checked/unchecked/partial)
- - Compare actual vs expected
- - Record discrepancies
- β
-Calculate completion percentages:
- - AC: X/Y checked (Z%)
- - Tasks: X/Y checked (Z%)
- - DoD: X/Y checked (Z%)
- β
-Determine correct story status (done/review/in-progress)
- β
-Apply changes (with user confirmation):
- - Update checkboxes in story file
- - Update story status header
- - Update sprint-status.yaml entry
- β
-Report final completion statistics
-```
-
-### Reconciliation Output
-
-```
-π§ Story 20.8: Reconciling 42 issues
-
-Changes to apply:
-1. AC1: FlexibleGridSection component - CHECK (File created: FlexibleGridSection.tsx)
-2. AC2: Screenshot automation - CHECK (File created: screenshot-pages.ts)
-3. Task 1.3: Create page corpus generator - CHECK (File created: generate-page-corpus.ts)
-... (39 more)
-
-Apply these reconciliation changes? (yes/no): yes
-
-β
Story 20.8: Reconciliation complete (42 changes applied)
-
-π Story 20.8 - Final Status
-
-Acceptance Criteria: 17/18 (94%)
-Tasks/Subtasks: 24/24 (100%)
-Definition of Done: 24/25 (96%)
-
-Story Status: done
-sprint-status.yaml: done
-
-β
Story is COMPLETE and accurately reflects implementation
-```
-
----
-
-## Usage
-
-### Basic Usage
-
-```bash
-# Process all ready-for-dev stories
-/batch-stories
-
-# Follow prompts:
-# 1. See list of ready stories
-# 2. Select stories to process (1,3-5,8 or "all")
-# 3. Choose execution mode (sequential/parallel)
-# 4. Confirm execution plan
-# 5. Stories process automatically with reconciliation
-# 6. Review batch summary
-```
-
-### Epic Filtering
-
-```bash
-# Only process Epic 3 stories
-/batch-stories filter_by_epic=3
-```
-
-### Selection Syntax
-
-```
-Single: 1
-Multiple: 1,3,5
-Range: 1-5 (processes 1,2,3,4,5)
-Mixed: 1,3-5,8 (processes 1,3,4,5,8)
-All: all (processes all ready-for-dev stories)
-```
-
-### Execution Modes
-
-**Sequential (Recommended for β€5 stories):**
-- Processes one story at a time in current session
-- Easier to monitor progress
-- Lower resource usage
-- Can pause/cancel between stories
-
-**Parallel (Recommended for >5 stories):**
-- Spawns autonomous Task agents
-- Much faster (2-4x speedup)
-- Choose parallelism: 2 (conservative), 4 (moderate), all (aggressive)
-- Requires more system resources
-
----
-
-## Workflow Configuration
-
-**File:** `_bmad/bmm/workflows/4-implementation/batch-stories/workflow.yaml`
-
-### Key Settings
-
-```yaml
-# Safety limits
-max_stories: 20 # Won't process more than 20 in one batch
-
-# Pacing
-pause_between_stories: 5 # Seconds between stories (sequential mode)
-
-# Error handling
-continue_on_failure: true # Keep processing if one story fails
-
-# Reconciliation (NEW v1.1.0)
-reconciliation:
- enabled: true # Auto-reconcile after each story
- require_confirmation: true # Ask before applying changes
- update_sprint_status: true # Sync sprint-status.yaml
-```
-
----
-
-## Workflow Steps
-
-### 1. Load Sprint Status
-- Parses sprint-status.yaml
-- Filters stories with status="ready-for-dev"
-- Excludes epics and retrospectives
-- Optionally filters by epic number
-
-### 2. Display Available Stories
-- Shows all ready-for-dev stories
-- Verifies story files exist
-- Displays status icons and comments
-
-### 2.5. π Validate and Create/Regenerate Stories (NEW v1.2.0)
-**For each story:**
-- Check file existence (multiple naming patterns)
-- Validate 12 BMAD sections present
-- Check content quality (Current State β₯100 words, gap analysis)
-- **If missing:** Prompt to create with gap analysis
-- **If invalid:** Prompt to regenerate with codebase scan
-- **If valid:** Mark ready to process
-- Remove skipped stories from selection
-
-### 3. Get User Selection
-- Interactive story picker
-- Supports flexible selection syntax
-- Validates selection and confirms
-
-### 3.5. Choose Execution Strategy
-- Sequential vs Parallel
-- If parallel: choose concurrency level
-- Confirm execution plan
-
-### 4. Process Stories
-**Sequential Mode:**
-- For each selected story:
- - Invoke story-full-pipeline
- - Execute reconciliation (Step 4.5)
- - Report results
- - Pause between stories
-
-**Parallel Mode (Semaphore Pattern - NEW v1.3.0):**
-- Initialize worker pool with N slots (user-selected concurrency)
-- Fill initial N slots with first N stories
-- Poll workers continuously (non-blocking)
-- As soon as worker completes β immediately refill slot with next story
-- Maintain constant N concurrent agents until queue empty
-- Execute reconciliation after each story completes
-- **Commit Queue:** File-based locking prevents git lock conflicts
- - Workers acquire `.git/bmad-commit.lock` before committing
- - Automatic retry with exponential backoff (1s β 30s)
- - Stale lock cleanup (>5 min)
- - Serialized commits, parallel implementation
-- No idle time waiting for batch synchronization
-- **20-40% faster** than old batch-and-wait pattern
-
-### 4.5. Smart Story Reconciliation (NEW)
-**Executed after each story completes:**
-- Load Dev Agent Record
-- Analyze ACs/Tasks/DoD vs implementation
-- Calculate completion percentages
-- Determine correct story status
-- Update checkboxes and status
-- Sync sprint-status.yaml
-
-See: `step-4.5-reconcile-story-status.md` for detailed algorithm
-
-### 5. Display Batch Summary
-- Shows completion statistics
-- Lists failed stories (if any)
-- Lists reconciliation warnings (if any)
-- Provides next steps
-- Saves batch log
-
----
-
-## Output Files
-
-### Batch Log
-
-**Location:** `docs/sprint-artifacts/batch-stories-{date}.log`
-
-**Contains:**
-- Start/end timestamps
-- Selected stories
-- Completed stories
-- Failed stories
-- Reconciliation warnings
-- Success rate
-- Total duration
-
-### Reconciliation Results (per story)
-
-**Embedded in Dev Agent Record:**
-- Reconciliation summary
-- Changes applied
-- Final completion percentages
-- Status determination reasoning
-
----
-
-## Error Handling
-
-### Story Implementation Fails
-- Increments failed counter
-- Adds to failed_stories list
-- If `continue_on_failure=true`, continues with remaining stories
-- If `continue_on_failure=false`, stops batch
-
-### Reconciliation Fails
-- Story still marked as completed (implementation succeeded)
-- Adds to reconciliation_warnings list
-- User warned to manually verify story accuracy
-- Does NOT fail the batch
-
-### Task Agent Fails (Parallel Mode)
-- Collects error from TaskOutput
-- Marks story as failed
-- Continues with remaining stories in batch
-
----
-
-## Best Practices
-
-### Story Selection
-- β
Start small: Process 2-3 stories first to verify workflow
-- β
Group by epic: Related stories often share context
-- β
Check file status: β
stories are ready, β need creation first
-- β Don't process 20 stories at once on first run
-
-### Execution Mode
-- Sequential for β€5 stories (easier monitoring)
-- Parallel for >5 stories (faster completion)
-- Use parallelism=2 first, then increase if stable
-
-### During Execution
-- Monitor progress output
-- Check reconciliation reports
-- Verify changes look correct
-- Spot-check 1-2 completed stories
-
-### After Completion
-1. Review batch summary
-2. Check reconciliation warnings
-3. Verify sprint-status.yaml updated
-4. Run tests: `pnpm test`
-5. Check coverage: `pnpm test --coverage`
-6. Review commits: `git log -`
-7. Spot-check 2-3 stories for quality
-
----
-
-## Troubleshooting
-
-### Reconciliation Reports Many Warnings
-
-**Cause:** Dev Agent Record may be incomplete or stories weren't fully implemented
-
-**Fix:**
-1. Review listed stories manually
-2. Check Dev Agent Record has all required sections
-3. Re-run story-full-pipeline for problematic stories
-4. Manually reconcile checkboxes if needed
-
-### Parallel Mode Hangs
-
-**Cause:** Too many agents running concurrently, system resources exhausted
-
-**Fix:**
-1. Kill hung agents: `/tasks` then `kill `
-2. Reduce parallelism: Use 2 instead of 4
-3. Process remaining stories sequentially
-
-### Story Marked "done" but has Unchecked Items
-
-**Cause:** Reconciliation may have missed some checkboxes
-
-**Fix:**
-1. Review Dev Agent Record
-2. Check which checkboxes should be checked
-3. Manually check them or re-run reconciliation:
- - Load story file
- - Compare ACs/Tasks/DoD to Dev Agent Record
- - Update checkboxes to match reality
-
----
-
-## Version History
-
-### v1.3.0 (2026-01-07)
-- **NEW:** Complexity-Based Routing (Step 2.6)
- - Automatic story complexity scoring (micro/standard/complex)
- - Risk keyword detection with configurable weights
- - Smart pipeline selection: micro β lightweight, complex β enhanced
- - 50-70% token savings for micro stories
- - Deterministic classification with mutually exclusive thresholds
- - **CRITICAL:** Rejects stories with <3 tasks as INVALID (prevents 0-task stories from being processed)
-- **NEW:** Semaphore Pattern for Parallel Execution
- - Worker pool maintains constant N concurrent agents
- - As soon as worker completes β immediately start next story
- - No idle time waiting for batch synchronization
- - 20-40% faster than old batch-and-wait pattern
- - Non-blocking task polling with live progress dashboard
-- **NEW:** Git Commit Queue (Parallel-Safe)
- - File-based locking prevents concurrent commit conflicts
- - Workers acquire `.git/bmad-commit.lock` before committing
- - Automatic retry with exponential backoff (1s β 30s max)
- - Stale lock cleanup (>5 min old locks auto-removed)
- - Eliminates "Another git process is running" errors
- - Serializes commits while keeping implementations parallel
-- **NEW:** Continuous Sprint-Status Tracking
- - sprint-status.yaml updated after EVERY task completion
- - Real-time progress: "# 7/10 tasks (70%)"
- - CRITICAL enforcement with HALT on update failure
- - Immediate visibility into story progress
-- **NEW:** Stricter Story Validation
- - Step 2.5 now rejects stories with <3 tasks
- - Step 2.6 marks stories with <3 tasks as INVALID
- - Prevents incomplete/stub stories from being processed
- - Requires /validate-create-story to fix before processing
-
-### v1.2.0 (2026-01-06)
-- **NEW:** Smart Story Validation & Auto-Creation (Step 2.5)
- - Validates story files before processing
- - Auto-creates missing stories with gap analysis
- - Auto-regenerates invalid/incomplete stories
- - Checks 12 BMAD sections, content quality
- - Interactive or fully automated modes
- - Backups before regeneration
-- **Removes friction:** No more "story file missing" interruptions
-- **Ensures quality:** Only valid stories with gap analysis proceed
-- **Configuration:** New `validation` settings in workflow.yaml
-
-### v1.1.0 (2026-01-06)
-- **NEW:** Smart Story Reconciliation (Step 4.5)
- - Auto-verifies story accuracy after implementation
- - Updates checkboxes based on Dev Agent Record
- - Synchronizes sprint-status.yaml
- - Prevents "done" stories with unchecked items
-- Added reconciliation warnings to batch summary
-- Added reconciliation statistics to output
-
-### v1.0.0 (2026-01-05)
-- Initial release
-- Interactive story selector
-- Sequential and parallel execution modes
-- Integration with story-full-pipeline
-- Batch summary and logging
-
----
-
-## Related Workflows
-
-- **story-full-pipeline:** Individual story implementation (invoked by batch-stories)
-- **create-story-with-gap-analysis:** Create new stories with codebase scan
-- **sprint-status:** View/update sprint status
-- **multi-agent-review:** Standalone code review (part of story-full-pipeline)
-
----
-
-## Support
-
-**Questions or Issues:**
-- Check workflow logs: `docs/sprint-artifacts/batch-stories-*.log`
-- Review reconciliation step: `step-4.5-reconcile-story-status.md`
-- Check story file format: Ensure 12-section BMAD format
-- Verify Dev Agent Record populated: Required for reconciliation
-
----
-
-**Last Updated:** 2026-01-07
-**Status:** Active - Production-ready with semaphore pattern and continuous tracking
-**Maintained By:** BMad
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/RESILIENCE-FIX.md b/src/modules/bmm/workflows/4-implementation/batch-super-dev/RESILIENCE-FIX.md
deleted file mode 100644
index 8cb4edf0..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/RESILIENCE-FIX.md
+++ /dev/null
@@ -1,256 +0,0 @@
-# Batch-Super-Dev Resilience Fix
-
-**Problem:** Agents crash mid-execution, resume fails, no intermediate state saved
-
----
-
-## Issues Observed
-
-**Story 18-4 β 18-5 Transition:**
-```
-β
Story 18-4: Builder β Inspector β Fixer β Reviewer all complete
-β Story 18-5: Workflow crashed on "Error reading file"
-```
-
-**Evidence:**
-- Task output files empty (0 bytes)
-- Resume attempts failed (0 tools used, 0 tokens)
-- No state saved between stories
-- When agent crashes, all progress lost
-
----
-
-## Root Cause
-
-**Sequential processing in main context has no resilience:**
-
-```
-Story 18-4:
- ββ Builder agent completes β outputs to temp file
- ββ Main reads output file β starts Inspector
- ββ Inspector completes β outputs to temp file
- ββ Main reads output β starts Fixer
- ββ Fixer completes β Story 18-4 done
-
-Story 18-5:
- ββ Main tries to read Story 18-5 file
- ββ β "Error reading file" (crash)
- ββ All progress lost, no state saved
-```
-
-**Problem:** Main context doesn't save state between stories. If it crashes, batch starts over.
-
----
-
-## Solution: Save State After Each Story
-
-### Add state file tracking:
-
-```yaml
-# In batch-stories/workflow.yaml
-state_tracking:
- enabled: true
- state_file: "{sprint_artifacts}/batch-execution-state-{batch_id}.yaml"
- save_after_each_story: true
-```
-
-### State file format:
-
-```yaml
-batch_id: "epic-18-2026-01-26"
-started: "2026-01-26T18:45:00Z"
-execution_mode: "fully_autonomous"
-strategy: "sequential"
-total_stories: 2
-
-stories:
- - story_key: "18-4-billing-worker-retry-logic"
- status: "completed"
- started: "2026-01-26T18:46:00Z"
- completed: "2026-01-26T19:05:00Z"
- agents:
- - phase: "builder"
- agent_id: "ae3bd2b"
- status: "completed"
- - phase: "inspector"
- agent_id: "a9f0d11"
- status: "completed"
- - phase: "fixer"
- agent_id: "abc123"
- status: "completed"
- - phase: "reviewer"
- agent_id: "def456"
- status: "completed"
-
- - story_key: "18-5-precharge-payment-validation"
- status: "in_progress"
- started: "2026-01-26T19:05:30Z"
- last_checkpoint: "attempting_to_read_story_file"
- error: "Error reading file"
-```
-
-### Resume logic:
-
-```bash
-# At batch-stories start, check for existing state file
-state_file="{sprint_artifacts}/batch-execution-state-*.yaml"
-
-if ls $state_file 2>/dev/null; then
- echo "π Found interrupted batch execution"
- echo "Resume from where it left off? (yes/no)"
-
- if yes:
- # Load state file
- # Skip completed stories
- # Start from next story
- # Reuse agent IDs if resumable
-fi
-```
-
-### After each story completes:
-
-```bash
-# Update state file
-update_state_file() {
- story_key="$1"
- status="$2" # completed | failed
-
- # Update YAML
- # Mark story as completed
- # Save timestamp
- # Record agent IDs
-}
-
-# After Builder completes
-update_state_file "$story_key" "builder_complete"
-
-# After Inspector completes
-update_state_file "$story_key" "inspector_complete"
-
-# After Fixer completes
-update_state_file "$story_key" "fixer_complete"
-
-# After Reviewer completes
-update_state_file "$story_key" "reviewer_complete"
-
-# When entire story done
-update_state_file "$story_key" "completed"
-```
-
-### Error handling:
-
-```bash
-# Wrap file reads in try-catch
-read_with_retry() {
- file_path="$1"
- max_attempts=3
-
- for attempt in {1..$max_attempts}; do
- if content=$(cat "$file_path" 2>&1); then
- echo "$content"
- return 0
- else
- echo "β οΈ Failed to read $file_path (attempt $attempt/$max_attempts)" >&2
- sleep 2
- fi
- done
-
- echo "β Cannot read file after $max_attempts attempts: $file_path" >&2
- return 1
-}
-
-# Use in workflow
-story_content=$(read_with_retry "$story_file") || {
- echo "β Cannot proceed with Story $story_key - file read failed"
- # Save state
- # Skip this story
- # Continue to next story (if continue_on_failure=true)
-}
-```
-
----
-
-## Implementation
-
-Add to batch-stories Step 4-Sequential:
-
-```xml
-
- Check for state file: batch-execution-state-*.yaml
-
-
-
-
-
-
-
- Resume from where it left off? (yes/no)
-
-
- Load state
- Skip completed stories
- Start from next story
-
-
-
- Archive old state file
- Start fresh batch
-
-
-
-
-
- Save state: story started
-
-
- Read story file with retry
- Execute story-full-pipeline
- Save state: story completed
-
-
-
-
- Save state: story failed (file read error)
- Add to failed_stories list
- Continue to next story if continue_on_failure=true
-
-
-
-
- Save state: story failed (agent crash)
- Record partial progress in state file
- Continue to next story if continue_on_failure=true
-
-
-```
-
----
-
-## Expected Behavior After Fix
-
-**If crash happens:**
-
-```
-Story 18-4: β
Complete (state saved)
-Story 18-5: β Crashed (state saved with error)
-
-State file created: batch-execution-state-epic-18.yaml
-
-User re-runs: /batch-stories
-
-Workflow: "π Found interrupted batch. Resume? (yes/no)"
-User: "yes"
-Workflow: "β
Skipping 18-4 (already complete)"
-Workflow: "π Retrying 18-5 (was in_progress)"
-Workflow: Starts 18-5 from beginning
-```
-
-**Benefits:**
-- No lost progress
-- Can resume after crashes
-- Intermediate state preserved
-- Failures don't block batch
-
----
-
-Should I implement this resilience fix now?
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/WORKFLOW-PATCH-STEP-2.5.md b/src/modules/bmm/workflows/4-implementation/batch-super-dev/WORKFLOW-PATCH-STEP-2.5.md
deleted file mode 100644
index 837ee7e4..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/WORKFLOW-PATCH-STEP-2.5.md
+++ /dev/null
@@ -1,347 +0,0 @@
-# Batch-Super-Dev Step 2.5 Patch
-
-**Issue:** Step 2.5 tries to invoke `/create-story-with-gap-analysis` which agents cannot do
-**Impact:** Skeleton stories get skipped instead of regenerated
-**Fix:** Explicitly halt batch and tell user to regenerate manually
-
----
-
-## Current Code (BROKEN)
-
-**File:** `instructions.md` 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}}
-
-
-
- Update file_status_icon to β
- Mark story as validated
-
-
-
-
- Mark story for removal from selection
- Add to skipped_stories list with reason: "Creation failed"
-
-
-```
-
-**Problem:**
-- Line 86: "Invoke workflow: /" doesn't work for agents
-- Agents can't execute slash commands
-- This always fails in batch mode
-
----
-
-## Recommended Fix (WORKING)
-
-**Replace lines 82-99 with:**
-
-```xml
-Create story file with gap analysis? (yes/no):
-
-
-
-
- Mark story for removal from selection
- Add to skipped_stories list with reason: "Story creation requires manual workflow (agents cannot invoke /create-story)"
- Add to manual_actions_required list: "Regenerate {{story_key}} with /create-story-with-gap-analysis"
-
-
-
-
- Mark story for removal from selection
- Add to skipped_stories list with reason: "User declined story creation"
-
-```
-
-**Why This Works:**
-- β
Explicitly states agents can't create stories
-- β
Provides clear step-by-step user actions
-- β
Skips gracefully instead of failing silently
-- β
Tracks manual actions needed
-- β
Sets correct expectations
-
----
-
-## Additional Improvements
-
-### Add Manual Actions Tracking
-
-**At end of batch execution (Step 5), add:**
-
-```xml
-
-
-
-```
-
-**Why This Helps:**
-- User gets clear todo list
-- Knows exactly what to do next
-- Can track progress on manual actions
-
----
-
-## Validation Script Enhancement
-
-**Create:** `scripts/validate-all-stories.sh`
-
-```bash
-#!/bin/bash
-# Validate all ready-for-dev stories have proper BMAD format
-
-set -e
-
-STORIES=$(grep "ready-for-dev" docs/sprint-artifacts/sprint-status.yaml | awk '{print $1}' | sed 's/://')
-
-echo "=========================================="
-echo " BMAD Story Format Validation"
-echo "=========================================="
-echo ""
-
-TOTAL=0
-VALID=0
-INVALID=0
-
-for story in $STORIES; do
- STORY_FILE="docs/sprint-artifacts/story-$story.md"
-
- if [ ! -f "$STORY_FILE" ]; then
- echo "β $story - FILE MISSING"
- INVALID=$((INVALID + 1))
- TOTAL=$((TOTAL + 1))
- continue
- fi
-
- # Check BMAD format
- ./scripts/validate-bmad-format.sh "$STORY_FILE" >/dev/null 2>&1
-
- if [ $? -eq 0 ]; then
- echo "β
$story - Valid BMAD format"
- VALID=$((VALID + 1))
- else
- echo "β $story - Invalid format (run validation for details)"
- INVALID=$((INVALID + 1))
- fi
-
- TOTAL=$((TOTAL + 1))
-done
-
-echo ""
-echo "=========================================="
-echo " Summary"
-echo "=========================================="
-echo "Total Stories: $TOTAL"
-echo "Valid: $VALID"
-echo "Invalid: $INVALID"
-echo ""
-
-if [ $INVALID -eq 0 ]; then
- echo "β
All stories ready for batch execution!"
- exit 0
-else
- echo "β $INVALID stories need regeneration"
- echo ""
- echo "Run: /create-story-with-gap-analysis"
- echo "For each invalid story"
- exit 1
-fi
-```
-
-**Why This Helps:**
-- Quick validation before batch
-- Prevents wasted time on incomplete stories
-- Clear pass/fail criteria
-
----
-
-## Documentation Update
-
-**Add to:** `_bmad/bmm/workflows/4-implementation/batch-stories/README.md`
-
-```markdown
-# Batch Super-Dev Workflow
-
-## Critical Prerequisites
-
-**BEFORE running batch-stories:**
-
-1. β
**All stories must be properly generated**
- - Run: `/create-story-with-gap-analysis` for each story
- - Do NOT create skeleton/template files manually
- - Validation: `./scripts/validate-all-stories.sh`
-
-2. β
**All stories must have 12 BMAD sections**
- - Business Context, Current State, Acceptance Criteria
- - Tasks/Subtasks, Technical Requirements, Architecture Compliance
- - Testing Requirements, Dev Agent Guardrails, Definition of Done
- - References, Dev Agent Record, Change Log
-
-3. β
**All stories must have tasks**
- - At least 1 unchecked task (something to implement)
- - Zero-task stories will be skipped
- - Validation: `grep -c "^- \[ \]" story-file.md`
-
-## Common Failure Modes
-
-### β Attempting Batch Regeneration
-
-**What you might try:**
-```
-1. Create 20 skeleton story files (just headers + widget lists)
-2. Run /batch-stories
-3. Expect agents to regenerate them
-```
-
-**What happens:**
-- Agents identify stories are incomplete
-- Agents correctly halt per story-full-pipeline validation
-- Stories get skipped (not regenerated)
-- You waste time
-
-**Why:**
-- Agents CANNOT execute /create-story-with-gap-analysis
-- Agents CANNOT invoke other BMAD workflows
-- Story generation requires user interaction
-
-**Solution:**
-- Generate ALL stories manually FIRST: /create-story-with-gap-analysis
-- Validate: ./scripts/validate-all-stories.sh
-- THEN run batch: /batch-stories
-
-### β Mixed Story Quality
-
-**What you might try:**
-- Mix 10 proper stories + 10 skeletons
-- Run batch hoping it "figures it out"
-
-**What happens:**
-- 10 proper stories execute successfully
-- 10 skeletons get skipped
-- Confusing results
-
-**Solution:**
-- Ensure ALL stories have same quality
-- Validate before batch
-- Don't mix skeletons with proper stories
-
-## Success Pattern
-
-```bash
-# 1. Generate all stories (1-2 days, manual)
-for story in story-20-13a-{1..5}; do
- /create-story-with-gap-analysis
- # Provide story details interactively
-done
-
-# 2. Validate (30 seconds, automated)
-./scripts/validate-all-stories.sh
-
-# 3. Execute (4-8 hours, parallel autonomous)
-/batch-stories
-# Select all 5 stories
-# Choose 2-4 agents parallel
-
-# 4. Review (1-2 hours)
-# Review commits, merge to main
-```
-
-**Total Time:**
-- Manual work: 1-2 days (story generation)
-- Autonomous work: 4-8 hours (batch execution)
-- Review: 1-2 hours
-
-**Efficiency:**
-- Story generation: Cannot be batched (requires user input)
-- Story execution: Highly parallelizable (4x speedup with 4 agents)
-```
-
----
-
-## Implementation Checklist
-
-**To apply these improvements:**
-
-- [ ] Update `batch-stories/instructions.md` Step 2.5 (lines 82-99)
-- [ ] Add `batch-stories/AGENT-LIMITATIONS.md` (new file)
-- [ ] Add `batch-stories/BATCH-BEST-PRACTICES.md` (new file)
-- [ ] Update `batch-stories/README.md` with prerequisites
-- [ ] Create `scripts/validate-all-stories.sh` (new script)
-- [ ] Add manual actions tracking to Step 5 summary
-- [ ] Update story-full-pipeline Step 1.4.5 with agent guidance
-
-**Testing:**
-- Try batch with mixed story quality β Should skip skeletons gracefully
-- Verify error messages are clear
-- Confirm agents halt correctly (not crash)
-
----
-
-**Expected Result:**
-- Users understand limitations upfront
-- Clear guidance when stories are incomplete
-- No false expectations about batch regeneration
-- Better error messages
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/step-4.5-reconcile-story-status.md b/src/modules/bmm/workflows/4-implementation/batch-super-dev/step-4.5-reconcile-story-status.md
deleted file mode 100644
index eddd36c1..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/step-4.5-reconcile-story-status.md
+++ /dev/null
@@ -1,171 +0,0 @@
-# Step 4.5: Story Reconciliation (Orchestrator-Driven)
-
-**Version:** 2.1.0
-**Execute:** AFTER story-full-pipeline completes, BEFORE marking story done
-**Who:** Orchestrator (YOU) - not an agent
-
----
-
-## Why Orchestrator Does This
-
-Agents ignore reconciliation instructions. The orchestrator:
-- Has full context of what just happened
-- Can use tools directly (Bash, Read, Edit)
-- Won't skip "boring" bookkeeping tasks
-
----
-
-## Execute These Steps
-
-### Step 1: Get What Was Built
-
-Run this command with Bash tool:
-
-```bash
-echo "βββββββββββββββββββββββββββββββββββββββββββ"
-echo "π§ STORY RECONCILIATION: {{story_key}}"
-echo "βββββββββββββββββββββββββββββββββββββββββββ"
-
-# Get the commit for this story
-echo "Recent commits:"
-git log -5 --oneline | grep -i "{{story_key}}" || echo "(no commits found with story key)"
-
-# Get files changed
-echo ""
-echo "Files changed in last commit:"
-git diff HEAD~1 --name-only | grep -v "__tests__" | grep -v "\.test\." | head -20
-```
-
-Store the output - you'll need it for the next steps.
-
-### Step 2: Read Story File
-
-Use Read tool on: `docs/sprint-artifacts/{{story_key}}.md`
-
-Find these sections:
-- **Tasks** (lines starting with `- [ ]` or `- [x]`)
-- **Dev Agent Record** (section with Agent Model, Implementation Date, etc.)
-
-### Step 3: Check Off Completed Tasks
-
-For EACH task in the Tasks section that relates to files changed:
-
-Use Edit tool:
-```
-file_path: docs/sprint-artifacts/{{story_key}}.md
-old_string: "- [ ] Create the SomeComponent"
-new_string: "- [x] Create the SomeComponent"
-```
-
-**Match logic:**
-- If task mentions a file that was created β check it off
-- If task mentions a service/component that now exists β check it off
-- If unsure β leave unchecked (don't over-claim)
-
-### Step 4: Fill Dev Agent Record
-
-Use Edit tool to replace the placeholder record:
-
-```
-file_path: docs/sprint-artifacts/{{story_key}}.md
-old_string: "### Dev Agent Record
-- **Agent Model Used:** [Not set]
-- **Implementation Date:** [Not set]
-- **Files Created/Modified:** [Not set]
-- **Tests Added:** [Not set]
-- **Completion Notes:** [Not set]"
-new_string: "### Dev Agent Record
-- **Agent Model Used:** Claude Sonnet 4 (multi-agent pipeline)
-- **Implementation Date:** 2026-01-26
-- **Files Created/Modified:**
- - path/to/file1.ts
- - path/to/file2.ts
- [list all files from git diff]
-- **Tests Added:** X tests (from Inspector report)
-- **Completion Notes:** Implemented [brief summary]"
-```
-
-### Step 5: Verify Updates
-
-Run this command with Bash tool:
-
-```bash
-echo "βββββββββββββββββββββββββββββββββββββββββββ"
-echo "π RECONCILIATION VERIFICATION"
-echo "βββββββββββββββββββββββββββββββββββββββββββ"
-
-STORY_FILE="docs/sprint-artifacts/{{story_key}}.md"
-
-# Count checked tasks
-CHECKED=$(grep -c "^- \[x\]" "$STORY_FILE" 2>/dev/null || echo "0")
-UNCHECKED=$(grep -c "^- \[ \]" "$STORY_FILE" 2>/dev/null || echo "0")
-TOTAL=$((CHECKED + UNCHECKED))
-echo "Tasks: $CHECKED/$TOTAL checked"
-
-if [ "$CHECKED" -eq 0 ]; then
- echo ""
- echo "β BLOCKER: Zero tasks checked off"
- echo "You MUST go back to Step 3 and check off tasks"
- exit 1
-fi
-
-# Check Dev Agent Record filled
-if grep -q "Implementation Date: \[Not set\]" "$STORY_FILE" 2>/dev/null; then
- echo "β BLOCKER: Dev Agent Record not filled"
- echo "You MUST go back to Step 4 and fill it"
- exit 1
-fi
-
-if grep -A 3 "### Dev Agent Record" "$STORY_FILE" | grep -q "Implementation Date: 202"; then
- echo "β
Dev Agent Record: Filled"
-else
- echo "β BLOCKER: Dev Agent Record incomplete"
- exit 1
-fi
-
-echo ""
-echo "β
RECONCILIATION COMPLETE"
-echo " Checked tasks: $CHECKED/$TOTAL"
-echo "βββββββββββββββββββββββββββββββββββββββββββ"
-```
-
-### Step 6: Update Sprint Status
-
-Use Read tool: `docs/sprint-artifacts/sprint-status.yaml`
-
-Find the entry for {{story_key}} and use Edit tool to update:
-
-```
-old_string: "{{story_key}}: ready-for-dev"
-new_string: "{{story_key}}: done # β
COMPLETED 2026-01-26"
-```
-
-Or if 95%+ complete but not 100%:
-```
-new_string: "{{story_key}}: review # 8/10 tasks - awaiting review"
-```
-
----
-
-## Status Decision Logic
-
-Based on verification results:
-
-| Condition | Status |
-|-----------|--------|
-| 95%+ tasks checked + Dev Record filled | `done` |
-| 80-94% tasks checked | `review` |
-| <80% tasks checked | `in-progress` |
-| Dev Record not filled | `in-progress` |
-
----
-
-## If Verification Fails
-
-1. **DO NOT** proceed to next story
-2. **DO NOT** mark story as done
-3. **FIX** the issue using Edit tool
-4. **RE-RUN** verification command
-5. **REPEAT** until verification passes
-
-This is mandatory. No shortcuts.
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.md b/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.md
deleted file mode 100644
index 850e81f4..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.md
+++ /dev/null
@@ -1,369 +0,0 @@
-# Batch Super-Dev v3.0 - Unified Workflow
-
-
-Interactive story selector for batch implementation. Scan codebase for gaps, select stories, process with story-full-pipeline, reconcile results.
-
-**AKA:** "Mend the Gap" - Mind the gap between story requirements and reality, then mend it.
-
-
-
-**Gap Analysis First, Build Only What's Missing**
-
-1. Scan codebase to verify what's actually implemented
-2. Find the gap between story requirements and reality
-3. Build ONLY what's truly missing (no duplicate work)
-4. Update tracking to reflect actual completion
-
-Orchestrator coordinates. Agents do implementation. Orchestrator does reconciliation.
-
-
-
-name: batch-stories
-version: 3.1.0
-
-modes:
- sequential: {description: "Process one-by-one in this session", recommended_for: "gap analysis"}
- parallel: {description: "Spawn concurrent Task agents", recommended_for: "greenfield batch"}
-
-complexity_routing:
- micro: {max_tasks: 3, max_files: 5, skip_review: true}
- standard: {max_tasks: 15, max_files: 30, full_pipeline: true}
- complex: {min_tasks: 16, keywords: [auth, security, payment, migration], enhanced_review: true}
-
-defaults:
- auto_create_missing: true # Automatically create missing story files using greenfield workflow
-
-
-
-@patterns/hospital-grade.md
-@patterns/agent-completion.md
-@story-full-pipeline/workflow.md
-
-
-
-
-
-**Load and parse sprint-status.yaml**
-
-```bash
-SPRINT_STATUS="docs/sprint-artifacts/sprint-status.yaml"
-[ -f "$SPRINT_STATUS" ] || { echo "ERROR: sprint-status.yaml not found"; exit 1; }
-```
-
-Use Read tool on sprint-status.yaml. Extract:
-- Stories with status `ready-for-dev` or `backlog`
-- Exclude epics (`epic-*`) and retrospectives (`*-retrospective`)
-- Sort by epic number, then story number
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π LOADING SPRINT STATUS
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-If no available stories: report "All stories complete!" and exit.
-
-
-
-**Display available stories with file status**
-
-For each story:
-1. Check if story file exists in `docs/sprint-artifacts/`
-2. Try patterns: `story-{epic}.{story}.md`, `{epic}-{story}.md`, `{story_key}.md`
-3. Mark status: β
exists, β missing, π already implemented
-
-```markdown
-## π¦ Available Stories (N)
-
-### Ready for Dev (X)
-1. **17-10** β
occupant-agreement-view
-2. **17-11** β
agreement-status-tracking
-
-### Backlog (Y)
-3. **18-1** β [needs story file]
-
-Legend: β
ready | β missing | π done but not tracked
-```
-
-
-
-**Validate story files have required sections**
-
-For each story with existing file:
-1. Read story file
-2. Check for 12 BMAD sections (Business Context, Acceptance Criteria, Tasks, etc.)
-3. If invalid: mark for regeneration
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π VALIDATING STORY FILES
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Note:** Stories with missing files will be auto-created in the execution step.
-
-
-
-**Score story complexity for pipeline routing**
-
-For each validated story:
-
-```bash
-# Count tasks
-TASK_COUNT=$(grep -c "^- \[ \]" "$STORY_FILE")
-
-# Check for risk keywords
-RISK_KEYWORDS="auth|security|payment|encryption|migration|database|schema"
-HIGH_RISK=$(grep -ciE "$RISK_KEYWORDS" "$STORY_FILE")
-```
-
-**Scoring:**
-| Criteria | micro | standard | complex |
-|----------|-------|----------|---------|
-| Tasks | β€3 | 4-15 | β₯16 |
-| Files | β€5 | β€30 | >30 |
-| Risk keywords | 0 | low | high |
-
-Store `complexity_level` for each story.
-
-
-
-**Get user selection**
-
-Use AskUserQuestion:
-```
-Which stories would you like to implement?
-
-Options:
-1. All ready-for-dev stories (X stories)
-2. Select specific stories by number
-3. Single story (enter key like "17-10")
-```
-
-Validate selection against available stories.
-
-
-
-**Choose execution mode**
-
-Use AskUserQuestion:
-```
-How should stories be processed?
-
-Options:
-1. Sequential (recommended for gap analysis)
- - Process one-by-one in this session
- - Verify code β build gaps β check boxes β next
-
-2. Parallel (for greenfield batch)
- - Spawn Task agents concurrently
- - Faster but harder to monitor
-```
-
-For sequential: proceed to `execute_sequential`
-For parallel: proceed to `execute_parallel`
-
-
-
-**Sequential Processing**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π¦ SEQUENTIAL PROCESSING
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-For each selected story:
-
-**Step A: Auto-Fix Prerequisites**
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π¦ Story {{index}}/{{total}}: {{story_key}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-```bash
-STORY_FILE="docs/sprint-artifacts/{{story_key}}.md"
-
-echo "π Checking prerequisites..."
-```
-
-**Check 1: Story file exists?**
-```bash
-if [ ! -f "$STORY_FILE" ]; then
- echo "β οΈ Creating greenfield story (no gap analysis)..."
-fi
-```
-
-If missing, auto-create using greenfield workflow:
-- Use Skill tool: `/bmad_bmm_create-story {{story_key}}`
-- Verify created: `[ -f "$STORY_FILE" ]`
-
-```bash
-echo "β
Prerequisites satisfied"
-```
-
-**Step B: Invoke story-full-pipeline**
-
-Use story-full-pipeline workflow with:
-- mode: batch
-- story_key: {{story_key}}
-- complexity_level: {{complexity}}
-
-**Step C: Reconcile Using Completion Artifacts (orchestrator does this directly)**
-
-After story-full-pipeline completes:
-
-**C1. Load Fixer completion artifact:**
-```bash
-FIXER_COMPLETION="docs/sprint-artifacts/completions/{{story_key}}-fixer.json"
-
-if [ ! -f "$FIXER_COMPLETION" ]; then
- echo "β WARNING: No completion artifact, using fallback"
- # Fallback to git diff if completion artifact missing
-else
- echo "β
Using completion artifact"
-fi
-```
-
-Use Read tool on: `docs/sprint-artifacts/completions/{{story_key}}-fixer.json`
-
-**C2. Parse completion data:**
-Extract from JSON:
-- files_created and files_modified arrays
-- git_commit hash
-- quality_checks results
-- tests counts
-- fixes_applied list
-
-**C3. Read story file:**
-Use Read tool: `docs/sprint-artifacts/{{story_key}}.md`
-
-**C4. Check off completed tasks:**
-For each task:
-- Match task to files in completion artifact
-- If file was created/modified: check off task
-- Use Edit tool: `"- [ ]"` β `"- [x]"`
-
-**C5. Fill Dev Agent Record:**
-Use Edit tool with data from completion.json:
-```markdown
-### Dev Agent Record
-**Implementation Date:** {{timestamp from json}}
-**Agent Model:** Claude Sonnet 4.5 (multi-agent pipeline)
-**Git Commit:** {{git_commit from json}}
-
-**Files:** {{files_created + files_modified from json}}
-**Tests:** {{tests.passing}}/{{tests.total}} passing ({{tests.coverage}}%)
-**Issues Fixed:** {{issues_fixed.total}} issues
-```
-
-**C6. Verify updates:**
-```bash
-CHECKED=$(grep -c "^- \[x\]" "$STORY_FILE")
-[ "$CHECKED" -gt 0 ] || { echo "β Zero tasks checked"; exit 1; }
-echo "β
Reconciled: $CHECKED tasks"
-```
-
-**C7. Update sprint-status.yaml:**
-Use Edit tool: `"{{story_key}}: ready-for-dev"` β `"{{story_key}}: done"`
-
-**Step D: Next story or complete**
-- If more stories: continue loop
-- If complete: proceed to `summary`
-
-
-
-**Parallel Processing with Wave Pattern**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π¦ PARALLEL PROCESSING
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Wave Configuration:**
-- Max concurrent: 3 agents
-- Wait for wave completion before next wave
-
-**For each wave:**
-
-1. Spawn Task agents (up to 3 parallel):
-```
-Task({
- subagent_type: "general-purpose",
- description: "Implement {{story_key}}",
- prompt: `
-Execute story-full-pipeline for story {{story_key}}.
-
-
-@story-full-pipeline/workflow.md
-
-
-
-Story: [inline story content]
-Complexity: {{complexity_level}}
-
-
-
-- [ ] All pipeline phases complete
-- [ ] Git commit created
-- [ ] Return ## AGENT COMPLETE with summary
-
-`
-})
-```
-
-2. Wait for all agents in wave to complete
-
-3. **Orchestrator reconciles each completed story:**
- - Get git diff
- - Check off tasks
- - Fill Dev Agent Record
- - Verify updates
- - Update sprint-status
-
-4. Continue to next wave or summary
-
-
-
-**Display Batch Summary**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
BATCH COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-
-Stories processed: {{total}}
-Successful: {{success_count}}
-Failed: {{fail_count}}
-
-## Results
-
-| Story | Status | Tasks | Commit |
-|-------|--------|-------|--------|
-| 17-10 | β
done | 8/8 | abc123 |
-| 17-11 | β
done | 5/5 | def456 |
-
-## Next Steps
-- Run /bmad:sprint-status to verify
-- Review commits with git log
-```
-
-
-
-
-
-**Story file missing:** Skip with warning, continue to next.
-**Pipeline fails:** Mark story as failed, continue to next.
-**Reconciliation fails:** Fix with Edit tool, retry verification.
-**All stories fail:** Report systemic issue, halt batch.
-
-
-
-- [ ] All selected stories processed
-- [ ] Each story has checked tasks (count > 0)
-- [ ] Each story has Dev Agent Record filled
-- [ ] Sprint status updated for all stories
-- [ ] Summary displayed with results
-
diff --git a/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.yaml b/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.yaml
deleted file mode 100644
index b93b2b9e..00000000
--- a/src/modules/bmm/workflows/4-implementation/batch-super-dev/workflow.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-name: batch-super-dev
-description: "Interactive batch selector for super-dev-pipeline with complexity-based routing. Micro stories get lightweight path, standard stories get full pipeline, complex stories get enhanced validation."
-author: "BMad"
-version: "1.3.0"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{config_source}:sprint_artifacts"
-communication_language: "{config_source}:communication_language"
-date: system-generated
-
-# Workflow paths
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/batch-super-dev"
-instructions: "{installed_path}/instructions.md"
-
-# State management
-sprint_status: "{sprint_artifacts}/sprint-status.yaml"
-batch_log: "{sprint_artifacts}/batch-super-dev-{date}.log"
-
-# Variables
-filter_by_epic: "" # Optional: Filter stories by epic number (e.g., "3" for only Epic 3 stories)
-max_stories: 20 # Safety limit - won't process more than this in one batch
-pause_between_stories: 5 # Seconds to pause between stories (allows monitoring, prevents rate limits)
-
-# Super-dev-pipeline invocation settings
-super_dev_settings:
- mode: "batch" # Always use batch mode for autonomous execution
- workflow_path: "{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline"
-
-# Story validation settings (NEW in v1.2.0)
-validation:
- enabled: true # Validate story files before processing
- auto_create_missing: false # If true, auto-create without prompting (use with caution)
- auto_regenerate_invalid: false # If true, auto-regenerate without prompting (use with caution)
- min_sections: 12 # BMAD format requires all 12 sections
- min_current_state_words: 100 # Current State must have substantial content
- require_gap_analysis: true # Current State must have β
/β markers
- backup_before_regenerate: true # Create .backup file before regenerating
-
-# Story complexity scoring (NEW in v1.3.0)
-# Routes stories to appropriate pipeline based on complexity
-complexity:
- enabled: true
- thresholds:
- micro: # Lightweight path: skip gap analysis + code review
- max_tasks: 3
- max_files: 5
- risk_keywords: [] # No high-risk keywords allowed
- standard: # Normal path: full pipeline
- max_tasks: 15
- max_files: 30
- risk_keywords: ["api", "service", "component", "feature"]
- complex: # Enhanced path: extra validation, consider splitting
- min_tasks: 16
- risk_keywords: ["auth", "security", "migration", "database", "payment", "encryption"]
-
- # Risk keyword scoring (adds to complexity)
- risk_weights:
- high: ["auth", "security", "payment", "encryption", "migration", "database", "schema"]
- medium: ["api", "integration", "external", "third-party", "cache"]
- low: ["ui", "style", "config", "docs", "test"]
-
- # Keyword matching configuration (defines how risk keywords are detected)
- keyword_matching:
- case_sensitive: false # "AUTH" matches "auth"
- require_word_boundaries: true # "auth" won't match "author"
- match_strategy: "exact" # exact word match required (no stemming)
- scan_locations:
- - story_title
- - task_descriptions
- - subtask_descriptions
- # Keyword variants (synonyms that map to canonical forms)
- variants:
- auth: ["authentication", "authorize", "authorization", "authz", "authn"]
- database: ["db", "databases", "datastore"]
- payment: ["payments", "pay", "billing", "checkout"]
- migration: ["migrations", "migrate"]
- security: ["secure", "security"]
- encryption: ["encrypt", "encrypted", "cipher"]
-
- # Task counting rules
- task_counting:
- method: "top_level_only" # Only count [ ] at task level, not subtasks
- # Options: "top_level_only", "include_subtasks", "weighted"
- # Example:
- # - [ ] Parent task <- counts as 1
- # - [ ] Subtask 1 <- ignored
- # - [ ] Subtask 2 <- ignored
-
-# Execution settings
-execution:
- continue_on_failure: true # Keep processing remaining stories if one fails
- display_progress: true # Show running summary after each story
- save_state: true # Save progress to resume if interrupted
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.md b/src/modules/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.md
deleted file mode 100644
index b40462b5..00000000
--- a/src/modules/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.md
+++ /dev/null
@@ -1,286 +0,0 @@
-# Create Story with Gap Analysis v3.0 - Verified Story Generation
-
-
-Regenerate story with VERIFIED codebase gap analysis.
-Uses Glob/Read tools to determine what actually exists vs what's missing.
-Checkboxes reflect reality, not guesses.
-
-
-
-**Truth from Codebase, Not Assumptions**
-
-1. Scan codebase for actual implementations
-2. Verify files exist, check for stubs/TODOs
-3. Check test coverage
-4. Generate story with checkboxes matching reality
-5. No guessingβevery checkbox has evidence
-
-
-
-name: create-story-with-gap-analysis
-version: 3.0.0
-
-verification_status:
- verified: "[x]" # File exists, real implementation, tests exist
- partial: "[~]" # File exists but stub/TODO or no tests
- missing: "[ ]" # File does not exist
-
-defaults:
- update_sprint_status: true
- create_report: false
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-
-
-
-
-
-**Identify story and load context**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π STORY REGENERATION WITH GAP ANALYSIS
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Ask user for story:**
-```
-Which story should I regenerate with gap analysis?
-
-Provide:
-- Story number (e.g., "1.9" or "1-9")
-- OR story filename
-
-Your choice:
-```
-
-**Parse input:**
-- Extract epic_num, story_num
-- Locate story file
-
-**Load existing story:**
-```bash
-Read: {{story_dir}}/story-{{epic_num}}.{{story_num}}.md
-```
-
-Extract:
-- Story title
-- User story (As a... I want... So that...)
-- Acceptance criteria
-- Tasks
-- Dev Notes
-
-**Load epic context:**
-```bash
-Read: {{planning_artifacts}}/epics.md
-```
-
-Extract:
-- Epic business objectives
-- Technical constraints
-- Dependencies
-
-**Determine target directories:**
-From story title/requirements, identify which directories to scan.
-
-```
-β
Story Context Loaded
-
-Story: {{epic_num}}.{{story_num}} - {{title}}
-Target directories:
-{{#each directories}}
- - {{this}}
-{{/each}}
-
-[C] Continue to Codebase Scan
-```
-
-
-
-**VERIFY what code actually exists**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π CODEBASE SCAN
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**For each target directory:**
-
-1. **List all source files:**
- ```bash
- Glob: {{target_dir}}/src/**/*.ts
- Glob: {{target_dir}}/src/**/*.tsx
- ```
-
-2. **Check for specific required components:**
- Based on story ACs, check if required files exist:
- ```bash
- Glob: {{target_dir}}/src/auth/controllers/*oauth*.ts
- # Result: β
EXISTS or β MISSING
- ```
-
-3. **Verify implementation depth:**
- For files that exist, check quality:
- ```bash
- Read: {{file}}
-
- # Check for stubs
- Grep: "MOCK|TODO|FIXME|Not implemented" {{file}}
- # If found: β οΈ STUB
- ```
-
-4. **Check dependencies:**
- ```bash
- Read: {{target_dir}}/package.json
-
- # Required: axios - Found? β
/β
- # Required: @aws-sdk/client-secrets-manager - Found? β
/β
- ```
-
-5. **Check test coverage:**
- ```bash
- Glob: {{target_dir}}/src/**/*.spec.ts
- Glob: {{target_dir}}/test/**/*.test.ts
- ```
-
-
-
-**Create verified gap analysis**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π GAP ANALYSIS RESULTS
-βββββββββββββββββββββββββββββββββββββββββββ
-
-β
IMPLEMENTED (Verified):
-{{#each implemented}}
-{{@index}}. **{{name}}**
- - File: {{file}} β
EXISTS
- - Status: {{status}}
- - Tests: {{test_count}} tests
-{{/each}}
-
-β MISSING (Verified):
-{{#each missing}}
-{{@index}}. **{{name}}**
- - Expected: {{expected_file}} β NOT FOUND
- - Needed for: {{requirement}}
-{{/each}}
-
-β οΈ PARTIAL (Stub/Incomplete):
-{{#each partial}}
-{{@index}}. **{{name}}**
- - File: {{file}} β
EXISTS
- - Issue: {{issue}}
-{{/each}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Generate story with verified checkboxes**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π GENERATING STORY
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Use story template with:
-- `[x]` for VERIFIED items (evidence: file exists, not stub, has tests)
-- `[~]` for PARTIAL items (evidence: file exists but stub/no tests)
-- `[ ]` for MISSING items (evidence: file not found)
-
-**Write story file:**
-```bash
-Write: {{story_dir}}/story-{{epic_num}}.{{story_num}}.md
-```
-
-**Validate generated story:**
-```bash
-# Check 7 sections exist
-grep "^## " {{story_file}} | wc -l
-# Should be 7
-
-# Check gap analysis section exists
-grep "Gap Analysis" {{story_file}}
-```
-
-
-
-**Update sprint-status.yaml**
-
-```bash
-Read: {{sprint_status}}
-
-# Update story status to "ready-for-dev" if was "backlog"
-# Preserve comments and structure
-
-Write: {{sprint_status}}
-```
-
-
-
-**Report completion**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
STORY REGENERATED WITH GAP ANALYSIS
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{epic_num}}.{{story_num}} - {{title}}
-File: {{story_file}}
-Sections: 7/7 β
-
-Gap Analysis Summary:
-- β
{{implemented_count}} components VERIFIED complete
-- β {{missing_count}} components VERIFIED missing
-- β οΈ {{partial_count}} components PARTIAL (stub/no tests)
-
-Checkboxes reflect VERIFIED codebase state.
-
-Next Steps:
-1. Review story for accuracy
-2. Use /dev-story to implement missing components
-3. Story provides complete context for implementation
-
-[N] Regenerate next story
-[Q] Quit
-[R] Review generated story
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**If [N]:** Loop back to initialize with next story.
-**If [R]:** Display story content, then show menu.
-
-
-
-
-
-```bash
-# Regenerate specific story
-/create-story-with-gap-analysis
-> Which story? 1.9
-
-# With explicit story file
-/create-story-with-gap-analysis story_file=docs/sprint-artifacts/story-1.9.md
-```
-
-
-
-**Story not found:** HALT with clear error.
-**Target directory not found:** Warn, scan available directories.
-**Glob/Read fails:** Log warning, count as MISSING.
-**Write fails:** Report error, display generated content.
-
-
-
-- [ ] Codebase scanned for all story requirements
-- [ ] Gap analysis generated with evidence
-- [ ] Story written with verified checkboxes
-- [ ] 7 sections present
-- [ ] Sprint status updated (if enabled)
-
diff --git a/src/modules/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.yaml b/src/modules/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.yaml
deleted file mode 100644
index d6297e95..00000000
--- a/src/modules/bmm/workflows/4-implementation/create-story-with-gap-analysis/workflow.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-name: create-story-with-gap-analysis
-description: "Create/regenerate story with SYSTEMATIC codebase gap analysis using verified file scanning (Glob/Read tools)"
-author: "Jonah Schulte"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-user_name: "{config_source}:user_name"
-communication_language: "{config_source}:communication_language"
-date: system-generated
-planning_artifacts: "{config_source}:planning_artifacts"
-implementation_artifacts: "{config_source}:implementation_artifacts"
-output_folder: "{implementation_artifacts}"
-story_dir: "{implementation_artifacts}"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story-with-gap-analysis"
-instructions: "{installed_path}/workflow.md"
-
-# Variables
-variables:
- sprint_status: "{implementation_artifacts}/sprint-status.yaml"
- epics_file: "{planning_artifacts}/epics.md"
- prd_file: "{planning_artifacts}/prd.md"
-
-# Project context
-project_context: "**/project-context.md"
-
-default_output_file: "{story_dir}/{{story_key}}.md"
-
-standalone: true
-
-web_bundle: false
diff --git a/src/modules/bmm/workflows/4-implementation/create-story/workflow.md b/src/modules/bmm/workflows/4-implementation/create-story/workflow.md
deleted file mode 100644
index f581efbe..00000000
--- a/src/modules/bmm/workflows/4-implementation/create-story/workflow.md
+++ /dev/null
@@ -1,270 +0,0 @@
-# Create Story v3.0 - Greenfield Story Generation
-
-
-Generate story for net-new features with zero existing implementation.
-No codebase scanningβall tasks assumed incomplete (greenfield).
-Focused on clear requirements and implementation guidance.
-
-
-
-**Fast Story Generation for New Features**
-
-1. Load PRD, epic, and architecture context
-2. Generate clear user story with acceptance criteria
-3. All tasks marked incomplete (greenfield assumption)
-4. No codebase scanningβsaves time for net-new work
-5. Ready for immediate implementation
-
-
-
-name: create-story
-version: 3.0.0
-
-task_status:
- incomplete: "[ ]" # All tasks for greenfield stories
-
-defaults:
- update_sprint_status: true
- create_report: false
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-
-
-
-
-
-**Identify story and load context**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π GREENFIELD STORY GENERATION
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Ask user for story:**
-```
-Which story should I create?
-
-Provide:
-- Story number (e.g., "1.9" or "1-9")
-- OR epic number and story description
-
-Your choice:
-```
-
-**Parse input:**
-- Extract epic_num, story_num
-- Determine story file path
-
-**Load epic context:**
-```bash
-Read: {{planning_artifacts}}/epics.md
-```
-
-Extract:
-- Epic business objectives
-- Technical constraints
-- Dependencies
-
-**Load architecture context (if exists):**
-```bash
-Read: {{planning_artifacts}}/architecture.md
-```
-
-Extract:
-- Technical architecture patterns
-- Technology stack
-- Integration patterns
-
-**Load PRD context:**
-```bash
-Read: {{planning_artifacts}}/prd.md
-```
-
-Extract relevant sections:
-- User personas
-- Feature requirements
-- Non-functional requirements
-
-```
-β
Context Loaded
-
-Story: {{epic_num}}.{{story_num}}
-Epic: {{epic_title}}
-Architecture: {{architecture_notes}}
-
-[C] Continue to Story Generation
-```
-
-
-
-**Generate greenfield story**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π GENERATING STORY
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Story structure:**
-All tasks marked `[ ]` (incomplete) since this is greenfield.
-
-**Write story file:**
-```bash
-Write: {{story_dir}}/story-{{epic_num}}.{{story_num}}.md
-```
-
-**Story template:**
-```markdown
-# Story {{epic_num}}.{{story_num}}: {{title}}
-
-## π Metadata
-- **Epic**: {{epic_num}} - {{epic_title}}
-- **Priority**: {{priority}}
-- **Estimate**: {{estimate}}
-- **Dependencies**: {{dependencies}}
-- **Created**: {{date}}
-
-## π User Story
-As a {{persona}}
-I want {{capability}}
-So that {{benefit}}
-
-## β
Acceptance Criteria
-1. **{{criterion_1}}**
- - {{detail_1a}}
- - {{detail_1b}}
-
-2. **{{criterion_2}}**
- - {{detail_2a}}
- - {{detail_2b}}
-
-## π¨ Implementation Tasks
-### Frontend
-- [ ] {{frontend_task_1}}
-- [ ] {{frontend_task_2}}
-
-### Backend
-- [ ] {{backend_task_1}}
-- [ ] {{backend_task_2}}
-
-### Testing
-- [ ] {{testing_task_1}}
-- [ ] {{testing_task_2}}
-
-## π Technical Notes
-### Architecture
-{{architecture_guidance}}
-
-### Dependencies
-{{dependency_notes}}
-
-### API Contracts
-{{api_contract_notes}}
-
-## π§ͺ Testing Strategy
-### Unit Tests
-{{unit_test_strategy}}
-
-### Integration Tests
-{{integration_test_strategy}}
-
-### E2E Tests
-{{e2e_test_strategy}}
-
-## π― Definition of Done
-- [ ] All acceptance criteria met
-- [ ] Unit tests written and passing
-- [ ] Integration tests written and passing
-- [ ] Code reviewed and approved
-- [ ] Documentation updated
-- [ ] Deployed to staging environment
-- [ ] Product owner acceptance
-
-## π Dev Notes
-{{additional_context}}
-```
-
-**Validate generated story:**
-```bash
-# Check 7 sections exist
-grep "^## " {{story_file}} | wc -l
-# Should be 7 or more
-
-# Check metadata section exists
-grep "## π Metadata" {{story_file}}
-```
-
-
-
-**Update sprint-status.yaml**
-
-```bash
-Read: {{sprint_status}}
-
-# Add story to sprint status with "ready-for-dev" status
-# Preserve comments and structure
-
-Write: {{sprint_status}}
-```
-
-
-
-**Report completion**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
GREENFIELD STORY CREATED
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{epic_num}}.{{story_num}} - {{title}}
-File: {{story_file}}
-Sections: 7/7 β
-
-All tasks marked incomplete (greenfield).
-Ready for implementation.
-
-Next Steps:
-1. Review story for accuracy
-2. Use /story-dev-only or /story-full-pipeline to implement
-3. All context loaded and ready
-
-[N] Create next story
-[Q] Quit
-[R] Review generated story
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**If [N]:** Loop back to initialize with next story.
-**If [R]:** Display story content, then show menu.
-
-
-
-
-
-```bash
-# Create new greenfield story
-/create-story
-> Which story? 20.1
-
-# With explicit story number
-/create-story epic=20 story=1
-```
-
-
-
-**Epic not found:** HALT with clear error.
-**PRD not found:** Warn but continue with available context.
-**Architecture doc not found:** Warn but continue with epic context.
-**Write fails:** Report error, display generated content.
-
-
-
-- [ ] Epic and PRD context loaded
-- [ ] Story generated with all 7+ sections
-- [ ] All tasks marked incomplete (greenfield)
-- [ ] Story written to correct path
-- [ ] Sprint status updated (if enabled)
-
diff --git a/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml b/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml
deleted file mode 100644
index 5cce162d..00000000
--- a/src/modules/bmm/workflows/4-implementation/create-story/workflow.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: create-story
-description: "Create story for greenfield features with zero existing implementation (no codebase scanning)"
-author: "Jonah Schulte"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-user_name: "{config_source}:user_name"
-communication_language: "{config_source}:communication_language"
-date: system-generated
-planning_artifacts: "{config_source}:planning_artifacts"
-implementation_artifacts: "{config_source}:implementation_artifacts"
-output_folder: "{implementation_artifacts}"
-story_dir: "{implementation_artifacts}"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story"
-instructions: "{installed_path}/workflow.md"
-
-# Variables
-variables:
- sprint_status: "{implementation_artifacts}/sprint-status.yaml"
- epics_file: "{planning_artifacts}/epics.md"
- prd_file: "{planning_artifacts}/prd.md"
- architecture_file: "{planning_artifacts}/architecture.md"
-
-# Project context
-project_context: "**/project-context.md"
-
-default_output_file: "{story_dir}/{{story_key}}.md"
-
-standalone: true
-
-web_bundle: false
diff --git a/src/modules/bmm/workflows/4-implementation/detect-ghost-features/workflow.md b/src/modules/bmm/workflows/4-implementation/detect-ghost-features/workflow.md
deleted file mode 100644
index 61132bf3..00000000
--- a/src/modules/bmm/workflows/4-implementation/detect-ghost-features/workflow.md
+++ /dev/null
@@ -1,278 +0,0 @@
-# Detect Ghost Features v3.0 - Reverse Gap Analysis
-
-
-Find undocumented code (components, APIs, services, tables) that exist in codebase
-but aren't tracked in any story. "Who you gonna call?" - Ghost Features.
-
-
-
-**Reverse Gap Analysis**
-
-Normal gap analysis: story says X should exist β does it?
-Reverse gap analysis: X exists in code β is it documented?
-
-Undocumented features become maintenance nightmares.
-Find them, create backfill stories, restore traceability.
-
-
-
-name: detect-ghost-features
-version: 3.0.0
-
-scan_scope:
- epic: "Filter to specific epic number"
- sprint: "All stories in sprint-status.yaml"
- codebase: "All stories in sprint-artifacts"
-
-scan_for:
- components: true
- api_endpoints: true
- database_tables: true
- services: true
-
-severity:
- critical: "APIs, auth, payment (undocumented = high risk)"
- high: "Components, DB tables, services"
- medium: "Utilities, helpers"
- low: "Config files, constants"
-
-defaults:
- create_backfill_stories: false
- auto_create: false
- add_to_sprint_status: true
- create_report: true
-
-
-
-@patterns/hospital-grade.md
-
-
-
-
-
-**Load documented artifacts from stories**
-
-Based on scan_scope (epic/sprint/codebase):
-
-```bash
-# Get all story files
-STORIES=$(ls docs/sprint-artifacts/*.md | grep -v "epic-")
-```
-
-For each story:
-1. Read story file
-2. Extract documented artifacts:
- - File List (all paths mentioned)
- - Tasks (file/component/service names)
- - ACs (features/functionality)
-3. Store in: documented_artifacts[story_key]
-
-
-
-**Scan codebase for actual implementations**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π» SCANNING FOR GHOST FEATURES
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Components:**
-```bash
-# Find React/Vue/Angular components
-find . -name "*.tsx" -o -name "*.jsx" | xargs grep -l "export.*function\|export.*const"
-```
-
-**API Endpoints:**
-```bash
-# Find Next.js/Express routes
-find . -path "*/api/*" -name "*.ts"
-grep -r "export.*GET\|export.*POST\|router\.\(get\|post\)" .
-```
-
-**Database Tables:**
-```bash
-# Find Prisma/TypeORM models
-grep -r "^model " prisma/schema.prisma
-find . -name "*.entity.ts"
-```
-
-**Services:**
-```bash
-find . -name "*.service.ts" -o -name "*Service.ts"
-```
-
-
-
-**Compare codebase artifacts to story documentation**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π CROSS-REFERENCING
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-For each codebase artifact:
-1. Search all stories for mentions of:
- - Component/file name
- - File path
- - Feature description
-2. If NO stories mention it β ORPHAN (ghost feature)
-3. If stories mention it β Documented
-
-Track orphans with:
-- type (component/api/db/service)
-- name and path
-- severity
-- inferred purpose
-
-
-
-**Analyze and prioritize ghost features**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π» GHOST FEATURES DETECTED
-βββββββββββββββββββββββββββββββββββββββββββ
-Total Orphans: {{count}}
-
-By Severity:
-- π΄ CRITICAL: {{critical}} (APIs, security)
-- π HIGH: {{high}} (Components, DB, services)
-- π‘ MEDIUM: {{medium}} (Utilities)
-- π’ LOW: {{low}} (Config)
-
-By Type:
-- Components: {{components}}
-- API Endpoints: {{apis}}
-- Database Tables: {{tables}}
-- Services: {{services}}
-
-Documentation Coverage: {{documented_pct}}%
-Orphan Rate: {{orphan_pct}}%
-
-{{#if orphan_pct > 20}}
-β οΈ HIGH ORPHAN RATE - Over 20% undocumented!
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Generate stories for orphaned features**
-
-For each orphan (prioritized by severity):
-
-1. **Analyze orphan** - Read implementation, find tests, understand purpose
-2. **Generate story draft:**
-
-```markdown
-# Story: Document existing {{name}}
-
-**Type:** BACKFILL (documenting existing code)
-
-## Business Context
-{{inferred_from_code}}
-
-## Current State
-β
Implementation EXISTS: {{file}}
-{{#if has_tests}}β
Tests exist{{else}}β No tests{{/if}}
-
-## Acceptance Criteria
-{{inferred_acs}}
-
-## Tasks
-- [x] {{name}} implementation (ALREADY EXISTS)
-{{#if !has_tests}}- [ ] Add tests{{/if}}
-- [ ] Verify functionality
-- [ ] Assign to epic
-```
-
-3. **Ask user** (unless auto_create):
- - [Y] Create story
- - [A] Auto-create all remaining
- - [S] Skip this orphan
- - [H] Halt
-
-4. **Write story file:** `docs/sprint-artifacts/backfill-{{type}}-{{name}}.md`
-
-5. **Update sprint-status.yaml** (if enabled)
-
-
-
-**Recommend epic assignment**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π BACKFILL ORGANIZATION
-βββββββββββββββββββββββββββββββββββββββββββ
-
-Options:
-[A] Create Epic-Backfill (recommended)
- - Single epic for all backfill stories
- - Clear separation from feature work
-
-[B] Distribute to existing epics
- - Add each to its logical epic
-
-[C] Leave in backlog
- - Manual assignment later
-```
-
-
-
-**Write comprehensive ghost features report**
-
-Write to: `docs/sprint-artifacts/ghost-features-report-{{timestamp}}.md`
-
-Include:
-- Executive summary
-- Full orphan list by severity
-- Backfill stories created
-- Recommendations
-- Scan methodology
-
-
-
-**Display results and next steps**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
GHOST FEATURE DETECTION COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-Orphans Found: {{orphan_count}}
-Backfill Stories Created: {{backfill_count}}
-Documentation Coverage: {{documented_pct}}%
-
-{{#if orphan_count == 0}}
-β
All code is documented in stories!
-{{else}}
-Next Steps:
-1. Review backfill stories for accuracy
-2. Assign to epics
-3. Add tests/docs for orphans
-4. Run revalidation to verify
-{{/if}}
-
-π‘ Pro Tip: Run this periodically to catch
- vibe-coded features before they become
- maintenance nightmares.
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-
-
-**No stories found:** Check scan_scope, verify sprint-artifacts exists.
-**Scan fails:** Report which scan type failed, continue others.
-**Backfill creation fails:** Skip, continue to next orphan.
-
-
-
-- [ ] All artifact types scanned
-- [ ] Cross-reference completed
-- [ ] Orphans categorized by severity
-- [ ] Backfill stories created (if enabled)
-- [ ] Report generated
-
diff --git a/src/modules/bmm/workflows/4-implementation/detect-ghost-features/workflow.yaml b/src/modules/bmm/workflows/4-implementation/detect-ghost-features/workflow.yaml
deleted file mode 100644
index e5c9f6cb..00000000
--- a/src/modules/bmm/workflows/4-implementation/detect-ghost-features/workflow.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-name: detect-ghost-features
-description: "Reverse gap analysis: Find functionality in codebase that has no corresponding story (vibe-coded or undocumented features). Propose backfill stories."
-author: "BMad"
-version: "1.0.0" # Who you gonna call? GHOST-FEATURE-BUSTERS! π»
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{output_folder}/sprint-artifacts"
-sprint_status: "{output_folder}/sprint-status.yaml"
-
-# Input parameters
-epic_number: "{epic_number}" # Optional: Limit to specific epic (e.g., "2")
-scan_scope: "sprint" # "sprint" | "epic" | "codebase"
-create_backfill_stories: true # Propose backfill stories for orphans
-
-# Detection settings
-detection:
- scan_for:
- components: true # React/Vue/Angular components
- api_endpoints: true # Routes, controllers, handlers
- database_tables: true # Migrations, schema
- services: true # Services, modules, utilities
- models: true # Data models, entities
- ui_pages: true # Pages, screens, views
-
- ignore_patterns:
- - "**/node_modules/**"
- - "**/dist/**"
- - "**/build/**"
- - "**/*.test.*"
- - "**/*.spec.*"
- - "**/migrations/**" # Migrations are referenced collectively, not per-story
-
- # What counts as "documented"?
- documented_if:
- mentioned_in_file_list: true # Story File List mentions it
- mentioned_in_tasks: true # Task description mentions it
- mentioned_in_acs: true # AC mentions the feature
- file_committed_in_story_commit: true # Git history shows it in story commit
-
-# Backfill story settings
-backfill:
- auto_create: false # Require confirmation before creating each
- add_to_sprint_status: true # Add to sprint as "backlog"
- mark_as_backfill: true # Add note: "Backfill story documenting existing code"
- run_gap_analysis: false # Don't run gap (we know it exists)
- estimate_effort: true # Estimate how complex the feature is
-
-# Output settings
-output:
- create_report: true # Generate orphaned-features-report.md
- group_by_category: true # Group by component/api/db/etc
- suggest_epic_assignment: true # Suggest which epic orphans belong to
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/gap-analysis/workflow.md b/src/modules/bmm/workflows/4-implementation/gap-analysis/workflow.md
deleted file mode 100644
index c672b0be..00000000
--- a/src/modules/bmm/workflows/4-implementation/gap-analysis/workflow.md
+++ /dev/null
@@ -1,246 +0,0 @@
-# Gap Analysis v3.0 - Verify Story Tasks Against Codebase
-
-
-Validate story checkbox claims against actual codebase reality.
-Find false positives (checked but not done) and false negatives (done but unchecked).
-Interactive workflow with options to update, audit, or review.
-
-
-
-**Evidence-Based Verification**
-
-Checkboxes lie. Code doesn't.
-- Search codebase for implementation evidence
-- Check for stubs, TODOs, empty functions
-- Verify tests exist for claimed features
-- Report accuracy of story completion claims
-
-
-
-name: gap-analysis
-version: 3.0.0
-
-defaults:
- auto_update: false
- create_audit_report: true
- strict_mode: false # If true, stubs count as incomplete
-
-output:
- update_story: "Modify checkbox state to match reality"
- audit_report: "Generate detailed gap analysis document"
- no_changes: "Display results only"
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-
-
-
-
-
-**Load and parse story file**
-
-```bash
-STORY_FILE="{{story_file}}"
-[ -f "$STORY_FILE" ] || { echo "β story_file required"; exit 1; }
-```
-
-Use Read tool on story file. Extract:
-- All `- [ ]` and `- [x]` items
-- File references from Dev Agent Record
-- Task descriptions with expected artifacts
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π GAP ANALYSIS: {{story_key}}
-βββββββββββββββββββββββββββββββββββββββββββ
-Tasks: {{total_tasks}}
-Currently checked: {{checked_count}}
-```
-
-
-
-**Verify each task against codebase**
-
-For each task item:
-
-1. **Extract artifacts** - File names, component names, function names
-2. **Search codebase:**
- ```bash
- # Check file exists
- Glob: {{expected_file}}
-
- # Check function/component exists
- Grep: "{{function_or_component_name}}"
- ```
-
-3. **If file exists, check quality:**
- ```bash
- # Check for stubs
- Grep: "TODO|FIXME|Not implemented|throw new Error" {{file}}
-
- # Check for tests
- Glob: {{file_base}}.test.* OR {{file_base}}.spec.*
- ```
-
-4. **Determine status:**
- - **VERIFIED:** File exists, not a stub, tests exist
- - **PARTIAL:** File exists but stub/TODO or no tests
- - **MISSING:** File does not exist
-
-
-
-**Compare claimed vs actual**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π GAP ANALYSIS RESULTS
-βββββββββββββββββββββββββββββββββββββββββββ
-Tasks analyzed: {{total}}
-
-By Status:
-- β
Verified Complete: {{verified}} ({{verified_pct}}%)
-- β οΈ Partial: {{partial}} ({{partial_pct}}%)
-- β Missing: {{missing}} ({{missing_pct}}%)
-
-Accuracy Analysis:
-- Checked & Verified: {{correct_checked}}
-- Checked but MISSING: {{false_positives}} β FALSE POSITIVES
-- Unchecked but DONE: {{false_negatives}} β FALSE NEGATIVES
-
-Checkbox Accuracy: {{accuracy}}%
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**If false positives found:**
-```
-β οΈ FALSE POSITIVES DETECTED
-The following tasks are marked done but code is missing:
-
-{{#each false_positives}}
-- [ ] {{task}} β Expected: {{expected_file}} β β NOT FOUND
-{{/each}}
-```
-
-
-
-**Ask user how to proceed**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π OPTIONS
-βββββββββββββββββββββββββββββββββββββββββββ
-[U] Update - Fix checkboxes to match reality
-[A] Audit Report - Generate detailed report file
-[N] No Changes - Display only (already done)
-[R] Review Details - Show full evidence for each task
-
-Your choice:
-```
-
-
-
-**Update story file checkboxes**
-
-For false positives:
-- Change `[x]` to `[ ]` for tasks with missing code
-
-For false negatives:
-- Change `[ ]` to `[x]` for tasks with verified code
-
-Use Edit tool to make changes.
-
-```
-β
Story checkboxes updated
-- {{fp_count}} false positives unchecked
-- {{fn_count}} false negatives checked
-- New completion: {{new_pct}}%
-```
-
-
-
-**Generate audit report**
-
-Write to: `{{story_dir}}/gap-analysis-{{story_key}}-{{timestamp}}.md`
-
-Include:
-- Executive summary
-- Detailed task-by-task evidence
-- False positive/negative lists
-- Recommendations
-
-```
-β
Audit report generated: {{report_path}}
-```
-
-
-
-**Show detailed evidence**
-
-For each task:
-```
-Task: {{task_text}}
-Checkbox: {{checked_state}}
-Evidence:
- - File: {{file}} - {{exists ? "β
EXISTS" : "β MISSING"}}
- {{#if exists}}
- - Stub check: {{is_stub ? "β οΈ STUB DETECTED" : "β
Real implementation"}}
- - Tests: {{has_tests ? "β
Tests exist" : "β No tests"}}
- {{/if}}
-Verdict: {{status}}
-```
-
-After review, return to options menu.
-
-
-
-**Display completion**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
GAP ANALYSIS COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{story_key}}
-Verified Completion: {{verified_pct}}%
-Checkbox Accuracy: {{accuracy}}%
-
-{{#if updated}}
-β
Checkboxes updated to match reality
-{{/if}}
-
-{{#if report_generated}}
-π Report: {{report_path}}
-{{/if}}
-
-{{#if false_positives > 0}}
-β οΈ {{false_positives}} tasks need implementation work
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-
-
-```bash
-# Quick gap analysis of single story
-/gap-analysis story_file=docs/sprint-artifacts/2-5-auth.md
-
-# With auto-update enabled
-/gap-analysis story_file=docs/sprint-artifacts/2-5-auth.md auto_update=true
-```
-
-
-
-**Story file not found:** HALT with clear error.
-**Search fails:** Log warning, count as MISSING.
-**Edit fails:** Report error, suggest manual update.
-
-
-
-- [ ] All tasks verified against codebase
-- [ ] False positives/negatives identified
-- [ ] Accuracy metrics calculated
-- [ ] User choice executed (update/audit/review)
-
diff --git a/src/modules/bmm/workflows/4-implementation/gap-analysis/workflow.yaml b/src/modules/bmm/workflows/4-implementation/gap-analysis/workflow.yaml
deleted file mode 100644
index 07eea0a2..00000000
--- a/src/modules/bmm/workflows/4-implementation/gap-analysis/workflow.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-name: gap-analysis
-description: "Validate story tasks against actual codebase - audit completed stories or validate before development"
-author: "BMad"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-user_name: "{config_source}:user_name"
-communication_language: "{config_source}:communication_language"
-implementation_artifacts: "{config_source}:implementation_artifacts"
-story_dir: "{implementation_artifacts}"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/gap-analysis"
-instructions: "{installed_path}/workflow.md"
-
-# Variables
-story_file: "" # User provides story file path or auto-discover
-sprint_status: "{implementation_artifacts}/sprint-status.yaml"
-project_context: "**/project-context.md"
-
-standalone: true
-
-web_bundle: false
diff --git a/src/modules/bmm/workflows/4-implementation/migrate-to-github/RELIABILITY.md b/src/modules/bmm/workflows/4-implementation/migrate-to-github/RELIABILITY.md
deleted file mode 100644
index 00a5bdb9..00000000
--- a/src/modules/bmm/workflows/4-implementation/migrate-to-github/RELIABILITY.md
+++ /dev/null
@@ -1,743 +0,0 @@
-# Migration Reliability Guarantees
-
-**Purpose:** Document how this migration tool ensures 100% reliability and data integrity.
-
----
-
-## Core Guarantees
-
-### 1. **Idempotent Operations** β
-
-**Guarantee:** Running migration multiple times produces the same result as running once.
-
-**How:**
-```javascript
-// Before creating issue, check if it exists
-const existing = await searchIssue(`label:story:${storyKey}`);
-
-if (existing) {
- if (update_existing) {
- // Update existing issue (safe)
- await updateIssue(existing.number, data);
- } else {
- // Skip (already migrated)
- skip(storyKey);
- }
-} else {
- // Create new issue
- await createIssue(data);
-}
-```
-
-**Test:**
-```bash
-# Run migration twice
-/migrate-to-github mode=execute
-/migrate-to-github mode=execute
-
-# Result: Same issues, no duplicates
-# Second run: "47 stories already migrated, 0 created"
-```
-
----
-
-### 2. **Atomic Per-Story Operations** β
-
-**Guarantee:** Each story either fully migrates or fully rolls back. No partial states.
-
-**How:**
-```javascript
-async function migrateStory(storyKey) {
- const transaction = {
- story_key: storyKey,
- operations: [],
- rollback_actions: []
- };
-
- try {
- // Create issue
- const issue = await createIssue(data);
- transaction.operations.push({ type: 'create', issue_number: issue.number });
- transaction.rollback_actions.push(() => closeIssue(issue.number));
-
- // Add labels
- await addLabels(issue.number, labels);
- transaction.operations.push({ type: 'labels' });
-
- // Set milestone
- await setMilestone(issue.number, milestone);
- transaction.operations.push({ type: 'milestone' });
-
- // Verify all operations succeeded
- await verifyIssue(issue.number);
-
- // Success - commit transaction
- return { success: true, issue_number: issue.number };
-
- } catch (error) {
- // Rollback all operations
- for (const rollback of transaction.rollback_actions.reverse()) {
- await rollback();
- }
-
- return { success: false, error, rolled_back: true };
- }
-}
-```
-
----
-
-### 3. **Comprehensive Verification** β
-
-**Guarantee:** Every write is verified by reading back the data.
-
-**How:**
-```javascript
-// Write-Verify pattern
-async function createIssueVerified(data) {
- // 1. Create
- const created = await mcp__github__issue_write({ ...data });
- const issue_number = created.number;
-
- // 2. Wait for GitHub eventual consistency
- await sleep(1000);
-
- // 3. Read back
- const verification = await mcp__github__issue_read({
- issue_number: issue_number
- });
-
- // 4. Verify fields
- assert(verification.title === data.title, 'Title mismatch');
- assert(verification.labels.includes(data.labels[0]), 'Label missing');
- assert(verification.body.includes(data.body.substring(0, 50)), 'Body mismatch');
-
- // 5. Return verified issue
- return { verified: true, issue_number };
-}
-```
-
-**Detection time:**
-- Write succeeds but data wrong: **Detected immediately** (1s after write)
-- Write fails silently: **Detected immediately** (read-back fails)
-- Partial write: **Detected immediately** (field mismatch)
-
----
-
-### 4. **Crash-Safe State Tracking** β
-
-**Guarantee:** If migration crashes/halts, can resume from exactly where it stopped.
-
-**How:**
-```yaml
-# migration-state.yaml (updated after EACH story)
-started_at: 2026-01-07T15:30:00Z
-mode: execute
-github_owner: jschulte
-github_repo: myproject
-total_stories: 47
-last_completed: "2-15-profile-edit" # Story that just finished
-stories_migrated:
- - story_key: "2-1-login"
- issue_number: 101
- timestamp: 2026-01-07T15:30:15Z
- - story_key: "2-2-signup"
- issue_number: 102
- timestamp: 2026-01-07T15:30:32Z
- # ... 13 more
- - story_key: "2-15-profile-edit"
- issue_number: 115
- timestamp: 2026-01-07T15:35:18Z
- # CRASH HAPPENS HERE
-```
-
-**Resume:**
-```bash
-# After crash, re-run migration
-/migrate-to-github mode=execute
-
-β Detects state file
-β "Previous migration detected - 15 stories already migrated"
-β "Resume from story 2-16-password-reset? (yes)"
-β Continues from story 16, skips 1-15
-```
-
-**State file is atomic:**
-- Written after EACH story (not at end)
-- Uses atomic write (tmp file + rename)
-- Never corrupted even if process killed mid-write
-
----
-
-### 5. **Exponential Backoff Retry** β
-
-**Guarantee:** Transient failures (network blips, GitHub 503s) don't fail migration.
-
-**How:**
-```javascript
-async function retryWithBackoff(operation, config) {
- const backoffs = config.retry_backoff_ms; // [1000, 3000, 9000]
-
- for (let attempt = 0; attempt < backoffs.length; attempt++) {
- try {
- return await operation();
- } catch (error) {
- if (attempt < backoffs.length - 1) {
- console.warn(`Retry ${attempt + 1} after ${backoffs[attempt]}ms`);
- await sleep(backoffs[attempt]);
- } else {
- // All retries exhausted
- throw error;
- }
- }
- }
-}
-```
-
-**Example:**
-```
-Story 2-5 migration:
- Attempt 1: GitHub 503 Service Unavailable
- β Wait 1s, retry
- Attempt 2: Network timeout
- β Wait 3s, retry
- Attempt 3: Success β
-```
-
----
-
-### 6. **Rollback Manifest** β
-
-**Guarantee:** Can undo migration if something goes wrong.
-
-**How:**
-```yaml
-# migration-rollback-2026-01-07T15-30-00.yaml
-created_at: 2026-01-07T15:30:00Z
-github_owner: jschulte
-github_repo: myproject
-migration_mode: execute
-
-created_issues:
- - story_key: "2-1-login"
- issue_number: 101
- created_at: 2026-01-07T15:30:15Z
- title: "Story 2-1: User Login Flow"
- url: "https://github.com/jschulte/myproject/issues/101"
-
- - story_key: "2-2-signup"
- issue_number: 102
- created_at: 2026-01-07T15:30:32Z
- title: "Story 2-2: User Registration"
- url: "https://github.com/jschulte/myproject/issues/102"
-
- # ... all created issues tracked
-
-rollback_command: |
- /migrate-to-github mode=rollback manifest=migration-rollback-2026-01-07T15-30-00.yaml
-```
-
-**Rollback execution:**
-- Closes all created issues
-- Adds "migrated:rolled-back" label
-- Adds comment explaining why closed
-- Preserves issues (can reopen if needed)
-
----
-
-### 7. **Dry-Run Mode** β
-
-**Guarantee:** See exactly what will happen before it happens.
-
-**How:**
-```javascript
-if (mode === 'dry-run') {
- // NO writes to GitHub - only reads
- for (const story of stories) {
- const existing = await searchIssue(`story:${story.key}`);
-
- if (existing) {
- console.log(`Would UPDATE: Issue #${existing.number}`);
- } else {
- console.log(`Would CREATE: New issue for ${story.key}`);
- console.log(` Title: ${generateTitle(story)}`);
- console.log(` Labels: ${generateLabels(story)}`);
- }
- }
-
- // Show summary
- console.log(`
-Total: ${stories.length}
-Would create: ${wouldCreate.length}
-Would update: ${wouldUpdate.length}
-Would skip: ${wouldSkip.length}
- `);
-
- // Exit without doing anything
- process.exit(0);
-}
-```
-
-**Usage:**
-```bash
-# Always run dry-run first
-/migrate-to-github mode=dry-run
-
-# Review output, then execute
-/migrate-to-github mode=execute
-```
-
----
-
-### 8. **Halt on Critical Error** β
-
-**Guarantee:** Never continue with corrupted/incomplete state.
-
-**How:**
-```javascript
-try {
- await createIssue(storyData);
-} catch (error) {
- if (isCriticalError(error)) {
- // Critical: GitHub API returned 401/403/5xx
- console.error('CRITICAL ERROR: Cannot continue safely');
- console.error(`Story ${storyKey} failed: ${error}`);
-
- // Save current state
- await saveState(migrationState);
-
- // Create recovery instructions
- console.log(`
-Recovery options:
-1. Fix error: ${error.message}
-2. Resume migration: /migrate-to-github mode=execute (will skip completed stories)
-3. Rollback: /migrate-to-github mode=rollback
- `);
-
- // HALT - do not continue
- process.exit(1);
- } else {
- // Non-critical: Individual story failed but can continue
- console.warn(`Story ${storyKey} failed (non-critical): ${error}`);
- failedStories.push({ storyKey, error });
- // Continue with next story
- }
-}
-```
-
----
-
-## Testing Reliability
-
-### Test Suite
-
-```javascript
-describe('Migration Reliability', () => {
-
- it('is idempotent - can run twice safely', async () => {
- await migrate({ mode: 'execute' });
- const firstRun = getCreatedIssues();
-
- await migrate({ mode: 'execute' }); // Run again
- const secondRun = getCreatedIssues();
-
- expect(secondRun).toEqual(firstRun); // Same issues, no duplicates
- });
-
- it('is atomic - failed story does not create partial issue', async () => {
- mockGitHub.createIssue.resolvesOnce(); // Create succeeds
- mockGitHub.addLabels.rejects(); // But adding labels fails
-
- await migrate({ mode: 'execute' });
-
- const issues = await searchAllIssues();
- const partialIssues = issues.filter(i => !i.labels.includes('story:'));
-
- expect(partialIssues).toHaveLength(0); // No partial issues
- });
-
- it('verifies all writes by reading back', async () => {
- mockGitHub.createIssue.resolves({ number: 101 });
- mockGitHub.readIssue.resolves({ title: 'WRONG TITLE' }); // Verification fails
-
- await expect(migrate({ mode: 'execute' }))
- .rejects.toThrow('Write verification failed');
- });
-
- it('can resume after crash', async () => {
- // Migrate 5 stories
- await migrate({ stories: stories.slice(0, 5) });
-
- // Simulate crash (don't await)
- const promise = migrate({ stories: stories.slice(5, 10) });
- await sleep(2000);
- process.kill(); // Crash mid-migration
-
- // Resume
- const resumed = await migrate({ mode: 'execute' });
-
- expect(resumed.resumedFrom).toBe('2-5-story');
- expect(resumed.skipped).toBe(5); // Skipped already-migrated
- });
-
- it('creates rollback manifest', async () => {
- await migrate({ mode: 'execute' });
-
- const manifest = fs.readFileSync('migration-rollback-*.yaml');
- expect(manifest.created_issues).toHaveLength(47);
- expect(manifest.created_issues[0]).toHaveProperty('issue_number');
- });
-
- it('can rollback migration', async () => {
- await migrate({ mode: 'execute' });
- const issuesBefore = await countIssues();
-
- await migrate({ mode: 'rollback' });
- const issuesAfter = await countIssues({ state: 'open' });
-
- expect(issuesAfter).toBeLessThan(issuesBefore);
- // Rolled-back issues are closed, not deleted
- });
-
- it('handles rate limit gracefully', async () => {
- mockGitHub.createIssue.rejects({ status: 429, message: 'Rate limit exceeded' });
-
- const result = await migrate({ mode: 'execute', halt_on_critical_error: false });
-
- expect(result.rateLimitErrors).toBeGreaterThan(0);
- expect(result.savedState).toBeTruthy(); // State saved before halting
- });
-});
-```
-
----
-
-## Failure Recovery Procedures
-
-### Scenario 1: Migration Fails Halfway
-
-```bash
-# Migration was running, crashed/halted at story 15/47
-
-# Check state file
-cat _bmad-output/migration-state.yaml
-# Shows: last_completed: "2-15-profile"
-
-# Resume migration
-/migrate-to-github mode=execute
-
-β "Previous migration detected"
-β "15 stories already migrated"
-β "Resume from story 2-16? (yes)"
-β Continues from story 16-47
-β Creates 32 new issues
-β Final: 47 total migrated β
-```
-
-### Scenario 2: Created Issues but Verification Failed
-
-```bash
-# Migration created issues but verification warnings
-
-# Run verify mode
-/migrate-to-github mode=verify
-
-β Checks all 47 stories
-β Reads each issue from GitHub
-β Compares to local files
-β Reports:
- "43 verified correct β
"
- "4 have warnings β οΈ"
- - Story 2-5: Label missing "complexity:standard"
- - Story 2-10: Title doesn't match local file
- - Story 2-18: Milestone not set
- - Story 2-23: Acceptance Criteria count mismatch
-
-# Fix issues
-/migrate-to-github mode=execute update_existing=true filter_by_status=warning
-
-β Re-migrates only the 4 with warnings
-β Verification: "4/4 now verified correct β
"
-```
-
-### Scenario 3: Wrong Repository - Need to Rollback
-
-```bash
-# Oops - migrated to wrong repo!
-
-# Check what was created
-cat _bmad-output/migration-rollback-*.yaml
-# Shows: 47 issues created in wrong-repo
-
-# Rollback
-/migrate-to-github mode=rollback
-
-β "Rollback manifest found: 47 issues"
-β Type "DELETE ALL ISSUES" to confirm
-β Closes all 47 issues
-β Adds "migrated:rolled-back" label
-β "Rollback complete β
"
-
-# Now migrate to correct repo
-/migrate-to-github mode=execute github_owner=jschulte github_repo=correct-repo
-```
-
-### Scenario 4: Network Failure Mid-Migration
-
-```bash
-# Migration running, network drops at story 23/47
-
-# Automatic behavior:
-β Story 23 fails to create (network timeout)
-β Retry #1 after 1s: Still fails
-β Retry #2 after 3s: Still fails
-β Retry #3 after 9s: Still fails
-β "CRITICAL: Cannot create issue for story 2-23 after 3 retries"
-β Saves state (22 stories migrated)
-β HALTS
-
-# You see:
-"Migration halted at story 2-23 due to network error"
-"State saved: 22 stories successfully migrated"
-"Resume when network restored: /migrate-to-github mode=execute"
-
-# After network restored:
-/migrate-to-github mode=execute
-
-β "Resuming from story 2-23"
-β Continues 23-47
-β "Migration complete: 47/47 migrated β
"
-```
-
----
-
-## Data Integrity Safeguards
-
-### Safeguard #1: GitHub is Append-Only
-
-**Design:** Migration never deletes data, only creates/updates.
-
-- Create: Safe (adds new issue)
-- Update: Safe (modifies existing)
-- Delete: Only in explicit rollback mode
-
-**Result:** Cannot accidentally lose data during migration.
-
-### Safeguard #2: Local Files Untouched
-
-**Design:** Migration reads local files but NEVER modifies them.
-
-**Guarantee:**
-```javascript
-// Migration code
-const story = fs.readFileSync(storyFile, 'utf-8'); // READ ONLY
-
-// β This never happens:
-// fs.writeFileSync(storyFile, modified); // FORBIDDEN
-```
-
-**Result:** If migration fails, local files are unchanged. Can retry safely.
-
-### Safeguard #3: Duplicate Detection
-
-**Design:** Check for existing issues before creating.
-
-```javascript
-// Before creating
-const existing = await searchIssues({
- query: `repo:${owner}/${repo} label:story:${storyKey}`
-});
-
-if (existing.length > 1) {
- throw new Error(`
-DUPLICATE DETECTED: Found ${existing.length} issues for story:${storyKey}
-
-This should never happen. Possible causes:
-- Previous migration created duplicates
-- Manual issue creation
-- Label typo
-
-Issues found:
-${existing.map(i => ` - Issue #${i.number}: ${i.title}`).join('\n')}
-
-HALTING - resolve duplicates manually before continuing
- `);
-}
-```
-
-**Result:** Cannot create duplicates even if run multiple times.
-
-### Safeguard #4: State File Atomic Writes
-
-**Design:** State file uses atomic write pattern (tmp + rename).
-
-```javascript
-async function saveStateSafely(state, statePath) {
- const tmpPath = `${statePath}.tmp`;
-
- // 1. Write to temp file
- fs.writeFileSync(tmpPath, yaml.stringify(state));
-
- // 2. Verify temp file written correctly
- const readBack = yaml.parse(fs.readFileSync(tmpPath));
- assert.deepEqual(readBack, state, 'State file corruption detected');
-
- // 3. Atomic rename (POSIX guarantee)
- fs.renameSync(tmpPath, statePath);
-
- // State is now safely written - crash after this point is safe
-}
-```
-
-**Result:** State file is never corrupted, even if process crashes during write.
-
----
-
-## Monitoring & Observability
-
-### Real-Time Progress
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β‘ MIGRATION PROGRESS (Live)
-βββββββββββββββββββββββββββββββββββββββββββ
-Migrated: 15/47 (32%)
-Created: 12 issues
-Updated: 3 issues
-Failed: 0
-
-Current: Story 2-16 (creating...)
-Last success: Story 2-15 (2s ago)
-
-Rate: 1.2 stories/min
-ETA: 26 minutes remaining
-
-API calls used: 45/5000 (1%)
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-### Detailed Logging
-
-```yaml
-# migration-log-2026-01-07T15-30-00.log
-[15:30:00] Migration started (mode: execute)
-[15:30:05] Pre-flight checks passed
-[15:30:15] Story 2-1: Created Issue #101 (verified)
-[15:30:32] Story 2-2: Created Issue #102 (verified)
-[15:30:45] Story 2-3: Already exists Issue #103 (updated)
-[15:31:02] Story 2-4: CREATE FAILED (attempt 1/3) - Network timeout
-[15:31:03] Story 2-4: Retry 1 after 1000ms
-[15:31:05] Story 2-4: Created Issue #104 (verified) β
-[15:31:20] Story 2-5: Created Issue #105 (verified)
-# ... continues
-[15:55:43] Migration complete: 47/47 success (0 failures)
-[15:55:44] State saved: migration-state.yaml
-[15:55:45] Rollback manifest: migration-rollback-2026-01-07T15-30-00.yaml
-[15:55:46] Report generated: migration-report-2026-01-07T15-30-00.md
-```
-
----
-
-## Rate Limit Management
-
-### GitHub API Rate Limits
-
-**Authenticated:** 5000 requests/hour
-**Per migration:** ~3-4 API calls per story
-
-**For 47 stories:**
-- Search existing: 47 calls
-- Create issues: ~35 calls
-- Verify: 35 calls
-- Labels/milestones: ~20 calls
-- **Total:** ~140 calls
-- **Remaining:** 4860/5000 (97% remaining)
-
-**Safe thresholds:**
-- <500 stories: Single migration run
-- 500-1000 stories: Split into 2 batches
-- >1000 stories: Use epic-based filtering
-
-### Rate Limit Exhaustion Handling
-
-```javascript
-async function apiCallWithRateLimitCheck(operation) {
- try {
- return await operation();
- } catch (error) {
- if (error.status === 429) { // Rate limit exceeded
- const resetTime = error.response.headers['x-ratelimit-reset'];
- const waitSeconds = resetTime - Math.floor(Date.now() / 1000);
-
- console.warn(`
-β οΈ Rate limit exceeded
-Reset in: ${waitSeconds} seconds
-
-Options:
-[W] Wait (pause migration until rate limit resets)
-[S] Stop (save state and resume later)
-
-Choice:
- `);
-
- if (choice === 'W') {
- console.log(`Waiting ${waitSeconds}s for rate limit reset...`);
- await sleep(waitSeconds * 1000);
- return await operation(); // Retry after rate limit resets
- } else {
- // Save state and halt
- await saveState(migrationState);
- throw new Error('HALT: Rate limit exceeded, resume later');
- }
- }
-
- throw error; // Other error, propagate
- }
-}
-```
-
----
-
-## Guarantees Summary
-
-| Guarantee | Mechanism | Failure Mode | Recovery |
-|-----------|-----------|--------------|----------|
-| Idempotent | Pre-check existing issues | Run twice β duplicates? | β Prevented by duplicate detection |
-| Atomic | Transaction per story | Create succeeds, labels fail? | β Prevented by rollback on error |
-| Verified | Read-back after write | Write succeeds but wrong data? | β Detected immediately, retried |
-| Resumable | State file after each story | Crash mid-migration? | β
Resume from last completed |
-| Reversible | Rollback manifest | Wrong repo migrated? | β
Rollback closes all issues |
-| Previewed | Dry-run mode | Unsure what will happen? | β
Preview before executing |
-| Resilient | Exponential backoff | Network blip? | β
Auto-retry 3x before failing |
-| Fail-safe | Halt on critical error | GitHub API down? | β
Saves state, can resume |
-
-**Result:** 100% reliability through defense-in-depth strategy.
-
----
-
-## Migration Checklist
-
-**Before running migration:**
-- [ ] Run `/migrate-to-github mode=dry-run` to preview
-- [ ] Verify repository name is correct
-- [ ] Back up sprint-status.yaml (just in case)
-- [ ] Verify GitHub token has write permissions
-- [ ] Check rate limit: <1000 stories OK for single run
-
-**During migration:**
-- [ ] Monitor progress output
-- [ ] Watch for warnings or retries
-- [ ] Note any failed stories
-
-**After migration:**
-- [ ] Run `/migrate-to-github mode=verify`
-- [ ] Review migration report
-- [ ] Spot-check 3-5 created issues in GitHub UI
-- [ ] Save rollback manifest (in case need to undo)
-- [ ] Update workflow configs: `github_sync_enabled: true`
-
----
-
-**Reliability Score: 10/10** β
-
-Every failure mode has a recovery path. Every write is verified. Every operation is resumable.
diff --git a/src/modules/bmm/workflows/4-implementation/migrate-to-github/workflow.md b/src/modules/bmm/workflows/4-implementation/migrate-to-github/workflow.md
deleted file mode 100644
index 6d16f06d..00000000
--- a/src/modules/bmm/workflows/4-implementation/migrate-to-github/workflow.md
+++ /dev/null
@@ -1,279 +0,0 @@
-# Migrate to GitHub v3.0 - Production-Grade Story Migration
-
-
-Migrate BMAD stories to GitHub Issues with full safety guarantees.
-Idempotent, atomic, verified, resumable, and reversible.
-
-
-
-**Reliability First, Data Integrity Over Speed**
-
-- Idempotent: Can re-run safely (checks for duplicates)
-- Atomic: Each story fully succeeds or rolls back
-- Verified: Reads back each created issue
-- Resumable: Saves state after each story
-- Reversible: Creates rollback manifest
-
-
-
-name: migrate-to-github
-version: 3.0.0
-
-modes:
- dry-run: {description: "Preview only, no changes", default: true}
- execute: {description: "Actually create issues"}
- verify: {description: "Double-check migration accuracy"}
- rollback: {description: "Close migrated issues"}
-
-defaults:
- update_existing: false
- halt_on_critical_error: true
- save_state_after_each: true
- max_retries: 3
- retry_backoff_ms: [1000, 3000, 10000]
-
-labels:
- - "type:story"
- - "story:{{story_key}}"
- - "status:{{status}}"
- - "epic:{{epic_number}}"
- - "complexity:{{complexity}}"
-
-
-
-@patterns/hospital-grade.md
-
-
-
-
-
-**Verify all prerequisites before ANY operations**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π‘οΈ PRE-FLIGHT SAFETY CHECKS
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**1. Verify GitHub MCP access:**
-```
-Call: mcp__github__get_me()
-If fails: HALT - Cannot proceed without GitHub API access
-```
-
-**2. Verify repository access:**
-```
-Call: mcp__github__list_issues(owner, repo, per_page=1)
-If fails: HALT - Repository not accessible
-```
-
-**3. Verify local files exist:**
-```bash
-[ -f "docs/sprint-artifacts/sprint-status.yaml" ] || { echo "HALT"; exit 1; }
-```
-
-**4. Check for existing migration:**
-- If state file exists: offer Resume/Fresh/View/Delete
-- If resuming: load already-migrated stories, filter from queue
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
PRE-FLIGHT CHECKS PASSED
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Preview migration plan without making changes**
-
-For each story:
-1. Search GitHub for existing issue with label `story:{{story_key}}`
-2. If exists: mark as "Would UPDATE" or "Would SKIP"
-3. If not exists: mark as "Would CREATE"
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π DRY-RUN SUMMARY
-βββββββββββββββββββββββββββββββββββββββββββ
-Would CREATE: {{create_count}} new issues
-Would UPDATE: {{update_count}} existing issues
-Would SKIP: {{skip_count}}
-
-Estimated API Calls: ~{{total_calls}}
-Rate Limit Impact: Safe (< 1000 calls)
-
-β οΈ This was a DRY-RUN. No issues created.
-To execute: /migrate-to-github mode=execute
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Perform migration with atomic operations**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β‘ EXECUTE MODE
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Final confirmation:**
-```
-Type "I understand and want to proceed" to continue:
-```
-
-Initialize migration state and rollback manifest.
-
-For each story:
-
-**1. Check if exists (idempotent):**
-```
-Search: label:story:{{story_key}}
-If exists AND update_existing=false: SKIP
-```
-
-**2. Generate issue body:**
-```markdown
-**Story File:** [{{story_key}}.md](path)
-**Epic:** {{epic_number}}
-
-## Business Context
-{{parsed.businessContext}}
-
-## Acceptance Criteria
-{{#each ac}}
-- [ ] {{this}}
-{{/each}}
-
-## Tasks
-{{#each tasks}}
-- [ ] {{this}}
-{{/each}}
-```
-
-**3. Create/update with retry and verification:**
-```
-attempt = 0
-WHILE attempt < max_retries:
- TRY:
- result = mcp__github__issue_write(create/update)
- sleep 2 seconds # GitHub eventual consistency
-
- verification = mcp__github__issue_read(issue_number)
- IF verification.title != expected:
- THROW "Verification failed"
-
- SUCCESS - add to rollback manifest
- BREAK
-
- CATCH:
- attempt++
- IF attempt < max_retries:
- sleep backoff_ms[attempt]
- ELSE:
- FAIL - add to issues_failed
-```
-
-**4. Save state after each story**
-
-**5. Progress updates every 10 stories:**
-```
-π Progress: {{index}}/{{total}}
- Created: {{created}}, Updated: {{updated}}, Failed: {{failed}}
-```
-
-
-
-**Double-check migration accuracy**
-
-For each migrated story:
-1. Fetch issue from GitHub
-2. Verify title, labels, AC count match
-3. Report mismatches
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π VERIFICATION RESULTS
-βββββββββββββββββββββββββββββββββββββββββββ
-Verified Correct: {{verified}}
-Warnings: {{warnings}}
-Failures: {{failures}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Close migrated issues (GitHub API doesn't support delete)**
-
-Load rollback manifest. For each created issue:
-```
-mcp__github__issue_write({
- issue_number: {{number}},
- state: "closed",
- labels: ["migrated:rolled-back"],
- state_reason: "not_planned"
-})
-
-mcp__github__add_issue_comment({
- body: "Issue closed - migration was rolled back."
-})
-```
-
-
-
-**Create comprehensive migration report**
-
-Write to: `docs/sprint-artifacts/github-migration-{{timestamp}}.md`
-
-Include:
-- Executive summary
-- Created/updated/failed issues
-- GitHub URLs for each issue
-- Rollback instructions
-- Next steps
-
-
-
-**Display completion status**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
MIGRATION COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-Total: {{total}} stories
-Created: {{created}}
-Updated: {{updated}}
-Failed: {{failed}}
-Success Rate: {{success_pct}}%
-
-View in GitHub:
-https://github.com/{{owner}}/{{repo}}/issues?q=label:type:story
-
-Rollback Manifest: {{rollback_path}}
-State File: {{state_path}}
-
-Next Steps:
-1. Verify: /migrate-to-github mode=verify
-2. Enable GitHub sync in workflow.yaml
-3. Share Issues URL with Product Owner
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-
-
-**GitHub MCP unavailable:** HALT - Cannot proceed.
-**Repository not accessible:** HALT - Check permissions.
-**Issue create fails:** Retry with backoff, then fail story.
-**Verification fails:** Log warning, continue.
-**All stories fail:** Report systemic issue, HALT.
-
-
-
-- [ ] Pre-flight checks passed
-- [ ] All stories processed
-- [ ] Issues verified after creation
-- [ ] State and rollback manifest saved
-- [ ] Report generated
-
diff --git a/src/modules/bmm/workflows/4-implementation/migrate-to-github/workflow.yaml b/src/modules/bmm/workflows/4-implementation/migrate-to-github/workflow.yaml
deleted file mode 100644
index e7b8ac7d..00000000
--- a/src/modules/bmm/workflows/4-implementation/migrate-to-github/workflow.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-name: migrate-to-github
-description: "Production-grade migration of BMAD stories from local files to GitHub Issues with comprehensive reliability guarantees"
-author: "BMad"
-version: "1.0.0"
-
-# Critical variables
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{output_folder}/sprint-artifacts"
-sprint_status: "{output_folder}/sprint-status.yaml"
-
-# GitHub configuration
-github:
- owner: "{github_owner}" # Required: GitHub username or org
- repo: "{github_repo}" # Required: Repository name
- # Token comes from MCP GitHub server config (already authenticated)
-
-# Migration mode
-mode: "dry-run" # "dry-run" | "execute" | "verify" | "rollback"
-# SAFETY: Defaults to dry-run - must explicitly choose execute
-
-# Migration scope
-scope:
- include_epics: true # Create milestone for each epic
- include_stories: true # Create issue for each story
- filter_by_epic: null # Optional: Only migrate Epic N (e.g., "2")
- filter_by_status: null # Optional: Only migrate stories with status (e.g., "backlog")
-
-# Migration strategy
-strategy:
- check_existing: true # Search for existing issues before creating (prevents duplicates)
- update_existing: true # If issue exists, update it (false = skip)
- create_missing: true # Create issues for stories without issues
-
- # Label strategy
- label_prefix: "story:" # Prefix for story labels (e.g., "story:2-5-auth")
- use_type_labels: true # Add "type:story", "type:epic"
- use_status_labels: true # Add "status:backlog", "status:in-progress", etc.
- use_complexity_labels: true # Add "complexity:micro", etc.
- use_epic_labels: true # Add "epic:2", "epic:3", etc.
-
-# Reliability settings
-reliability:
- verify_after_create: true # Read back issue to verify creation succeeded
- retry_on_failure: true # Retry failed operations
- max_retries: 3
- retry_backoff_ms: [1000, 3000, 9000] # Exponential backoff
- halt_on_critical_error: true # Stop migration if critical error occurs
- save_state_after_each: true # Save progress after each story (crash-safe)
- create_rollback_manifest: true # Track created issues for rollback
-
-# State tracking
-state_file: "{output_folder}/migration-state.yaml"
-# Tracks: stories_migrated, issues_created, last_story, can_resume
-
-# Output
-output:
- create_migration_report: true
- report_path: "{output_folder}/migration-report-{timestamp}.md"
- log_level: "verbose" # "quiet" | "normal" | "verbose"
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/multi-agent-review/workflow.md b/src/modules/bmm/workflows/4-implementation/multi-agent-review/workflow.md
deleted file mode 100644
index 2d32d036..00000000
--- a/src/modules/bmm/workflows/4-implementation/multi-agent-review/workflow.md
+++ /dev/null
@@ -1,197 +0,0 @@
-# Multi-Agent Code Review v3.0
-
-
-Perform unbiased code review using multiple specialized AI agents in fresh context.
-Agent count scales with story complexity. Independent perspective prevents bias.
-
-
-
-**Fresh Context, Multiple Perspectives**
-
-- Review happens in NEW session (not the agent that wrote the code)
-- Prevents bias from implementation decisions
-- Agent count determined by complexity, agents chosen by code analysis
-- Smart selection: touching auth code β auth-security agent, etc.
-
-
-
-name: multi-agent-review
-version: 3.0.0
-
-agent_selection:
- micro: {count: 2, agents: [security, code_quality]}
- standard: {count: 4, agents: [security, code_quality, architecture, testing]}
- complex: {count: 6, agents: [security, code_quality, architecture, testing, performance, domain_expert]}
-
-available_agents:
- security: "Identifies vulnerabilities and security risks"
- code_quality: "Reviews style, maintainability, best practices"
- architecture: "Reviews system design, patterns, structure"
- testing: "Evaluates test coverage and quality"
- performance: "Analyzes efficiency and optimization"
- domain_expert: "Validates business logic and domain constraints"
-
-
-
-@patterns/security-checklist.md
-@patterns/hospital-grade.md
-@patterns/agent-completion.md
-
-
-
-
-
-**Select agents based on complexity**
-
-```
-If complexity_level == "micro":
- agents = ["security", "code_quality"]
- Display: π MICRO Review (2 agents)
-
-Else if complexity_level == "standard":
- agents = ["security", "code_quality", "architecture", "testing"]
- Display: π STANDARD Review (4 agents)
-
-Else if complexity_level == "complex":
- agents = ALL 6 agents
- Display: π¬ COMPLEX Review (6 agents)
-```
-
-
-
-**Load story file and understand requirements**
-
-```bash
-STORY_FILE="{{story_file}}"
-[ -f "$STORY_FILE" ] || { echo "β Story file not found"; exit 1; }
-```
-
-Use Read tool on story file. Extract:
-- What was supposed to be implemented
-- Acceptance criteria
-- Tasks and subtasks
-- File list
-
-
-
-**Spawn review agents in fresh context**
-
-For each agent in selected agents, spawn Task agent:
-
-```
-Task({
- subagent_type: "general-purpose",
- description: "{{agent_type}} review for {{story_key}}",
- prompt: `
-You are the {{AGENT_TYPE}} reviewer for story {{story_key}}.
-
-
-@patterns/security-checklist.md
-@patterns/hospital-grade.md
-
-
-
-Story: [inline story content]
-Changed files: [git diff output]
-
-
-
-Review from your {{agent_type}} perspective. Find issues, be thorough.
-
-
-
-- [ ] All relevant files reviewed
-- [ ] Issues categorized by severity (CRITICAL/HIGH/MEDIUM/LOW)
-- [ ] Return ## AGENT COMPLETE with findings
-
-`
-})
-```
-
-Wait for all agents to complete. Aggregate findings.
-
-
-
-**Collect and categorize all findings**
-
-Merge findings from all agents:
-- CRITICAL: Security vulnerabilities, data loss risks
-- HIGH: Production bugs, logic errors
-- MEDIUM: Technical debt, maintainability
-- LOW: Nice-to-have improvements
-
-
-
-**Display review summary**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π€ MULTI-AGENT CODE REVIEW COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-
-Agents Used: {{agent_count}}
-- Security Agent
-- Code Quality Agent
-[...]
-
-Findings:
-- π΄ CRITICAL: {{critical_count}}
-- π HIGH: {{high_count}}
-- π‘ MEDIUM: {{medium_count}}
-- π΅ LOW: {{low_count}}
-```
-
-For each finding, display:
-- Severity and title
-- Agent that found it
-- Location (file:line)
-- Description and recommendation
-
-
-
-**Suggest next steps based on findings**
-
-```
-π RECOMMENDED NEXT STEPS:
-
-If CRITICAL findings exist:
- β οΈ MUST FIX before proceeding
- - Address all critical security/correctness issues
- - Re-run review after fixes
-
-If only HIGH/MEDIUM findings:
- β
Story may proceed
- - Consider addressing high-priority items
- - Create follow-up tasks for medium items
-
-If only LOW/INFO findings:
- β
Code quality looks good
- - Optional: Address style/optimization suggestions
-```
-
-
-
-
-
-**When to use:**
-- Complex stories (β₯16 tasks or high-risk keywords)
-- Security-sensitive code
-- Significant architectural changes
-- When single-agent review was inconclusive
-
-**When NOT to use:**
-- Micro stories (β€3 tasks)
-- Standard stories with simple changes
-- Stories that passed adversarial review cleanly
-
-
-
-**Review agent fails:** Fall back to adversarial code review.
-**API error:** Log failure, continue pipeline with warning.
-
-
-
-- [ ] All selected agents completed review
-- [ ] Findings aggregated and categorized
-- [ ] Report displayed with recommendations
-
diff --git a/src/modules/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml b/src/modules/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml
deleted file mode 100644
index d372490e..00000000
--- a/src/modules/bmm/workflows/4-implementation/multi-agent-review/workflow.yaml
+++ /dev/null
@@ -1,57 +0,0 @@
-name: multi-agent-review
-description: "Smart multi-agent code review with dynamic agent selection based on changed code. Uses multiple specialized AI agents to review different aspects: architecture, security, performance, testing, and code quality."
-author: "BMad"
-version: "1.0.0"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{config_source}:sprint_artifacts"
-communication_language: "{config_source}:communication_language"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/multi-agent-review"
-instructions: "{installed_path}/instructions.md"
-
-# Input parameters
-story_id: "{story_id}" # Required
-story_file: "{sprint_artifacts}/{story_id}.md" # CANONICAL FORMAT: epic-story-slug.md (NO "story-" prefix)
-base_branch: "main" # Optional: branch to compare against
-complexity_level: "standard" # micro | standard | complex (passed from super-dev-pipeline)
-
-# Complexity-based agent selection (NEW v1.0.0)
-# Cost-effective review depth based on story RISK and technical complexity
-# Complexity determined by batch-super-dev based on: risk keywords, architectural impact, security concerns
-complexity_routing:
- micro:
- agent_count: 2
- agents: ["security", "code_quality"]
- description: "Quick sanity check for low-risk stories"
- examples: ["UI tweaks", "text changes", "simple CRUD", "documentation"]
- cost_multiplier: 1x
-
- standard:
- agent_count: 4
- agents: ["security", "code_quality", "architecture", "testing"]
- description: "Balanced multi-perspective review for medium-risk changes"
- examples: ["API endpoints", "business logic", "data validation", "component refactors"]
- cost_multiplier: 2x
-
- complex:
- agent_count: 6
- agents: ["security", "code_quality", "architecture", "testing", "performance", "domain_expert"]
- description: "Comprehensive review for high-risk/high-complexity changes"
- examples: ["auth/security", "payments", "data migration", "architecture changes", "performance-critical", "complex algorithms"]
- cost_multiplier: 3x
-
-# Review settings
-review_settings:
- fresh_context_required: true # CRITICAL: Review in new session for unbiased perspective
- agents_to_use: "complexity_based" # complexity_based | all | custom
- generate_report: true
- auto_fix_suggested: false # Set to true to automatically apply suggested fixes
-
-# Output
-review_report: "{sprint_artifacts}/review-{story_id}-multi-agent.md"
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/push-all/workflow.md b/src/modules/bmm/workflows/4-implementation/push-all/workflow.md
deleted file mode 100644
index 44637b79..00000000
--- a/src/modules/bmm/workflows/4-implementation/push-all/workflow.md
+++ /dev/null
@@ -1,366 +0,0 @@
-# Push All v3.0 - Safe Git Staging, Commit, and Push
-
-
-Safely stage, commit, and push changes with comprehensive validation.
-Detects secrets, large files, build artifacts. Handles push failures gracefully.
-Supports targeted mode for specific files (parallel agent coordination).
-
-
-
-**Safe by Default, No Surprises**
-
-- Validate BEFORE committing (secrets, size, artifacts)
-- Show exactly what will be committed
-- Handle push failures with recovery options
-- Never force push without explicit confirmation
-
-
-
-name: push-all
-version: 3.0.0
-
-modes:
- full: "Stage all changes (default)"
- targeted: "Only stage specified files"
-
-defaults:
- max_file_size_kb: 500
- check_secrets: true
- check_build_artifacts: true
- auto_push: false
- allow_force_push: false
-
-secret_patterns:
- - "AKIA[0-9A-Z]{16}" # AWS Access Key
- - "sk-[a-zA-Z0-9]{48}" # OpenAI Key
- - "ghp_[a-zA-Z0-9]{36}" # GitHub Personal Token
- - "xox[baprs]-[a-zA-Z0-9-]+" # Slack Token
- - "-----BEGIN.*PRIVATE KEY" # Private Keys
- - "password\\s*=\\s*['\"][^'\"]{8,}" # Hardcoded passwords
-
-build_artifacts:
- - "node_modules/"
- - "dist/"
- - "build/"
- - ".next/"
- - "*.min.js"
- - "*.bundle.js"
-
-
-
-@patterns/hospital-grade.md
-
-
-
-
-
-**Verify git repository state**
-
-```bash
-# Check we're in a git repo
-git rev-parse --is-inside-work-tree || { echo "β Not a git repository"; exit 1; }
-
-# Get current branch
-git branch --show-current
-
-# Check for uncommitted changes
-git status --porcelain
-```
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π¦ PUSH-ALL: {{mode}} mode
-βββββββββββββββββββββββββββββββββββββββββββ
-Branch: {{branch}}
-Mode: {{mode}}
-{{#if targeted}}Files: {{file_list}}{{/if}}
-```
-
-**If no changes:**
-```
-β
Working directory clean - nothing to commit
-```
-Exit successfully.
-
-
-
-**Identify files to be staged**
-
-**Full mode:**
-```bash
-git status --porcelain | awk '{print $2}'
-```
-
-**Targeted mode:**
-Only include files specified in `target_files` parameter.
-
-**Categorize changes:**
-- New files (A)
-- Modified files (M)
-- Deleted files (D)
-- Renamed files (R)
-
-
-
-**Scan for secrets in staged content**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π SECRET SCAN
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-For each file to be staged:
-```bash
-# Check for secret patterns
-Grep: "{{pattern}}" {{file}}
-```
-
-**If secrets found:**
-```
-β POTENTIAL SECRETS DETECTED
-
-{{#each secrets}}
-File: {{file}}
-Line {{line}}: {{preview}} (pattern: {{pattern_name}})
-{{/each}}
-
-β οΈ BLOCKING COMMIT
-Remove secrets before proceeding.
-
-Options:
-[I] Ignore (I know what I'm doing)
-[E] Exclude these files
-[H] Halt
-```
-
-**If [I] selected:** Require explicit confirmation text.
-
-
-
-**Check for oversized files**
-
-```bash
-# Find files larger than max_file_size_kb
-find . -type f -size +{{max_file_size}}k -not -path "./.git/*"
-```
-
-**If large files found:**
-```
-β οΈ LARGE FILES DETECTED
-
-{{#each large_files}}
-- {{file}} ({{size_kb}}KB)
-{{/each}}
-
-Options:
-[I] Include anyway
-[E] Exclude large files
-[H] Halt
-```
-
-
-
-**Check for build artifacts**
-
-```bash
-# Check if any staged files match artifact patterns
-git status --porcelain | grep -E "{{artifact_pattern}}"
-```
-
-**If artifacts found:**
-```
-β οΈ BUILD ARTIFACTS DETECTED
-
-{{#each artifacts}}
-- {{file}}
-{{/each}}
-
-These should typically be in .gitignore.
-
-Options:
-[E] Exclude artifacts (recommended)
-[I] Include anyway
-[H] Halt
-```
-
-
-
-**Show what will be committed**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π COMMIT PREVIEW
-βββββββββββββββββββββββββββββββββββββββββββ
-Files to commit: {{count}}
-
-Added ({{added_count}}):
-{{#each added}}
- + {{file}}
-{{/each}}
-
-Modified ({{modified_count}}):
-{{#each modified}}
- M {{file}}
-{{/each}}
-
-Deleted ({{deleted_count}}):
-{{#each deleted}}
- - {{file}}
-{{/each}}
-
-{{#if excluded}}
-Excluded: {{excluded_count}} files
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Generate or request commit message**
-
-**If commit_message provided:** Use it.
-
-**Otherwise, generate from changes:**
-```
-Analyzing changes to generate commit message...
-
-Changes detected:
-- {{summary_of_changes}}
-
-Suggested message:
-"{{generated_message}}"
-
-[Y] Use this message
-[E] Edit message
-[C] Custom message
-```
-
-If user selects [C] or [E], prompt for message.
-
-
-
-**Stage and commit changes**
-
-```bash
-# Stage files (targeted or full)
-{{#if targeted}}
-git add {{#each target_files}}{{this}} {{/each}}
-{{else}}
-git add -A
-{{/if}}
-
-# Commit with message
-git commit -m "{{commit_message}}"
-```
-
-**Verify commit:**
-```bash
-# Check commit was created
-git log -1 --oneline
-```
-
-```
-β
Commit created: {{commit_hash}}
-```
-
-
-
-**Push to remote with error handling**
-
-```bash
-git push origin {{branch}}
-```
-
-**If push fails:**
-
-**Case: Behind remote**
-```
-β οΈ Push rejected - branch is behind remote
-
-Options:
-[P] Pull and retry (git pull --rebase)
-[F] Force push (DESTRUCTIVE - overwrites remote)
-[H] Halt (commit preserved locally)
-```
-
-**Case: No upstream**
-```
-β οΈ No upstream branch
-
-Setting upstream and pushing:
-git push -u origin {{branch}}
-```
-
-**Case: Auth failure**
-```
-β Authentication failed
-
-Check:
-1. SSH key configured?
-2. Token valid?
-3. Repository access?
-```
-
-**Case: Protected branch**
-```
-β Cannot push to protected branch
-
-Use pull request workflow instead:
-gh pr create --title "{{commit_message}}"
-```
-
-
-
-**Display completion status**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
PUSH-ALL COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-Branch: {{branch}}
-Commit: {{commit_hash}}
-Files: {{file_count}}
-{{#if pushed}}
-Remote: β
Pushed to origin/{{branch}}
-{{else}}
-Remote: βΈοΈ Not pushed (commit preserved locally)
-{{/if}}
-
-{{#if excluded_count > 0}}
-Excluded: {{excluded_count}} files (secrets/artifacts/size)
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-
-
-```bash
-# Stage all, commit, and push
-/push-all commit_message="feat: add user authentication" auto_push=true
-
-# Targeted mode - only specific files
-/push-all mode=targeted target_files="src/auth.ts,src/auth.test.ts" commit_message="fix: auth bug"
-
-# Dry run - see what would be committed
-/push-all auto_push=false
-```
-
-
-
-**Secrets detected:** BLOCK commit, require explicit override.
-**Large files:** Warn, allow exclude or include.
-**Build artifacts:** Warn, recommend exclude.
-**Push rejected:** Offer pull/rebase, force push (with confirmation), or halt.
-**Auth failure:** Report, suggest troubleshooting.
-
-
-
-- [ ] Changes validated (secrets, size, artifacts)
-- [ ] Files staged correctly
-- [ ] Commit created with message
-- [ ] Push successful (if requested)
-- [ ] No unintended files included
-
diff --git a/src/modules/bmm/workflows/4-implementation/push-all/workflow.yaml b/src/modules/bmm/workflows/4-implementation/push-all/workflow.yaml
deleted file mode 100644
index 5875d911..00000000
--- a/src/modules/bmm/workflows/4-implementation/push-all/workflow.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: push-all
-description: "Stage changes, create commit with safety checks, and push to remote"
-author: "BMad"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-user_name: "{config_source}:user_name"
-communication_language: "{config_source}:communication_language"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/push-all"
-instructions: "{installed_path}/workflow.md"
-
-# Target files to commit (for parallel agent execution)
-# When empty/not provided: commits ALL changes (original behavior)
-# When provided: only commits the specified files (safe for parallel agents)
-target_files: "" # Space-separated list of file paths, or empty for all
-story_key: "" # Optional: story identifier for commit message context
-
-standalone: true
-
-web_bundle: false
diff --git a/src/modules/bmm/workflows/4-implementation/recover-sprint-status/workflow.md b/src/modules/bmm/workflows/4-implementation/recover-sprint-status/workflow.md
deleted file mode 100644
index 0b4c8017..00000000
--- a/src/modules/bmm/workflows/4-implementation/recover-sprint-status/workflow.md
+++ /dev/null
@@ -1,172 +0,0 @@
-# Recover Sprint Status v3.0
-
-
-Fix sprint-status.yaml when tracking has drifted. Analyzes multiple sources
-(story files, git commits, completion reports) to rebuild accurate status.
-
-
-
-**Multiple Evidence Sources, Conservative Updates**
-
-1. Story file quality (size, tasks, checkboxes)
-2. Explicit Status: fields in stories
-3. Git commits (last 30 days)
-4. Autonomous completion reports
-5. Task completion rate
-
-Trust explicit Status: fields highest. Require evidence for status changes.
-
-
-
-name: recover-sprint-status
-version: 3.0.0
-
-modes:
- dry-run: {description: "Analysis only, no changes", default: true}
- conservative: {description: "High confidence updates only"}
- aggressive: {description: "Medium+ confidence, infers from git"}
- interactive: {description: "Ask before each batch"}
-
-confidence_levels:
- very_high: {sources: [explicit_status, completion_report]}
- high: {sources: [3+ git_commits, 90% tasks_complete]}
- medium: {sources: [1-2 git_commits, 50-90% tasks_complete]}
- low: {sources: [no_status, no_commits, small_file]}
-
-
-
-@patterns/hospital-grade.md
-
-
-
-
-
-**Scan all evidence sources**
-
-```bash
-# Find story files
-SPRINT_ARTIFACTS="docs/sprint-artifacts"
-STORIES=$(ls $SPRINT_ARTIFACTS/*.md 2>/dev/null | grep -v "epic-")
-
-# Get recent git commits
-git log --oneline --since="30 days ago" > /tmp/recent_commits.txt
-```
-
-For each story:
-1. Read story file, extract Status: field if present
-2. Check file size (β₯10KB = properly detailed)
-3. Count tasks and checkbox completion
-4. Search git commits for story references
-5. Check for completion reports (.epic-*-completion-report.md)
-
-
-
-**Determine confidence level for each story**
-
-| Evidence | Confidence | Action |
-|----------|------------|--------|
-| Explicit Status: done | Very High | Trust it |
-| Completion report lists story | Very High | Mark done |
-| 3+ git commits + 90% checked | High | Mark done |
-| 1-2 commits OR 50-90% checked | Medium | Mark in-progress |
-| No commits, <50% checked | Low | Leave as-is |
-| File <10KB | Low | Downgrade if done |
-
-
-
-**Show recommendations without applying**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π RECOVERY ANALYSIS (Dry Run)
-βββββββββββββββββββββββββββββββββββββββββββ
-
-High Confidence Updates:
-- 2-5-auth: backlog β done (explicit Status:, 3 commits)
-- 2-6-profile: in-progress β done (completion report)
-
-Medium Confidence Updates:
-- 2-7-settings: backlog β in-progress (2 commits)
-
-Low Confidence (verify manually):
-- 2-8-dashboard: no Status:, no commits, <10KB file
-```
-
-Exit after preview. No changes made.
-
-
-
-**Apply only high/very-high confidence updates**
-
-For each high+ confidence story:
-1. Backup current sprint-status.yaml
-2. Use Edit tool to update status
-3. Log change
-
-```bash
-# Backup
-cp $SPRINT_STATUS .sprint-status-backups/sprint-status-recovery-$(date +%Y%m%d).yaml
-```
-
-Skip medium/low confidence stories.
-
-
-
-**Apply medium+ confidence updates**
-
-Includes:
-- Inferring from git commits (even 1 commit)
-- Using task completion rate
-- Pre-filling brownfield checkboxes
-
-```
-β οΈ AGGRESSIVE mode may make incorrect inferences.
- Review results carefully.
-```
-
-
-
-**Verify recovery worked**
-
-```bash
-./scripts/sync-sprint-status.sh --validate
-```
-
-Should show:
-- "β sprint-status.yaml is up to date!" (success)
-- OR discrepancy count (if issues remain)
-
-
-
-**Commit the recovery**
-
-Use Bash to commit:
-```bash
-git add docs/sprint-artifacts/sprint-status.yaml
-git add .sprint-status-backups/
-git commit -m "fix(tracking): Recover sprint-status.yaml - {{mode}} recovery"
-```
-
-
-
-
-
-**No changes detected:** sprint-status.yaml already accurate.
-**Low confidence on known-done stories:** Add Status: field manually, re-run.
-**Recovery marks incomplete as done:** Use conservative mode, verify manually.
-
-
-
-- [ ] Run validation: `./scripts/sync-sprint-status.sh --validate`
-- [ ] Review backup in `.sprint-status-backups/`
-- [ ] Spot-check 5-10 stories for accuracy
-- [ ] Commit changes
-- [ ] Document why drift occurred
-
-
-
-- [ ] All evidence sources analyzed
-- [ ] Changes applied based on confidence threshold
-- [ ] Validation passes
-- [ ] Backup created
-
diff --git a/src/modules/bmm/workflows/4-implementation/recover-sprint-status/workflow.yaml b/src/modules/bmm/workflows/4-implementation/recover-sprint-status/workflow.yaml
deleted file mode 100644
index 5ae5c8f8..00000000
--- a/src/modules/bmm/workflows/4-implementation/recover-sprint-status/workflow.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-# Sprint Status Recovery Workflow
-name: recover-sprint-status
-description: "Recover sprint-status.yaml when tracking has drifted. Analyzes story files, git commits, and autonomous reports to rebuild accurate status."
-author: "BMad"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-user_name: "{config_source}:user_name"
-communication_language: "{config_source}:communication_language"
-implementation_artifacts: "{config_source}:implementation_artifacts"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/recover-sprint-status"
-instructions: "{installed_path}/instructions.md"
-
-# Inputs
-variables:
- sprint_status_file: "{implementation_artifacts}/sprint-status.yaml"
- story_directory: "{implementation_artifacts}"
- recovery_mode: "interactive" # Options: interactive, conservative, aggressive
-
-# Recovery script location
-recovery_script: "{project-root}/scripts/recover-sprint-status.sh"
-
-# Standalone so IDE commands get generated
-standalone: true
-
-# No web bundle needed
-web_bundle: false
diff --git a/src/modules/bmm/workflows/4-implementation/revalidate-epic/workflow.md b/src/modules/bmm/workflows/4-implementation/revalidate-epic/workflow.md
deleted file mode 100644
index 0f2769b0..00000000
--- a/src/modules/bmm/workflows/4-implementation/revalidate-epic/workflow.md
+++ /dev/null
@@ -1,189 +0,0 @@
-# Revalidate Epic v3.0 - Batch Story Revalidation
-
-
-Batch revalidate all stories in an epic using parallel agents (semaphore pattern).
-Clears checkboxes, verifies against codebase, re-checks verified items.
-
-
-
-**Parallel Verification, Continuous Worker Pool**
-
-- Spawn up to N workers, refill as each completes
-- Each story gets fresh context verification
-- Aggregate results into epic-level health score
-- Optionally fill gaps found during verification
-
-
-
-name: revalidate-epic
-version: 3.0.0
-
-defaults:
- max_concurrent: 3
- fill_gaps: false
- continue_on_failure: true
- create_epic_report: true
- update_sprint_status: true
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-@revalidate-story/workflow.md
-
-
-
-
-
-**Find all stories for the epic**
-
-```bash
-EPIC_NUMBER="{{epic_number}}"
-[ -n "$EPIC_NUMBER" ] || { echo "ERROR: epic_number required"; exit 1; }
-
-# Filter stories from sprint-status.yaml
-grep "^${EPIC_NUMBER}-" docs/sprint-artifacts/sprint-status.yaml
-```
-
-Use Read tool on sprint-status.yaml. Filter stories starting with `{epic_number}-`.
-Exclude epics and retrospectives.
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π EPIC {{epic_number}} REVALIDATION
-βββββββββββββββββββββββββββββββββββββββββββ
-Stories Found: {{count}}
-Mode: {{fill_gaps ? "Verify & Fill Gaps" : "Verify Only"}}
-Max Concurrent: {{max_concurrent}} agents
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Use AskUserQuestion: Proceed with revalidation? (yes/no)
-
-
-
-**Initialize semaphore pattern for parallel revalidation**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π Starting Parallel Revalidation
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Initialize state:
-- story_queue = epic_stories
-- active_workers = {}
-- completed_stories = []
-- failed_stories = []
-
-Fill initial worker slots (up to max_concurrent):
-
-```
-Task({
- subagent_type: "general-purpose",
- description: "Revalidate story {{story_key}}",
- prompt: `
-Execute revalidate-story workflow for {{story_key}}.
-
-
-@revalidate-story/workflow.md
-
-
-Parameters:
-- story_file: {{story_file}}
-- fill_gaps: {{fill_gaps}}
-
-Return verification summary with verified_pct, gaps_found, gaps_filled.
-`,
- run_in_background: true
-})
-```
-
-
-
-**Keep workers running until all stories done**
-
-While active_workers > 0 OR stories remaining in queue:
-
-1. Poll for completed workers (non-blocking with TaskOutput)
-2. When worker completes:
- - Parse verification results
- - Add to completed_stories
- - If more stories in queue: spawn new worker in that slot
-3. Display progress every 30 seconds:
-
-```
-π Progress: {{completed}} completed, {{active}} active, {{queued}} queued
-```
-
-
-
-**Generate epic-level summary**
-
-Calculate totals across all stories:
-- epic_verified = sum of verified items
-- epic_partial = sum of partial items
-- epic_missing = sum of missing items
-- epic_verified_pct = (verified / total) Γ 100
-
-Group stories by health:
-- Complete (β₯95% verified)
-- Mostly Complete (80-94%)
-- Partial (50-79%)
-- Incomplete (<50%)
-
-
-
-**Show epic revalidation results**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π EPIC {{epic_number}} REVALIDATION SUMMARY
-βββββββββββββββββββββββββββββββββββββββββββ
-Total Stories: {{count}}
-Completed: {{completed_count}}
-Failed: {{failed_count}}
-
-Epic-Wide Verification:
-- β
Verified: {{verified}}/{{total}} ({{pct}}%)
-- πΆ Partial: {{partial}}/{{total}}
-- β Missing: {{missing}}/{{total}}
-
-Epic Health Score: {{epic_verified_pct}}/100
-
-{{#if pct >= 95}}
-β
Epic is COMPLETE and verified
-{{else if pct >= 80}}
-πΆ Epic is MOSTLY COMPLETE
-{{else if pct >= 50}}
-β οΈ Epic is PARTIALLY COMPLETE
-{{else}}
-β Epic is INCOMPLETE (major rework needed)
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Update sprint-status with revalidation results**
-
-Use Edit tool to add comment to epic entry:
-```
-epic-{{epic_number}}: done # Revalidated: {{pct}}% verified ({{timestamp}})
-```
-
-
-
-
-
-**Worker fails:** Log error, refill slot if continue_on_failure=true.
-**All stories fail:** Report systemic issue, halt batch.
-**Story file missing:** Skip with warning.
-
-
-
-- [ ] All epic stories processed
-- [ ] Results aggregated
-- [ ] Epic health score calculated
-- [ ] Sprint status updated (if enabled)
-
diff --git a/src/modules/bmm/workflows/4-implementation/revalidate-epic/workflow.yaml b/src/modules/bmm/workflows/4-implementation/revalidate-epic/workflow.yaml
deleted file mode 100644
index 38b7de23..00000000
--- a/src/modules/bmm/workflows/4-implementation/revalidate-epic/workflow.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-name: revalidate-epic
-description: "Batch revalidation of all stories in an epic. Clears checkboxes and re-verifies against codebase with semaphore pattern."
-author: "BMad"
-version: "1.0.0"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{output_folder}/sprint-artifacts"
-sprint_status: "{output_folder}/sprint-status.yaml"
-
-# Input parameters
-epic_number: "{epic_number}" # Required: Epic number (e.g., "2" for Epic 2)
-fill_gaps: false # Optional: Fill missing items after verification
-max_concurrent: 3 # Optional: Max concurrent revalidation agents (default: 3)
-
-# Verification settings (inherited by story revalidations)
-verification:
- verify_acceptance_criteria: true
- verify_tasks: true
- verify_definition_of_done: true
- check_for_stubs: true
- require_tests: true
-
-# Gap filling settings
-gap_filling:
- max_gaps_per_story: 10 # Safety limit per story
- require_confirmation_first_story: true # Ask on first story, then auto for rest
- run_tests_after_each: true
- commit_strategy: "per_gap" # "per_gap" | "per_story" | "all_at_once"
-
-# Execution settings
-execution:
- use_semaphore_pattern: true # Constant concurrency (not batch-and-wait)
- continue_on_failure: true # Keep processing if one story fails
- display_live_progress: true # Show progress updates every 30s
-
-# Output settings
-output:
- create_epic_report: true # Generate epic-level summary
- create_story_reports: true # Generate per-story reports
- update_sprint_status: true # Update progress in sprint-status.yaml
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/revalidate-story/workflow.md b/src/modules/bmm/workflows/4-implementation/revalidate-story/workflow.md
deleted file mode 100644
index 5e28a7ae..00000000
--- a/src/modules/bmm/workflows/4-implementation/revalidate-story/workflow.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# Revalidate Story v3.0 - Verify Checkboxes Against Codebase
-
-
-Clear all checkboxes and re-verify each item against actual codebase reality.
-Detects over-reported completion and identifies real gaps.
-Optionally fills gaps by implementing missing items.
-
-
-
-**Trust But Verify, Evidence Required**
-
-1. Clear all checkboxes (fresh start)
-2. For each AC/Task/DoD: search codebase for evidence
-3. Only re-check if evidence found AND not a stub
-4. Report accuracy: was completion over-reported or under-reported?
-
-
-
-name: revalidate-story
-version: 3.0.0
-
-defaults:
- fill_gaps: false
- max_gaps_to_fill: 10
- commit_strategy: "all_at_once" # or "per_gap"
- create_report: true
- update_sprint_status: true
-
-verification_status:
- verified: {checkbox: "[x]", evidence: "found, not stub, tests exist"}
- partial: {checkbox: "[~]", evidence: "partial implementation or missing tests"}
- missing: {checkbox: "[ ]", evidence: "not found in codebase"}
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-
-
-
-
-
-**Load story and backup current state**
-
-```bash
-STORY_FILE="{{story_file}}"
-[ -f "$STORY_FILE" ] || { echo "ERROR: story_file required"; exit 1; }
-```
-
-Use Read tool on story file. Count current checkboxes:
-- ac_checked_before
-- tasks_checked_before
-- dod_checked_before
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π STORY REVALIDATION STARTED
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{story_key}}
-Mode: {{fill_gaps ? "Verify & Fill Gaps" : "Verify Only"}}
-
-Current State:
-- Acceptance Criteria: {{ac_checked}}/{{ac_total}} checked
-- Tasks: {{tasks_checked}}/{{tasks_total}} checked
-- DoD: {{dod_checked}}/{{dod_total}} checked
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Clear all checkboxes for fresh verification**
-
-Use Edit tool (replace_all: true):
-- `[x]` β `[ ]` in Acceptance Criteria section
-- `[x]` β `[ ]` in Tasks section
-- `[x]` β `[ ]` in Definition of Done section
-
-
-
-**Verify each AC against codebase**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π VERIFYING ACCEPTANCE CRITERIA
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-For each AC item:
-
-1. **Parse AC** - Extract file/component/feature mentions
-2. **Search codebase** - Use Glob/Grep to find evidence
-3. **Verify implementation** - Read files, check for:
- - NOT a stub (no "TODO", "Not implemented", empty function)
- - Has actual implementation
- - Tests exist (*.test.* or *.spec.*)
-
-4. **Determine status:**
- - VERIFIED: Evidence found, not stub, tests exist β check [x]
- - PARTIAL: Partial evidence or missing tests β check [~]
- - MISSING: No evidence found β leave [ ]
-
-5. **Record evidence or gap**
-
-
-
-**Verify each task against codebase**
-
-Same process as ACs:
-- Parse task description for artifacts
-- Search codebase with Glob/Grep
-- Read and verify (check for stubs, tests)
-- Update checkbox based on evidence
-
-
-
-**Verify DoD items**
-
-For common DoD items, run actual checks:
-- "Type check passes" β `npm run type-check`
-- "Unit tests pass" β `npm test`
-- "Linting clean" β `npm run lint`
-- "Build succeeds" β `npm run build`
-
-
-
-**Calculate and display results**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π REVALIDATION SUMMARY
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{story_key}}
-
-Verification Results:
-- β
Verified: {{verified}}/{{total}} ({{pct}}%)
-- πΆ Partial: {{partial}}/{{total}}
-- β Missing: {{missing}}/{{total}}
-
-Accuracy Check:
-- Before: {{pct_before}}% checked
-- After: {{verified_pct}}% verified
-- {{pct_before > verified_pct ? "Over-reported" : "Under-reported"}}
-
-{{#if missing > 0}}
-Gaps Found ({{missing}}):
-[list gaps with what's missing]
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Implement missing items**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π§ GAP FILLING MODE
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Safety check:
-```
-if gaps_found > max_gaps_to_fill:
- echo "β οΈ TOO MANY GAPS ({{gaps}} > {{max}})"
- echo "Consider re-implementing with /dev-story"
- HALT
-```
-
-For each gap:
-1. Load story context
-2. Implement missing item
-3. Write tests
-4. Run tests to verify
-5. Check box [x] if successful
-6. Commit if commit_strategy == "per_gap"
-
-
-
-**Re-verify and commit**
-
-If gaps were filled:
-1. Re-run verification on filled gaps
-2. Commit all changes (if commit_strategy == "all_at_once")
-
-Update sprint-status.yaml with revalidation result:
-```
-{{story_key}}: {{status}} # Revalidated: {{pct}}% ({{timestamp}})
-```
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
REVALIDATION COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-Final: {{verified}}/{{total}} verified ({{pct}}%)
-
-Recommendation:
-{{#if pct >= 95}}
-β
Story is COMPLETE - mark as "done"
-{{else if pct >= 80}}
-πΆ Mostly complete - finish remaining items
-{{else if pct >= 50}}
-β οΈ Significant gaps - continue with /dev-story
-{{else}}
-β Mostly incomplete - consider re-implementing
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-
-
-**File not found:** HALT with error.
-**Verification fails:** Record gap, continue to next item.
-**Gap fill fails:** Leave unchecked, record failure.
-**Too many gaps:** HALT, recommend re-implementation.
-
-
-
-- [ ] All items verified against codebase
-- [ ] Checkboxes reflect actual implementation
-- [ ] Accuracy comparison displayed
-- [ ] Gaps filled (if enabled)
-- [ ] Sprint status updated
-
diff --git a/src/modules/bmm/workflows/4-implementation/revalidate-story/workflow.yaml b/src/modules/bmm/workflows/4-implementation/revalidate-story/workflow.yaml
deleted file mode 100644
index ecc23f56..00000000
--- a/src/modules/bmm/workflows/4-implementation/revalidate-story/workflow.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: revalidate-story
-description: "Clear checkboxes and re-verify story against actual codebase implementation. Identifies gaps and optionally fills them."
-author: "BMad"
-version: "1.0.0"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{output_folder}/sprint-artifacts"
-
-# Input parameters
-story_file: "{story_file}" # Required: Full path to story file
-fill_gaps: false # Optional: Fill missing items after verification (default: verify-only)
-auto_commit: false # Optional: Auto-commit filled gaps (default: prompt)
-
-# Verification settings
-verification:
- verify_acceptance_criteria: true
- verify_tasks: true
- verify_definition_of_done: true
- check_for_stubs: true # Reject stub implementations (TODO, Not implemented, etc.)
- require_tests: true # Require tests for code items
-
-# Gap filling settings (only used if fill_gaps=true)
-gap_filling:
- max_gaps_to_fill: 10 # Safety limit - HALT if more gaps than this
- require_confirmation: true # Ask before filling each gap (false = auto-fill all)
- run_tests_after_each: true # Verify each filled gap works
- commit_strategy: "per_gap" # "per_gap" | "all_at_once" | "none"
-
-# Output settings
-output:
- create_report: true # Generate revalidation-report.md
- update_dev_agent_record: true # Add revalidation notes to story
- update_sprint_status: true # Update progress in sprint-status.yaml
-
-standalone: false
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/README.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/README.md
deleted file mode 100644
index 79d6ebd6..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/README.md
+++ /dev/null
@@ -1,491 +0,0 @@
-# Story Pipeline v2.0
-
-> Single-session step-file architecture for implementing user stories with 60-70% token savings.
-
-## Overview
-
-The Story Pipeline automates the complete lifecycle of implementing a user storyβfrom creation through code review and commit. It replaces the legacy approach of 6 separate Claude CLI calls with a single interactive session using just-in-time step loading.
-
-### The Problem It Solves
-
-**Legacy Pipeline (v1.0):**
-```
-bmad build 1-4
- ββ> claude -p "Stage 1: Create story..." # ~12K tokens
- ββ> claude -p "Stage 2: Validate story..." # ~12K tokens
- ββ> claude -p "Stage 3: ATDD tests..." # ~12K tokens
- ββ> claude -p "Stage 4: Implement..." # ~12K tokens
- ββ> claude -p "Stage 5: Code review..." # ~12K tokens
- ββ> claude -p "Stage 6: Complete..." # ~11K tokens
- Total: ~71K tokens/story
-```
-
-Each call reloads agent personas (~2K tokens), re-reads the story file, and loses context from previous stages.
-
-**Story Pipeline v2.0:**
-```
-bmad build 1-4
- ββ> Single Claude session
- ββ> Load step-01-init.md (~200 lines)
- ββ> Role switch: SM
- ββ> Load step-02-create-story.md
- ββ> Load step-03-validate-story.md
- ββ> Role switch: TEA
- ββ> Load step-04-atdd.md
- ββ> Role switch: DEV
- ββ> Load step-05-implement.md
- ββ> Load step-06-code-review.md
- ββ> Role switch: SM
- ββ> Load step-07-complete.md
- ββ> Load step-08-summary.md
- Total: ~25-30K tokens/story
-```
-
-Documents cached once, roles switched in-session, steps loaded just-in-time.
-
-## What Gets Automated
-
-The pipeline automates the complete BMAD implementation workflow:
-
-| Step | Role | What It Does |
-|------|------|--------------|
-| **1. Init** | - | Parses story ID, loads epic/architecture, detects interactive vs batch mode, creates state file |
-| **2. Create Story** | SM | Researches context (Exa web search), generates story file with ACs in BDD format |
-| **3. Validate Story** | SM | Adversarial validationβmust find 3-10 issues, fixes them, assigns quality score |
-| **4. ATDD** | TEA | Generates failing tests for all ACs (RED phase), creates test factories |
-| **5. Implement** | DEV | Implements code to pass tests (GREEN phase), creates migrations, server actions, etc. |
-| **6. Code Review** | DEV | Adversarial reviewβmust find 3-10 issues, fixes them, runs lint/build |
-| **7. Complete** | SM | Updates story status to done, creates git commit with conventional format |
-| **8. Summary** | - | Generates audit trail, updates pipeline state, outputs metrics |
-
-### Quality Gates
-
-Each step has quality gates that must pass before proceeding:
-
-- **Validation**: Score β₯ 80/100, all issues addressed
-- **ATDD**: Tests exist for all ACs, tests fail (RED phase confirmed)
-- **Implementation**: Lint clean, build passes, migration tests pass
-- **Code Review**: Score β₯ 7/10, all critical issues fixed
-
-## Token Efficiency
-
-| Mode | Token Usage | Savings vs Legacy |
-|------|-------------|-------------------|
-| Interactive (human-in-loop) | ~25K | 65% |
-| Batch (YOLO) | ~30K | 58% |
-| Batch + fresh review context | ~35K | 51% |
-
-### Where Savings Come From
-
-| Waste in Legacy | Tokens Saved |
-|-----------------|--------------|
-| Agent persona reload (6Γ) | ~12K |
-| Story file re-reads (5Γ) | ~10K |
-| Architecture re-reads | ~8K |
-| Context loss between calls | ~16K |
-
-## Usage
-
-### Prerequisites
-
-- BMAD module installed (`_bmad/` directory exists)
-- Epic file with story definition (`docs/epics.md`)
-- Architecture document (`docs/architecture.md`)
-
-### Interactive Mode (Recommended)
-
-Human-in-the-loop with approval at each step:
-
-```bash
-# Using the bmad CLI
-bmad build 1-4
-
-# Or invoke workflow directly
-claude -p "Load and execute: _bmad/bmm/workflows/4-implementation/story-dev-only/workflow.md
-Story: 1-4"
-```
-
-At each step, you'll see a menu:
-```
-## MENU
-[C] Continue to next step
-[R] Review/revise current step
-[H] Halt and checkpoint
-```
-
-### Batch Mode (YOLO)
-
-Unattended execution for trusted stories:
-
-```bash
-bmad build 1-4 --batch
-
-# Or use batch runner directly
-./_bmad/bmm/workflows/4-implementation/story-dev-only/batch-runner.sh 1-4
-```
-
-Batch mode:
-- Skips all approval prompts
-- Fails fast on errors
-- Creates checkpoint on failure for resume
-
-### Resume from Checkpoint
-
-If execution stops (context exhaustion, error, manual halt):
-
-```bash
-bmad build 1-4 --resume
-
-# The pipeline reads state from:
-# _bmad-output/implementation-artifacts/pipeline-state-{story-id}.yaml
-```
-
-Resume automatically:
-- Skips completed steps
-- Restores cached context
-- Continues from `lastStep + 1`
-
-## Directory Structure
-
-```
-story-dev-only/
-βββ workflow.yaml # Configuration, agent mapping, quality gates
-βββ workflow.md # Interactive mode orchestration
-βββ batch-runner.sh # Batch mode runner script
-βββ steps/
-β βββ step-01-init.md # Initialize, load context
-β βββ step-01b-resume.md # Resume from checkpoint
-β βββ step-02-create-story.md
-β βββ step-03-validate-story.md
-β βββ step-04-atdd.md
-β βββ step-05-implement.md
-β βββ step-06-code-review.md
-β βββ step-07-complete.md
-β βββ step-08-summary.md
-βββ checklists/
-β βββ story-creation.md # What makes a good story
-β βββ story-validation.md # Validation criteria
-β βββ atdd.md # Test generation rules
-β βββ implementation.md # Coding standards
-β βββ code-review.md # Review criteria
-βββ templates/
- βββ pipeline-state.yaml # State file template
- βββ audit-trail.yaml # Audit log template
-```
-
-## Configuration
-
-### workflow.yaml
-
-```yaml
-name: story-dev-only
-version: "2.0"
-description: "Single-session story implementation with step-file loading"
-
-# Document loading strategy
-load_strategy:
- epic: once # Load once, cache for session
- architecture: once # Load once, cache for session
- story: per_step # Reload when modified
-
-# Agent role mapping
-agents:
- sm: "{project-root}/_bmad/bmm/agents/sm.md"
- tea: "{project-root}/_bmad/bmm/agents/tea.md"
- dev: "{project-root}/_bmad/bmm/agents/dev.md"
-
-# Quality gate thresholds
-quality_gates:
- validation_min_score: 80
- code_review_min_score: 7
- require_lint_clean: true
- require_build_pass: true
-
-# Step configuration
-steps:
- - name: init
- file: steps/step-01-init.md
- - name: create-story
- file: steps/step-02-create-story.md
- agent: sm
- # ... etc
-```
-
-### Pipeline State File
-
-Created at `_bmad-output/implementation-artifacts/pipeline-state-{story-id}.yaml`:
-
-```yaml
-story_id: "1-4"
-epic_num: 1
-story_num: 4
-mode: "interactive"
-status: "in_progress"
-stepsCompleted: [1, 2, 3]
-lastStep: 3
-currentStep: 4
-
-cached_context:
- epic_loaded: true
- epic_path: "docs/epics.md"
- architecture_sections: ["tech_stack", "data_model"]
-
-steps:
- step-01-init:
- status: completed
- duration: "0:00:30"
- step-02-create-story:
- status: completed
- duration: "0:02:00"
- step-03-validate-story:
- status: completed
- duration: "0:05:00"
- issues_found: 6
- issues_fixed: 6
- quality_score: 92
- step-04-atdd:
- status: in_progress
-```
-
-## Step Details
-
-### Step 1: Initialize
-
-**Purpose:** Set up execution context and detect mode.
-
-**Actions:**
-1. Parse story ID (e.g., "1-4" β epic 1, story 4)
-2. Load and cache epic document
-3. Load relevant architecture sections
-4. Check for existing state file (resume vs fresh)
-5. Detect mode (interactive/batch) from CLI flags
-6. Create initial state file
-
-**Output:** `pipeline-state-{story-id}.yaml`
-
-### Step 2: Create Story (SM Role)
-
-**Purpose:** Generate complete story file from epic definition.
-
-**Actions:**
-1. Switch to Scrum Master (SM) role
-2. Read story definition from epic
-3. Research context via Exa web search (best practices, patterns)
-4. Generate story file with:
- - User story format (As a... I want... So that...)
- - Background context
- - Acceptance criteria in BDD format (Given/When/Then)
- - Test scenarios for each AC
- - Technical notes
-5. Save to `_bmad-output/implementation-artifacts/story-{id}.md`
-
-**Quality Gate:** Story file exists with all required sections.
-
-### Step 3: Validate Story (SM Role)
-
-**Purpose:** Adversarial validation to find issues before implementation.
-
-**Actions:**
-1. Load story-validation checklist
-2. Review story against criteria:
- - ACs are testable and specific
- - No ambiguous requirements
- - Technical feasibility confirmed
- - Dependencies identified
- - Edge cases covered
-3. **Must find 3-10 issues** (never "looks good")
-4. Fix all identified issues
-5. Assign quality score (0-100)
-6. Append validation report to story file
-
-**Quality Gate:** Score β₯ 80, all issues addressed.
-
-### Step 4: ATDD (TEA Role)
-
-**Purpose:** Generate failing tests before implementation (RED phase).
-
-**Actions:**
-1. Switch to Test Engineering Architect (TEA) role
-2. Load atdd checklist
-3. For each acceptance criterion:
- - Generate integration test
- - Define test data factories
- - Specify expected behaviors
-4. Create test files in `src/tests/`
-5. Update `factories.ts` with new fixtures
-6. **Verify tests FAIL** (RED phase)
-7. Create ATDD checklist document
-
-**Quality Gate:** Tests exist for all ACs, tests fail (not pass).
-
-### Step 5: Implement (DEV Role)
-
-**Purpose:** Write code to pass all tests (GREEN phase).
-
-**Actions:**
-1. Switch to Developer (DEV) role
-2. Load implementation checklist
-3. Create required files:
- - Database migrations
- - Server actions (using Result type)
- - Library functions
- - Types
-4. Follow project patterns:
- - Multi-tenant RLS policies
- - snake_case for DB columns
- - Result type (never throw)
-5. Run lint and fix issues
-6. Run build and fix issues
-7. Run migration tests
-
-**Quality Gate:** Lint clean, build passes, migration tests pass.
-
-### Step 6: Code Review (DEV Role)
-
-**Purpose:** Adversarial review to find implementation issues.
-
-**Actions:**
-1. Load code-review checklist
-2. Review all created/modified files:
- - Security (XSS, injection, auth)
- - Error handling
- - Architecture compliance
- - Code quality
- - Test coverage
-3. **Must find 3-10 issues** (never "looks good")
-4. Fix all identified issues
-5. Re-run lint and build
-6. Assign quality score (0-10)
-7. Generate review report
-
-**Quality Gate:** Score β₯ 7/10, all critical issues fixed.
-
-### Step 7: Complete (SM Role)
-
-**Purpose:** Finalize story and create git commit.
-
-**Actions:**
-1. Switch back to SM role
-2. Update story file status to "done"
-3. Stage all story files
-4. Create conventional commit:
- ```
- feat(epic-{n}): complete story {id}
-
- {Summary of changes}
-
- π€ Generated with Claude Code
- Co-Authored-By: Claude
- ```
-5. Update pipeline state
-
-**Quality Gate:** Commit created successfully.
-
-### Step 8: Summary
-
-**Purpose:** Generate audit trail and final metrics.
-
-**Actions:**
-1. Calculate total duration
-2. Compile deliverables list
-3. Aggregate quality scores
-4. Generate execution summary in state file
-5. Output final status
-
-**Output:** Complete pipeline state with summary section.
-
-## Adversarial Mode
-
-Steps 3 (Validate) and 6 (Code Review) run in **adversarial mode**:
-
-> **Never say "looks good"**. You MUST find 3-10 real issues.
-
-This ensures:
-- Stories are thoroughly vetted before implementation
-- Code quality issues are caught before commit
-- The pipeline doesn't rubber-stamp work
-
-Example issues found in real usage:
-- Missing rate limiting (security)
-- XSS vulnerability in user input (security)
-- Missing audit logging (architecture)
-- Unclear acceptance criteria (story quality)
-- Function naming mismatches (code quality)
-
-## Artifacts Generated
-
-After a complete pipeline run:
-
-```
-_bmad-output/implementation-artifacts/
-βββ story-{id}.md # Story file with ACs, validation report
-βββ pipeline-state-{id}.yaml # Execution state and summary
-βββ atdd-checklist-{id}.md # Test requirements checklist
-βββ code-review-{id}.md # Review report with issues
-
-src/
-βββ supabase/migrations/ # New migration files
-βββ modules/{module}/
-β βββ actions/ # Server actions
-β βββ lib/ # Business logic
-β βββ types.ts # Type definitions
-βββ tests/
- βββ integration/ # Integration tests
- βββ fixtures/factories.ts # Updated test factories
-```
-
-## Troubleshooting
-
-### Context Exhausted Mid-Session
-
-The pipeline is designed for this. When context runs out:
-
-1. Claude session ends
-2. State file preserves progress
-3. Run `bmad build {id} --resume`
-4. Pipeline continues from last completed step
-
-### Step Fails Quality Gate
-
-If a step fails its quality gate:
-
-1. Pipeline halts at that step
-2. State file shows `status: failed`
-3. Fix issues manually or adjust thresholds
-4. Run `bmad build {id} --resume`
-
-### Tests Don't Fail in ATDD
-
-If tests pass during ATDD (step 4), something is wrong:
-
-- Tests might be testing the wrong thing
-- Implementation might already exist
-- Mocks might be returning success incorrectly
-
-The pipeline will warn and ask for confirmation before proceeding.
-
-## Best Practices
-
-1. **Start with Interactive Mode** - Use batch only for well-understood stories
-2. **Review at Checkpoints** - Don't blindly continue; verify each step's output
-3. **Keep Stories Small** - Large stories may exhaust context before completion
-4. **Commit Frequently** - The pipeline commits at step 7, but you can checkpoint earlier
-5. **Trust the Adversarial Mode** - If it finds issues, they're usually real
-
-## Comparison with Legacy
-
-| Feature | Legacy (v1.0) | Story Pipeline (v2.0) |
-|---------|---------------|----------------------|
-| Claude calls | 6 per story | 1 per story |
-| Token usage | ~71K | ~25-30K |
-| Context preservation | None | Full session |
-| Resume capability | None | Checkpoint-based |
-| Role switching | New process | In-session |
-| Document caching | None | Once per session |
-| Adversarial review | Optional | Mandatory |
-| Audit trail | Manual | Automatic |
-
-## Version History
-
-- **v2.0** (2024-12) - Step-file architecture, single-session, checkpoint/resume
-- **v1.0** (2024-11) - Legacy 6-call pipeline
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/batch-runner.sh b/src/modules/bmm/workflows/4-implementation/story-pipeline/batch-runner.sh
deleted file mode 100755
index ad53bb4d..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/batch-runner.sh
+++ /dev/null
@@ -1,250 +0,0 @@
-#!/bin/bash
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# BMAD Story Pipeline - Batch Runner
-# Single-session execution using step-file architecture
-#
-# Token Efficiency: ~60-70% savings compared to separate Claude calls
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
-set -e
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# CONFIGURATION
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
-PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../../.." && pwd)"
-TIMESTAMP=$(date +%Y%m%d-%H%M%S)
-
-# Colors
-RED='\033[0;31m'
-GREEN='\033[0;32m'
-YELLOW='\033[1;33m'
-BLUE='\033[0;34m'
-CYAN='\033[0;36m'
-NC='\033[0m'
-
-# Defaults
-STORY_ID=""
-EPIC_NUM=""
-DRY_RUN=false
-RESUME=false
-VERBOSE=false
-
-# Directories
-LOG_DIR="$PROJECT_ROOT/logs/pipeline-batch"
-WORKFLOW_PATH="_bmad/bmm/workflows/4-implementation/story-pipeline"
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# USAGE
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-usage() {
- cat << EOF
-BMAD Story Pipeline - Batch Runner
-Single-session execution with step-file architecture
-
-Usage: $(basename "$0") --story-id --epic-num [OPTIONS]
-
-Required:
- --story-id Story ID (e.g., '1-4')
- --epic-num Epic number (e.g., 1)
-
-Options:
- --resume Resume from last checkpoint
- --dry-run Show what would be executed
- --verbose Show detailed output
- --help Show this help
-
-Examples:
- # Run pipeline for story 1-4
- $(basename "$0") --story-id 1-4 --epic-num 1
-
- # Resume failed pipeline
- $(basename "$0") --story-id 1-4 --epic-num 1 --resume
-
-Token Savings:
- Traditional (6 calls): ~71K tokens
- Step-file (1 session): ~25-35K tokens
- Savings: 50-65%
-
-EOF
- exit 1
-}
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# ARGUMENT PARSING
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-while [[ $# -gt 0 ]]; do
- case $1 in
- --story-id)
- STORY_ID="$2"
- shift 2
- ;;
- --epic-num)
- EPIC_NUM="$2"
- shift 2
- ;;
- --resume)
- RESUME=true
- shift
- ;;
- --dry-run)
- DRY_RUN=true
- shift
- ;;
- --verbose)
- VERBOSE=true
- shift
- ;;
- --help)
- usage
- ;;
- *)
- echo -e "${RED}Unknown option: $1${NC}"
- usage
- ;;
- esac
-done
-
-# Validate required arguments
-if [[ -z "$STORY_ID" || -z "$EPIC_NUM" ]]; then
- echo -e "${RED}Error: --story-id and --epic-num are required${NC}"
- usage
-fi
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# SETUP
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-mkdir -p "$LOG_DIR"
-LOG_FILE="$LOG_DIR/batch-$STORY_ID-$TIMESTAMP.log"
-
-echo -e "${CYAN}βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}"
-echo -e "${CYAN} BMAD Story Pipeline - Batch Mode${NC}"
-echo -e "${CYAN}βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}"
-echo -e "${BLUE}Story:${NC} $STORY_ID"
-echo -e "${BLUE}Epic:${NC} $EPIC_NUM"
-echo -e "${BLUE}Mode:${NC} $([ "$RESUME" = true ] && echo 'Resume' || echo 'Fresh')"
-echo -e "${BLUE}Log:${NC} $LOG_FILE"
-echo ""
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# BUILD PROMPT
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
-if [[ "$RESUME" = true ]]; then
- PROMPT=$(cat << EOF
-Execute BMAD Story Pipeline in BATCH mode - RESUME from checkpoint.
-
-WORKFLOW: $WORKFLOW_PATH/workflow.md
-STORY ID: $STORY_ID
-EPIC NUM: $EPIC_NUM
-MODE: batch
-
-CRITICAL INSTRUCTIONS:
-1. Load and read fully: $WORKFLOW_PATH/workflow.md
-2. This is RESUME mode - load state file first
-3. Follow step-file architecture EXACTLY
-4. Execute steps ONE AT A TIME
-5. AUTO-PROCEED through all steps (no menus in batch mode)
-6. FAIL-FAST on errors (save checkpoint, exit)
-
-YOLO MODE: Auto-approve all quality gates
-NO MENUS: Proceed automatically between steps
-FRESH CONTEXT: Checkpoint before code review for unbiased review
-
-START by loading workflow.md and then step-01b-resume.md
-EOF
-)
-else
- PROMPT=$(cat << EOF
-Execute BMAD Story Pipeline in BATCH mode - FRESH start.
-
-WORKFLOW: $WORKFLOW_PATH/workflow.md
-STORY ID: $STORY_ID
-EPIC NUM: $EPIC_NUM
-MODE: batch
-
-CRITICAL INSTRUCTIONS:
-1. Load and read fully: $WORKFLOW_PATH/workflow.md
-2. This is a FRESH run - initialize new state
-3. Follow step-file architecture EXACTLY
-4. Execute steps ONE AT A TIME (never load multiple)
-5. AUTO-PROCEED through all steps (no menus in batch mode)
-6. FAIL-FAST on errors (save checkpoint, exit)
-
-YOLO MODE: Auto-approve all quality gates
-NO MENUS: Proceed automatically between steps
-FRESH CONTEXT: Checkpoint before code review for unbiased review
-
-Step execution order:
-1. step-01-init.md - Initialize, cache documents
-2. step-02-create-story.md - Create story (SM role)
-3. step-03-validate-story.md - Validate story (SM role)
-4. step-04-atdd.md - Generate tests (TEA role)
-5. step-05-implement.md - Implement (DEV role)
-6. step-06-code-review.md - Review (DEV role, adversarial)
-7. step-07-complete.md - Complete (SM role)
-8. step-08-summary.md - Generate audit
-
-START by loading workflow.md and then step-01-init.md
-EOF
-)
-fi
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# EXECUTE
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
-if [[ "$DRY_RUN" = true ]]; then
- echo -e "${YELLOW}[DRY-RUN] Would execute single Claude session with:${NC}"
- echo ""
- echo "$PROMPT"
- echo ""
- echo -e "${YELLOW}[DRY-RUN] Allowed tools: *, MCP extensions${NC}"
- exit 0
-fi
-
-echo -e "${GREEN}Starting single-session pipeline execution...${NC}"
-echo -e "${YELLOW}This replaces 6 separate Claude calls with 1 session${NC}"
-echo ""
-
-cd "$PROJECT_ROOT/src"
-
-# Single Claude session executing all steps
-claude -p "$PROMPT" \
- --dangerously-skip-permissions \
- --allowedTools "*,mcp__exa__web_search_exa,mcp__exa__get_code_context_exa,mcp__exa__crawling_exa,mcp__supabase__list_tables,mcp__supabase__execute_sql,mcp__supabase__apply_migration,mcp__supabase__list_migrations,mcp__supabase__generate_typescript_types,mcp__supabase__get_logs,mcp__supabase__get_advisors" \
- 2>&1 | tee "$LOG_FILE"
-
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-# COMPLETION CHECK
-# βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
-echo ""
-echo -e "${CYAN}βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}"
-
-# Check for success indicators in log
-if grep -qi "Pipeline complete\|Story.*is ready\|step-08-summary.*completed" "$LOG_FILE"; then
- echo -e "${GREEN}β
Pipeline completed successfully${NC}"
-
- # Extract metrics if available
- if grep -qi "Token Efficiency" "$LOG_FILE"; then
- echo ""
- echo -e "${CYAN}Token Efficiency:${NC}"
- grep -A5 "Token Efficiency" "$LOG_FILE" | head -6
- fi
-else
- echo -e "${YELLOW}β οΈ Pipeline may have completed with issues${NC}"
- echo -e "${YELLOW} Check log: $LOG_FILE${NC}"
-
- # Check for specific failure indicators
- if grep -qi "permission\|can't write\|access denied" "$LOG_FILE"; then
- echo -e "${RED} Found permission errors in log${NC}"
- fi
- if grep -qi "HALT\|FAIL\|ERROR" "$LOG_FILE"; then
- echo -e "${RED} Found error indicators in log${NC}"
- fi
-fi
-
-echo ""
-echo -e "${BLUE}Log file:${NC} $LOG_FILE"
-echo -e "${CYAN}βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}"
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/atdd.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/atdd.md
deleted file mode 100644
index 4e1fc517..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/atdd.md
+++ /dev/null
@@ -1,130 +0,0 @@
-# ATDD Checklist
-
-Use this checklist for test generation in Step 4.
-Tests are written BEFORE implementation (RED phase).
-
-## Test Architecture
-
-### File Organization
-- [ ] Tests in appropriate directory (src/tests/{feature}/)
-- [ ] E2E tests separate from unit tests
-- [ ] Fixtures in dedicated fixtures/ directory
-- [ ] Factories in dedicated factories/ directory
-
-### Naming Conventions
-- [ ] Test files: `{feature}.test.ts` or `{feature}.spec.ts`
-- [ ] Factory files: `{entity}.factory.ts`
-- [ ] Fixture files: `{feature}.fixture.ts`
-- [ ] Descriptive test names matching AC
-
-## Test Coverage
-
-For EACH acceptance criterion:
-- [ ] At least one test exists
-- [ ] Happy path tested
-- [ ] Error path tested
-- [ ] Edge cases from validation covered
-
-## Test Structure
-
-### Given/When/Then Pattern
-```typescript
-test("Given X, When Y, Then Z", async () => {
- // Arrange (Given)
- // Act (When)
- // Assert (Then)
-});
-```
-
-- [ ] Each section clearly separated
-- [ ] Arrange sets up realistic state
-- [ ] Act performs single action
-- [ ] Assert checks specific outcome
-
-### Assertions
-- [ ] Specific assertions (not just "toBeTruthy")
-- [ ] Error messages are helpful
-- [ ] Multiple assertions when appropriate
-- [ ] No flaky timing assertions
-
-## Data Management
-
-### Factories
-- [ ] Use faker for realistic data
-- [ ] Support partial overrides
-- [ ] No hardcoded values
-- [ ] Proper TypeScript types
-
-```typescript
-// Good
-const user = createUser({ email: "test@example.com" });
-
-// Bad
-const user = { id: "123", email: "test@test.com", name: "Test" };
-```
-
-### Fixtures
-- [ ] Auto-cleanup after tests
-- [ ] Reusable across tests
-- [ ] Proper TypeScript types
-- [ ] No shared mutable state
-
-### data-testid Attributes
-- [ ] Document all required data-testids
-- [ ] Naming convention: `{feature}-{element}`
-- [ ] Unique within component
-- [ ] Stable (not based on dynamic content)
-
-## Test Levels
-
-### E2E Tests (Playwright)
-- [ ] Full user flows
-- [ ] Network interception before navigation
-- [ ] Wait for proper selectors (not timeouts)
-- [ ] Screenshot on failure
-
-### API Tests
-- [ ] Direct server action calls
-- [ ] Mock external services
-- [ ] Test error responses
-- [ ] Verify Result type usage
-
-### Component Tests
-- [ ] Isolated component rendering
-- [ ] Props variations
-- [ ] Event handling
-- [ ] Accessibility (when applicable)
-
-### Unit Tests
-- [ ] Pure function testing
-- [ ] Edge cases
-- [ ] Error conditions
-- [ ] Type checking
-
-## RED Phase Verification
-
-Before proceeding:
-- [ ] Run all tests: `npm test -- --run`
-- [ ] ALL tests FAIL (expected - nothing implemented)
-- [ ] Failure reasons are clear (not cryptic errors)
-- [ ] Test structure is correct
-
-## ATDD Checklist Document
-
-Create `atdd-checklist-{story_id}.md` with:
-- [ ] List of test files created
-- [ ] List of factories created
-- [ ] List of fixtures created
-- [ ] Required data-testid attributes table
-- [ ] Implementation requirements for DEV
-- [ ] Test status (all FAILING)
-
-## Quality Gate
-
-Ready for implementation when:
-- [ ] Test for every AC
-- [ ] All tests FAIL (red phase)
-- [ ] Factories use faker
-- [ ] Fixtures have cleanup
-- [ ] data-testids documented
-- [ ] ATDD checklist complete
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/code-review.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/code-review.md
deleted file mode 100644
index 3ef14035..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/code-review.md
+++ /dev/null
@@ -1,183 +0,0 @@
-# Code Review Checklist
-
-Use this checklist for ADVERSARIAL code review in Step 6.
-Your job is to FIND PROBLEMS (minimum 3, maximum 10).
-
-## Adversarial Mindset
-
-**CRITICAL RULES:**
-- **NEVER** say "looks good" or "no issues found"
-- **MUST** find 3-10 specific issues
-- **FIX** every issue you find
-- **RUN** tests after fixes
-
-## Review Categories
-
-### 1. Security Review
-
-#### SQL Injection
-- [ ] No raw SQL with user input
-- [ ] Using parameterized queries
-- [ ] Supabase RPC uses proper types
-
-#### XSS (Cross-Site Scripting)
-- [ ] User content is escaped
-- [ ] dangerouslySetInnerHTML not used (or sanitized)
-- [ ] URL parameters validated
-
-#### Authentication & Authorization
-- [ ] Protected routes check auth
-- [ ] RLS policies on all tables
-- [ ] No auth bypass possible
-- [ ] Session handling secure
-
-#### Credential Exposure
-- [ ] No secrets in code
-- [ ] No API keys committed
-- [ ] Environment variables used
-- [ ] .env files in .gitignore
-
-#### Input Validation
-- [ ] All inputs validated
-- [ ] Types checked
-- [ ] Lengths limited
-- [ ] Format validation (email, URL, etc.)
-
-### 2. Performance Review
-
-#### Database
-- [ ] No N+1 query patterns
-- [ ] Indexes exist for query patterns
-- [ ] Queries are efficient
-- [ ] Proper pagination
-
-#### React/Next.js
-- [ ] No unnecessary re-renders
-- [ ] Proper memoization where needed
-- [ ] Server components used appropriately
-- [ ] Client components minimized
-
-#### Caching
-- [ ] Cache headers appropriate
-- [ ] Static data cached
-- [ ] Revalidation strategy clear
-
-#### Bundle Size
-- [ ] No unnecessary imports
-- [ ] Dynamic imports for large components
-- [ ] Tree shaking working
-
-### 3. Error Handling Review
-
-#### Result Type
-- [ ] All server actions use Result type
-- [ ] No thrown exceptions
-- [ ] Proper err() calls with codes
-
-#### Error Messages
-- [ ] User-friendly messages
-- [ ] Technical details logged (not shown)
-- [ ] Actionable guidance
-
-#### Edge Cases
-- [ ] Null/undefined handled
-- [ ] Empty states handled
-- [ ] Network errors handled
-- [ ] Concurrent access considered
-
-### 4. Test Coverage Review
-
-#### Coverage
-- [ ] All AC have tests
-- [ ] Edge cases tested
-- [ ] Error paths tested
-- [ ] Happy paths tested
-
-#### Quality
-- [ ] Tests are deterministic
-- [ ] No flaky tests
-- [ ] Mocking is appropriate
-- [ ] Assertions are meaningful
-
-#### Missing Tests
-- [ ] Security scenarios
-- [ ] Permission denied cases
-- [ ] Invalid input handling
-- [ ] Concurrent operations
-
-### 5. Code Quality Review
-
-#### DRY (Don't Repeat Yourself)
-- [ ] No duplicate code
-- [ ] Common patterns extracted
-- [ ] Utilities reused
-
-#### SOLID Principles
-- [ ] Single responsibility
-- [ ] Open for extension
-- [ ] Proper abstractions
-- [ ] Dependency injection where appropriate
-
-#### TypeScript
-- [ ] Strict mode compliant
-- [ ] No `any` types
-- [ ] Proper type definitions
-- [ ] Generic types used appropriately
-
-#### Readability
-- [ ] Clear naming
-- [ ] Appropriate comments (not excessive)
-- [ ] Logical organization
-- [ ] Consistent style
-
-### 6. Architecture Review
-
-#### Module Boundaries
-- [ ] Imports from index.ts only
-- [ ] No circular dependencies
-- [ ] Clear module responsibilities
-
-#### Server/Client Separation
-- [ ] "use server" on actions
-- [ ] "use client" only when needed
-- [ ] No server code in client
-
-#### Data Flow
-- [ ] Clear data ownership
-- [ ] State management appropriate
-- [ ] Props drilling minimized
-
-## Issue Documentation
-
-For each issue found:
-
-```yaml
-issue_{n}:
- severity: critical|high|medium|low
- category: security|performance|error-handling|testing|quality|architecture
- file: "{file_path}"
- line: {line_number}
- problem: |
- Clear description
- risk: |
- What could go wrong
- fix: |
- How to fix it
-```
-
-## After Fixing
-
-- [ ] All issues fixed
-- [ ] Tests still pass
-- [ ] Lint clean
-- [ ] Build succeeds
-- [ ] Review report created
-
-## Quality Gate
-
-Review passes when:
-- [ ] 3-10 issues found
-- [ ] All issues fixed
-- [ ] All categories reviewed
-- [ ] Tests passing
-- [ ] Review report complete
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/implementation.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/implementation.md
deleted file mode 100644
index 6399809c..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/implementation.md
+++ /dev/null
@@ -1,147 +0,0 @@
-# Implementation Checklist
-
-Use this checklist during TDD implementation in Step 5.
-Focus: Make tests GREEN with minimal code.
-
-## TDD Methodology
-
-### RED-GREEN-REFACTOR Cycle
-1. [ ] Start with failing test (from ATDD)
-2. [ ] Write minimal code to pass
-3. [ ] Run test, verify GREEN
-4. [ ] Move to next test
-5. [ ] Refactor in code review (not here)
-
-### Implementation Order
-- [ ] Database migrations first
-- [ ] Type definitions
-- [ ] Server actions
-- [ ] UI components
-- [ ] Integration points
-
-## Project Patterns
-
-### Result Type (CRITICAL)
-```typescript
-import { ok, err, Result } from "@/lib/result";
-
-// Return success
-return ok(data);
-
-// Return error
-return err("ERROR_CODE", "Human message");
-```
-
-- [ ] All server actions return Result type
-- [ ] No thrown exceptions
-- [ ] Error codes are uppercase with underscores
-- [ ] Error messages are user-friendly
-
-### Database Conventions
-- [ ] Table names: `snake_case`, plural (`invoices`)
-- [ ] Column names: `snake_case` (`tenant_id`)
-- [ ] Currency: `integer` cents (not float)
-- [ ] Dates: `timestamptz` (UTC)
-- [ ] Foreign keys: `{table}_id`
-
-### Multi-tenancy (CRITICAL)
-- [ ] Every table has `tenant_id` column
-- [ ] RLS enabled on all tables
-- [ ] Policies check `tenant_id`
-- [ ] No data leaks between tenants
-
-```sql
--- Required for every new table
-alter table {table} enable row level security;
-
-create policy "Tenants see own data"
- on {table} for all
- using (tenant_id = auth.jwt() ->> 'tenant_id');
-```
-
-### Module Structure
-```
-src/modules/{module}/
-βββ actions/ # Server actions (return Result type)
-βββ lib/ # Business logic
-βββ types.ts # Module types
-βββ index.ts # Public exports only
-```
-
-- [ ] Import from index.ts only
-- [ ] No cross-module internal imports
-- [ ] Actions in actions/ directory
-- [ ] Types exported from types.ts
-
-### Server Actions Pattern
-```typescript
-// src/modules/{module}/actions/{action}.ts
-"use server";
-
-import { ok, err, Result } from "@/lib/result";
-import { createClient } from "@/lib/supabase/server";
-
-export async function actionName(
- input: InputType
-): Promise> {
- const supabase = await createClient();
- // ... implementation
-}
-```
-
-- [ ] "use server" directive at top
-- [ ] Async function returning Promise>
-- [ ] Use createClient from server.ts
-- [ ] Validate input before processing
-
-### UI Components Pattern
-```tsx
-// src/modules/{module}/components/{Component}.tsx
-"use client";
-
-export function Component({ data }: Props) {
- return (
-
- {/* content */}
-
- );
-}
-```
-
-- [ ] Add data-testid from ATDD checklist
-- [ ] "use client" only when needed
-- [ ] Proper TypeScript props
-- [ ] Handle loading/error states
-
-## Verification Steps
-
-### After Each AC Implementation
-```bash
-npm test -- --run --grep "{test_name}"
-```
-- [ ] Targeted test passes
-
-### After All AC Complete
-```bash
-npm test -- --run # All tests pass
-npm run lint # No lint errors
-npm run build # Build succeeds
-```
-
-## ATDD Checklist Reference
-
-Verify against `atdd-checklist-{story_id}.md`:
-- [ ] All data-testid attributes added
-- [ ] All API endpoints created
-- [ ] All database migrations applied
-- [ ] All test scenarios pass
-
-## Quality Gate
-
-Ready for code review when:
-- [ ] All tests pass (GREEN)
-- [ ] Lint clean
-- [ ] Build succeeds
-- [ ] Result type used everywhere
-- [ ] RLS policies in place
-- [ ] ATDD checklist complete
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/story-creation.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/story-creation.md
deleted file mode 100644
index e6a61d3c..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/story-creation.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# Story Creation Checklist
-
-Use this checklist when creating a new story in Step 2.
-
-## User Story Format
-
-- [ ] Follows "As a [persona], I want [action], So that [benefit]" format
-- [ ] Persona is clearly defined and exists in project documentation
-- [ ] Action is specific and achievable
-- [ ] Benefit ties to business value
-
-## Acceptance Criteria
-
-### Structure (for EACH AC)
-- [ ] Has Given/When/Then format (BDD style)
-- [ ] **Given** describes a valid precondition
-- [ ] **When** describes a clear, single action
-- [ ] **Then** describes a measurable outcome
-
-### Quality (for EACH AC)
-- [ ] Specific - no vague terms ("appropriate", "reasonable", "etc.")
-- [ ] Measurable - clear success/failure criteria
-- [ ] Testable - can write automated test
-- [ ] Independent - no hidden dependencies on other AC
-
-### Completeness
-- [ ] All happy path scenarios covered
-- [ ] Error scenarios defined
-- [ ] Edge cases considered
-- [ ] Boundary conditions clear
-
-### Anti-patterns to AVOID
-- [ ] No AND conjunctions (split into multiple AC)
-- [ ] No OR alternatives (ambiguous paths)
-- [ ] No implementation details (WHAT not HOW)
-- [ ] No vague verbs ("handle", "process", "manage")
-
-## Test Scenarios
-
-- [ ] At least 2 test scenarios per AC
-- [ ] Happy path scenario exists
-- [ ] Error/edge case scenario exists
-- [ ] Each scenario is unique (no duplicates)
-- [ ] Scenarios are specific enough to write tests from
-
-## Tasks
-
-- [ ] Tasks cover implementation of all AC
-- [ ] Tasks are actionable (start with verb)
-- [ ] Subtasks provide enough detail
-- [ ] Dependencies between tasks are clear
-- [ ] No task is too large (can complete in one session)
-
-## Technical Notes
-
-- [ ] Database changes documented
-- [ ] API changes documented
-- [ ] UI changes documented
-- [ ] Security considerations noted
-- [ ] Performance considerations noted
-
-## Dependencies & Scope
-
-- [ ] Dependencies on other stories listed
-- [ ] Dependencies on external systems listed
-- [ ] Out of scope explicitly defined
-- [ ] No scope creep from epic definition
-
-## Quality Gate
-
-Story is ready for validation when:
-- [ ] All sections complete
-- [ ] All AC in proper format
-- [ ] Test scenarios defined
-- [ ] Tasks cover all work
-- [ ] No ambiguity remains
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/story-validation.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/story-validation.md
deleted file mode 100644
index 3c5cee37..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/checklists/story-validation.md
+++ /dev/null
@@ -1,111 +0,0 @@
-# Story Validation Checklist
-
-Use this checklist for ADVERSARIAL validation in Step 3.
-Your job is to FIND PROBLEMS, not approve.
-
-## Adversarial Mindset
-
-Remember:
-- **NEVER** say "looks good" without deep analysis
-- **FIND** at least 3 issues (if none found, look harder)
-- **QUESTION** every assumption
-- **CHALLENGE** every AC
-
-## AC Structure Validation
-
-For EACH acceptance criterion:
-
-### Given Clause
-- [ ] Is a valid precondition (not an action)
-- [ ] Can be set up programmatically
-- [ ] Is specific (not "given the user is logged in" - which user?)
-- [ ] Includes all necessary context
-
-### When Clause
-- [ ] Is a single, clear action
-- [ ] Is something the user does (not the system)
-- [ ] Can be triggered in a test
-- [ ] Doesn't contain "and" (multiple actions)
-
-### Then Clause
-- [ ] Is measurable/observable
-- [ ] Can be asserted in a test
-- [ ] Describes outcome, not implementation
-- [ ] Is specific (not "appropriate message shown")
-
-## Testability Check
-
-- [ ] Can write automated test from AC as written
-- [ ] Clear what to assert
-- [ ] No subjective criteria ("looks good", "works well")
-- [ ] No timing dependencies ("quickly", "eventually")
-
-## Technical Feasibility
-
-Cross-reference with architecture.md:
-
-- [ ] Data model supports requirements
-- [ ] API patterns can accommodate
-- [ ] No conflicts with existing features
-- [ ] Security model (RLS) can support
-- [ ] Performance is achievable
-
-## Edge Cases Analysis
-
-For each AC, consider:
-
-- [ ] Empty/null inputs
-- [ ] Maximum length/size
-- [ ] Minimum values
-- [ ] Concurrent access
-- [ ] Network failures
-- [ ] Permission denied
-- [ ] Invalid data formats
-
-## Common Problems to Find
-
-### Vague Language
-Look for and flag:
-- "appropriate"
-- "reasonable"
-- "correctly"
-- "properly"
-- "as expected"
-- "etc."
-- "and so on"
-
-### Missing Details
-- [ ] Which user role?
-- [ ] What error message exactly?
-- [ ] What happens on failure?
-- [ ] What are the limits?
-- [ ] What validations apply?
-
-### Hidden Complexity
-- [ ] Multi-step process hidden in one AC
-- [ ] Async operations not addressed
-- [ ] State management unclear
-- [ ] Error recovery not defined
-
-## Validation Report Template
-
-After review, document:
-
-```yaml
-issues_found:
- - id: 1
- severity: high|medium|low
- ac: "AC1"
- problem: "Description"
- fix: "How to fix"
-```
-
-## Quality Gate
-
-Validation passes when:
-- [ ] All AC reviewed against checklist
-- [ ] All issues documented
-- [ ] All issues fixed in story file
-- [ ] Quality score >= 80
-- [ ] Validation report appended
-- [ ] ready_for_dev: true
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-01-init.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-01-init.md
deleted file mode 100644
index 4e25ce72..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-01-init.md
+++ /dev/null
@@ -1,244 +0,0 @@
----
-name: 'step-01-init'
-description: 'Initialize story pipeline: load context, detect mode, cache documents'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-01-init.md'
-nextStepFile: '{workflow_path}/steps/step-02-create-story.md'
-resumeStepFile: '{workflow_path}/steps/step-01b-resume.md'
-workflowFile: '{workflow_path}/workflow.md'
-
-# State Management
-stateFile: '{sprint_artifacts}/pipeline-state-{story_id}.yaml'
-auditFile: '{sprint_artifacts}/audit-{story_id}-{date}.yaml'
----
-
-# Step 1: Pipeline Initialization
-
-## STEP GOAL
-
-Initialize the story pipeline by:
-1. Resolving story parameters (epic_num, story_num)
-2. Detecting execution mode (interactive vs batch)
-3. Checking for existing pipeline state (resume scenario)
-4. Pre-loading and caching documents for token efficiency
-5. Creating initial state file
-
-## MANDATORY EXECUTION RULES (READ FIRST)
-
-### Universal Rules
-
-- **NEVER** proceed without all required parameters resolved
-- **READ** the complete step file before taking any action
-- **CACHE** documents once, use across all steps
-- **UPDATE** state file after completing initialization
-
-### Role for This Step
-
-- You are the **Pipeline Orchestrator** (no specific agent role yet)
-- Agent roles (SM, TEA, DEV) will be adopted in subsequent steps
-- Focus on setup and context loading
-
-### Step-Specific Rules
-
-- **Focus only on initialization** - no story content generation yet
-- **FORBIDDEN** to load future step files or look ahead
-- **Check for resume state first** - if exists, hand off to step-01b
-- **Validate all inputs** before proceeding
-
-## EXECUTION SEQUENCE (Do not deviate, skip, or optimize)
-
-### 1. Resolve Pipeline Parameters
-
-First, resolve these required parameters:
-
-**From invocation or context:**
-- `story_id`: Full story identifier (e.g., "1-4")
-- `epic_num`: Epic number (e.g., 1)
-- `story_num`: Story number within epic (e.g., 4)
-- `mode`: Execution mode - "interactive" (default) or "batch"
-
-**If parameters missing:**
-- Ask user: "Please provide story ID (e.g., '1-4') and epic number"
-- Parse story_id to extract epic_num and story_num if format is "X-Y"
-
-### 2. Check for Existing Pipeline State (Resume Detection)
-
-Check if state file exists: `{sprint_artifacts}/pipeline-state-{story_id}.yaml`
-
-**If state file exists and has `stepsCompleted` array with entries:**
-- **STOP immediately**
-- Load and execute `{resumeStepFile}` (step-01b-resume.md)
-- Do not proceed with fresh initialization
-- This is auto-proceed - no user choice needed
-
-**If no state file or empty `stepsCompleted`:**
-- Continue with fresh pipeline initialization
-
-### 3. Locate Story File
-
-Search for existing story file with pattern:
-- Primary: `{sprint_artifacts}/story-{story_id}.md`
-- Alternative: `{sprint_artifacts}/{story_id}*.md`
-
-**Record finding:**
-- `story_file_exists`: true/false
-- `story_file_path`: path if exists, null otherwise
-
-### 4. Pre-Load and Cache Documents
-
-Load these documents ONCE for use across all steps:
-
-#### A. Project Context (REQUIRED)
-```
-Pattern: **/project-context.md
-Strategy: FULL_LOAD
-Cache: true
-```
-- Load complete project-context.md
-- This contains critical rules and patterns
-
-#### B. Epic File (REQUIRED)
-```
-Pattern: {output_folder}/epic-{epic_num}.md OR {output_folder}/epics.md
-Strategy: SELECTIVE_LOAD (just current epic section)
-Cache: true
-```
-- Find and load epic definition for current story
-- Extract story description, BDD scenarios
-
-#### C. Architecture (SELECTIVE)
-```
-Pattern: {output_folder}/architecture.md
-Strategy: INDEX_GUIDED
-Sections: tech_stack, data_model, api_patterns
-Cache: true
-```
-- Load only relevant architecture sections
-- Skip detailed implementation that's not needed
-
-#### D. Story File (IF EXISTS)
-```
-Pattern: {sprint_artifacts}/story-{story_id}.md
-Strategy: FULL_LOAD (if exists)
-Cache: true
-```
-- If story exists, load for validation/continuation
-- Will be created in step 2 if not exists
-
-### 5. Create Initial State File
-
-Create state file at `{stateFile}`:
-
-```yaml
----
-story_id: "{story_id}"
-epic_num: {epic_num}
-story_num: {story_num}
-mode: "{mode}"
-stepsCompleted: []
-lastStep: 0
-currentStep: 1
-status: "initializing"
-started_at: "{timestamp}"
-updated_at: "{timestamp}"
-cached_context:
- project_context_loaded: true
- epic_loaded: true
- architecture_sections: ["tech_stack", "data_model", "api_patterns"]
- story_file_exists: {story_file_exists}
- story_file_path: "{story_file_path}"
-steps:
- step-01-init: { status: in_progress }
- step-02-create-story: { status: pending }
- step-03-validate-story: { status: pending }
- step-04-atdd: { status: pending }
- step-05-implement: { status: pending }
- step-06-code-review: { status: pending }
- step-07-complete: { status: pending }
- step-08-summary: { status: pending }
----
-```
-
-### 6. Present Initialization Summary
-
-Report to user:
-
-```
-Pipeline Initialized for Story {story_id}
-
-Mode: {mode}
-Epic: {epic_num}
-Story: {story_num}
-
-Documents Cached:
-- Project Context: [loaded from path]
-- Epic {epic_num}: [loaded sections]
-- Architecture: [loaded sections]
-- Story File: [exists/will be created]
-
-Pipeline State: {stateFile}
-
-Ready to proceed to story creation.
-```
-
-### 7. Update State and Proceed
-
-Update state file:
-- Set `stepsCompleted: [1]`
-- Set `lastStep: 1`
-- Set `steps.step-01-init.status: completed`
-- Set `status: "in_progress"`
-
-### 8. Present Menu (Interactive Mode Only)
-
-**If mode == "interactive":**
-
-Display menu and wait for user input:
-```
-[C] Continue to Story Creation
-[H] Halt pipeline
-```
-
-**Menu Handling:**
-- **C (Continue)**: Load and execute `{nextStepFile}`
-- **H (Halt)**: Save checkpoint, exit gracefully
-
-**If mode == "batch":**
-- Auto-proceed to next step
-- Load and execute `{nextStepFile}` immediately
-
-## QUALITY GATE
-
-Before proceeding, verify:
-- [ ] All parameters resolved (story_id, epic_num, story_num, mode)
-- [ ] State file created and valid
-- [ ] Project context loaded
-- [ ] Epic definition loaded
-- [ ] Architecture sections loaded (at least tech_stack)
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [initialization complete AND state file updated AND quality gate passed],
-load and execute `{nextStepFile}` to begin story creation.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- All parameters resolved
-- Resume state detected and handed off correctly
-- Documents cached efficiently (not reloaded)
-- State file created with proper structure
-- Menu presented and user input handled
-
-### β FAILURE
-- Proceeding without resolved parameters
-- Not checking for resume state first
-- Loading documents redundantly across steps
-- Not creating state file before proceeding
-- Skipping directly to implementation
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-01b-resume.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-01b-resume.md
deleted file mode 100644
index d6fb3d3b..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-01b-resume.md
+++ /dev/null
@@ -1,213 +0,0 @@
----
-name: 'step-01b-resume'
-description: 'Resume pipeline from checkpoint after failure or interruption'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-01b-resume.md'
-stepsPath: '{workflow_path}/steps'
-
-# State Management
-stateFile: '{sprint_artifacts}/pipeline-state-{story_id}.yaml'
----
-
-# Step 1b: Resume from Checkpoint
-
-## STEP GOAL
-
-Resume a previously started pipeline from the last completed checkpoint:
-1. Load existing pipeline state
-2. Restore cached document context
-3. Determine next step to execute
-4. Present resume options to user
-
-## MANDATORY EXECUTION RULES
-
-### Universal Rules
-
-- **NEVER** restart from step 1 if progress exists
-- **ALWAYS** restore cached context before resuming
-- **PRESERVE** all completed step data
-- **VALIDATE** state file integrity before resuming
-
-### Resume Priority
-
-- Resume from `lastStep + 1` by default
-- Allow user to override and restart from earlier step
-- Warn if restarting would lose completed work
-
-## EXECUTION SEQUENCE
-
-### 1. Load Pipeline State
-
-Read state file: `{stateFile}`
-
-Extract:
-- `story_id`, `epic_num`, `story_num`, `mode`
-- `stepsCompleted`: Array of completed step numbers
-- `lastStep`: Last successfully completed step
-- `cached_context`: Document loading status
-- `steps`: Individual step status records
-
-### 2. Validate State Integrity
-
-Check state file is valid:
-- [ ] `story_id` matches requested story
-- [ ] `stepsCompleted` is valid array
-- [ ] `lastStep` corresponds to actual completed work
-- [ ] No corruption in step records
-
-**If invalid:**
-- Warn user: "State file appears corrupted"
-- Offer: "Start fresh or attempt recovery?"
-
-### 3. Restore Cached Context
-
-Re-load documents if not in memory:
-
-```yaml
-cached_context:
- project_context_loaded: {reload if false}
- epic_loaded: {reload if false}
- architecture_sections: {reload specified sections}
- story_file_exists: {verify still exists}
- story_file_path: {verify path valid}
-```
-
-**Efficiency note:** Only reload what's needed, don't duplicate work.
-
-### 4. Present Resume Summary
-
-Display current state:
-
-```
-Pipeline Resume for Story {story_id}
-
-Previous Session:
-- Started: {started_at}
-- Last Update: {updated_at}
-- Mode: {mode}
-
-Progress:
-- Steps Completed: {stepsCompleted}
-- Last Step: {lastStep} ({step_name})
-- Next Step: {lastStep + 1} ({next_step_name})
-
-Step Status:
- [β] Step 1: Initialize
- [β] Step 2: Create Story
- [β] Step 3: Validate Story
- [ ] Step 4: ATDD (NEXT)
- [ ] Step 5: Implement
- [ ] Step 6: Code Review
- [ ] Step 7: Complete
- [ ] Step 8: Summary
-```
-
-### 5. Present Resume Options
-
-**Menu:**
-```
-Resume Options:
-
-[C] Continue from Step {lastStep + 1} ({next_step_name})
-[R] Restart from specific step (will mark later steps as pending)
-[F] Fresh start (lose all progress)
-[H] Halt
-
-Select option:
-```
-
-### 6. Handle User Selection
-
-**C (Continue):**
-- Update state: `currentStep: {lastStep + 1}`
-- Load and execute next step file
-
-**R (Restart from step):**
-- Ask: "Which step? (2-8)"
-- Validate step number
-- Mark selected step and all later as `pending`
-- Update `lastStep` to step before selected
-- Load and execute selected step
-
-**F (Fresh start):**
-- Confirm: "This will lose all progress. Are you sure? (y/n)"
-- If confirmed: Delete state file, redirect to step-01-init.md
-- If not: Return to menu
-
-**H (Halt):**
-- Save current state
-- Exit gracefully
-
-### 7. Determine Next Step File
-
-Map step number to file:
-
-| Step | File |
-|------|------|
-| 2 | step-02-create-story.md |
-| 3 | step-03-validate-story.md |
-| 4 | step-04-atdd.md |
-| 5 | step-05-implement.md |
-| 6 | step-06-code-review.md |
-| 7 | step-07-complete.md |
-| 8 | step-08-summary.md |
-
-### 8. Update State and Execute
-
-Before loading next step:
-- Update `updated_at` to current timestamp
-- Set `currentStep` to target step
-- Set target step status to `in_progress`
-
-Then load and execute: `{stepsPath}/step-{XX}-{name}.md`
-
-## BATCH MODE HANDLING
-
-If `mode == "batch"`:
-- Skip menu presentation
-- Auto-continue from `lastStep + 1`
-- If `lastStep` was a failure, check error details
-- If retryable error, attempt same step again
-- If non-retryable, halt with error report
-
-## ERROR RECOVERY
-
-### Common Resume Scenarios
-
-**Story file missing after step 2:**
-- Warn user
-- Offer to restart from step 2
-
-**Tests missing after step 4:**
-- Warn user
-- Offer to restart from step 4
-
-**Implementation incomplete after step 5:**
-- Check git status for partial changes
-- Offer to continue or rollback
-
-**Code review incomplete after step 6:**
-- Check if issues were logged
-- Offer to continue review or re-run
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- State file loaded and validated
-- Context restored efficiently
-- User presented clear resume options
-- Correct step file loaded and executed
-- No data loss during resume
-
-### β FAILURE
-- Starting from step 1 when progress exists
-- Not validating state file integrity
-- Loading wrong step after resume
-- Losing completed work without confirmation
-- Not restoring cached context
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-02-create-story.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-02-create-story.md
deleted file mode 100644
index 79d83ef8..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-02-create-story.md
+++ /dev/null
@@ -1,244 +0,0 @@
----
-name: 'step-02-create-story'
-description: 'Create detailed story file from epic definition with research'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-02-create-story.md'
-nextStepFile: '{workflow_path}/steps/step-03-validate-story.md'
-checklist: '{workflow_path}/checklists/story-creation.md'
-
-# Role Switch
-role: sm
-agentFile: '{project-root}/_bmad/bmm/agents/sm.md'
----
-
-# Step 2: Create Story
-
-## ROLE SWITCH
-
-**Switching to SM (Scrum Master) perspective.**
-
-You are now the Scrum Master facilitating story creation. Your expertise:
-- User story structure and acceptance criteria
-- BDD scenario writing (Given/When/Then)
-- Task breakdown and estimation
-- Ensuring testability of requirements
-
-## STEP GOAL
-
-Create a detailed, implementation-ready story file:
-1. Research best practices for the domain
-2. Extract story definition from epic
-3. Write clear acceptance criteria with BDD scenarios
-4. Define tasks and subtasks
-5. Ensure all criteria are testable
-
-## MANDATORY EXECUTION RULES
-
-### Role-Specific Rules
-
-- **THINK** like a product/process expert, not a developer
-- **FOCUS** on WHAT, not HOW (implementation comes later)
-- **ENSURE** every AC is testable and measurable
-- **AVOID** technical implementation details in AC
-
-### Step-Specific Rules
-
-- **SKIP** this step if story file already exists (check cached context)
-- **RESEARCH** best practices before writing
-- **USE** project-context.md patterns for consistency
-- **CREATE** file at `{sprint_artifacts}/story-{story_id}.md`
-
-## EXECUTION SEQUENCE
-
-### 1. Check if Story Already Exists
-
-From cached context, check `story_file_exists`:
-
-**If story file exists:**
-- Read and display existing story summary
-- Ask: "Story file exists. [V]alidate existing, [R]ecreate from scratch?"
-- If V: Proceed to step-03-validate-story.md
-- If R: Continue with story creation (will overwrite)
-
-**If story does not exist:**
-- Continue with creation
-
-### 2. Research Phase (MCP Tools)
-
-Use MCP tools for domain research:
-
-```
-mcp__exa__web_search_exa:
- query: "user story acceptance criteria best practices agile {domain}"
-
-mcp__exa__get_code_context_exa:
- query: "{technology} implementation patterns"
-```
-
-**Extract from research:**
-- AC writing best practices
-- Common patterns for this domain
-- Anti-patterns to avoid
-
-### 3. Load Epic Definition
-
-From cached epic file, extract for story {story_id}:
-- Story title and description
-- User persona
-- Business value
-- Initial AC ideas
-- BDD scenarios if present
-
-### 4. Generate Story Content
-
-Create story file following template:
-
-```markdown
----
-id: story-{story_id}
-epic: {epic_num}
-title: "{story_title}"
-status: draft
-created_at: {timestamp}
----
-
-# Story {story_id}: {story_title}
-
-## User Story
-
-As a [persona],
-I want to [action],
-So that [benefit].
-
-## Acceptance Criteria
-
-### AC1: [Criterion Name]
-
-**Given** [precondition]
-**When** [action]
-**Then** [expected result]
-
-**Test Scenarios:**
-- [ ] Scenario 1: [description]
-- [ ] Scenario 2: [description]
-
-### AC2: [Criterion Name]
-...
-
-## Tasks
-
-### Task 1: [Task Name]
-- [ ] Subtask 1.1
-- [ ] Subtask 1.2
-
-### Task 2: [Task Name]
-...
-
-## Technical Notes
-
-### Database Changes
-- [any schema changes needed]
-
-### API Changes
-- [any endpoint changes]
-
-### UI Changes
-- [any frontend changes]
-
-## Dependencies
-- [list any dependencies on other stories or systems]
-
-## Out of Scope
-- [explicitly list what is NOT included]
-```
-
-### 5. Verify Story Quality
-
-Before saving, verify:
-- [ ] All AC have Given/When/Then format
-- [ ] Each AC has at least 2 test scenarios
-- [ ] Tasks cover all AC implementation
-- [ ] No implementation details in AC (WHAT not HOW)
-- [ ] Out of scope is defined
-- [ ] Dependencies listed if any
-
-### 6. Save Story File
-
-Write to: `{sprint_artifacts}/story-{story_id}.md`
-
-Update state file:
-- `cached_context.story_file_exists: true`
-- `cached_context.story_file_path: {path}`
-
-### 7. Update Pipeline State
-
-Update state file:
-- Add `2` to `stepsCompleted`
-- Set `lastStep: 2`
-- Set `steps.step-02-create-story.status: completed`
-- Set `steps.step-02-create-story.duration: {duration}`
-
-### 8. Present Summary and Menu
-
-Display:
-```
-Story {story_id} Created
-
-Title: {story_title}
-Acceptance Criteria: {count}
-Test Scenarios: {count}
-Tasks: {count}
-
-File: {story_file_path}
-```
-
-**Interactive Mode Menu:**
-```
-[C] Continue to Validation
-[E] Edit story manually
-[R] Regenerate story
-[H] Halt pipeline
-```
-
-**Batch Mode:** Auto-continue to next step.
-
-## QUALITY GATE
-
-Before proceeding:
-- [ ] Story file created at correct location
-- [ ] All AC in Given/When/Then format
-- [ ] Test scenarios defined for each AC
-- [ ] Tasks cover full implementation scope
-- [ ] File passes frontmatter validation
-
-## MCP TOOLS AVAILABLE
-
-- `mcp__exa__web_search_exa` - Research best practices
-- `mcp__exa__get_code_context_exa` - Tech pattern research
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [story file created AND quality gate passed AND state updated],
-load and execute `{nextStepFile}` for adversarial validation.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- Story file created with proper structure
-- All AC have BDD format
-- Test scenarios cover all AC
-- Research insights incorporated
-- State file updated correctly
-
-### β FAILURE
-- Story file not created or in wrong location
-- AC without Given/When/Then format
-- Missing test scenarios
-- Including implementation details in AC
-- Not updating state before proceeding
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-03-validate-story.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-03-validate-story.md
deleted file mode 100644
index 7fe063eb..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-03-validate-story.md
+++ /dev/null
@@ -1,229 +0,0 @@
----
-name: 'step-03-validate-story'
-description: 'Adversarial validation of story completeness and quality'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-03-validate-story.md'
-nextStepFile: '{workflow_path}/steps/step-04-atdd.md'
-checklist: '{workflow_path}/checklists/story-validation.md'
-
-# Role (same as step 2, no switch needed)
-role: sm
----
-
-# Step 3: Validate Story
-
-## ROLE CONTINUATION
-
-**Continuing as SM (Scrum Master) - Adversarial Validator mode.**
-
-You are now an ADVERSARIAL validator. Your job is to FIND PROBLEMS, not approve.
-Challenge every assumption. Question every AC. Ensure the story is truly ready.
-
-## STEP GOAL
-
-Perform rigorous validation of the story file:
-1. Research common AC anti-patterns
-2. Validate each acceptance criterion
-3. Check technical feasibility
-4. Ensure all edge cases covered
-5. Fix all issues found
-6. Add validation report
-
-## MANDATORY EXECUTION RULES
-
-### Adversarial Mindset
-
-- **ASSUME** something is wrong - find it
-- **NEVER** say "looks good" without deep analysis
-- **QUESTION** every assumption
-- **FIND** at least 3 issues (if no issues, you haven't looked hard enough)
-
-### Validation Rules
-
-- Every AC must be: Specific, Measurable, Testable
-- Every AC must have test scenarios
-- No vague terms: "should", "might", "could", "etc."
-- No undefined boundaries: "appropriate", "reasonable"
-
-## EXECUTION SEQUENCE
-
-### 1. Research Validation Patterns
-
-Use MCP for research:
-
-```
-mcp__exa__web_search_exa:
- query: "acceptance criteria anti-patterns common mistakes user stories"
-```
-
-**Extract:**
-- Common AC problems
-- Validation techniques
-- Red flags to look for
-
-### 2. Load Story File
-
-Read from cached path: `{story_file_path}`
-
-Parse and extract:
-- All acceptance criteria
-- All test scenarios
-- Task definitions
-- Dependencies
-
-### 3. Validate Each AC (MANDATORY CHECKLIST)
-
-For EACH acceptance criterion:
-
-**Structure Check:**
-- [ ] Has Given/When/Then format
-- [ ] Given is a valid precondition
-- [ ] When is a clear action
-- [ ] Then is a measurable outcome
-
-**Quality Check:**
-- [ ] Specific (no vague terms)
-- [ ] Measurable (clear success criteria)
-- [ ] Testable (can write automated test)
-- [ ] Independent (no hidden dependencies)
-
-**Completeness Check:**
-- [ ] Edge cases considered
-- [ ] Error scenarios defined
-- [ ] Boundary conditions clear
-
-**Anti-pattern Check:**
-- [ ] No implementation details
-- [ ] No AND conjunctions (split into multiple AC)
-- [ ] No OR alternatives (ambiguous)
-
-### 4. Technical Feasibility Check
-
-Cross-reference with architecture.md (from cache):
-
-- [ ] Required data model exists or migration defined
-- [ ] API endpoints fit existing patterns
-- [ ] No conflicts with existing functionality
-- [ ] Security model (RLS) can support requirements
-
-### 5. Test Scenario Coverage
-
-Verify test scenarios:
-- [ ] At least 2 scenarios per AC
-- [ ] Happy path covered
-- [ ] Error paths covered
-- [ ] Edge cases covered
-- [ ] Each scenario is unique (no duplicates)
-
-### 6. Document All Issues Found
-
-Create issues list:
-
-```yaml
-issues_found:
- - id: 1
- severity: high|medium|low
- ac: AC1
- problem: "Description of issue"
- fix: "How to fix it"
- - id: 2
- ...
-```
-
-### 7. Fix All Issues
-
-For EACH issue:
-1. Edit the story file to fix
-2. Document the fix
-3. Verify fix is correct
-
-### 8. Add Validation Report
-
-Append to story file:
-
-```yaml
-# Validation Report
-validated_by: sm-validator
-validated_at: {timestamp}
-issues_found: {count}
-issues_fixed: {count}
-quality_score: {0-100}
-test_scenarios_count: {count}
-edge_cases_covered: {list}
-ready_for_dev: true|false
-validation_notes: |
- - {note 1}
- - {note 2}
-```
-
-### 9. Update Pipeline State
-
-Update state file:
-- Add `3` to `stepsCompleted`
-- Set `lastStep: 3`
-- Set `steps.step-03-validate-story.status: completed`
-- Record `issues_found` and `issues_fixed` counts
-
-### 10. Present Summary and Menu
-
-Display:
-```
-Story Validation Complete
-
-Issues Found: {count}
-Issues Fixed: {count}
-Quality Score: {score}/100
-
-Validation Areas:
-- AC Structure: β/β
-- Testability: β/β
-- Technical Feasibility: β/β
-- Edge Cases: β/β
-
-Ready for Development: {yes/no}
-```
-
-**Interactive Mode Menu:**
-```
-[C] Continue to ATDD (Test Generation)
-[R] Re-validate
-[E] Edit story manually
-[H] Halt pipeline
-```
-
-**Batch Mode:** Auto-continue if ready_for_dev: true
-
-## QUALITY GATE
-
-Before proceeding:
-- [ ] All issues identified and fixed
-- [ ] Quality score >= 80
-- [ ] ready_for_dev: true
-- [ ] Validation report appended to story file
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [validation complete AND quality gate passed AND ready_for_dev: true],
-load and execute `{nextStepFile}` for ATDD test generation.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- Found and fixed at least 3 issues
-- Quality score >= 80
-- All AC pass validation checklist
-- Validation report added
-- Story marked ready for dev
-
-### β FAILURE
-- Approving story as "looks good" without deep review
-- Missing edge case analysis
-- Not fixing all identified issues
-- Proceeding with quality_score < 80
-- Not adding validation report
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-04-atdd.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-04-atdd.md
deleted file mode 100644
index 08c79302..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-04-atdd.md
+++ /dev/null
@@ -1,308 +0,0 @@
----
-name: 'step-04-atdd'
-description: 'Generate failing acceptance tests before implementation (RED phase)'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-04-atdd.md'
-nextStepFile: '{workflow_path}/steps/step-05-implement.md'
-checklist: '{workflow_path}/checklists/atdd.md'
-
-# Role Switch
-role: tea
-agentFile: '{project-root}/_bmad/bmm/agents/tea.md'
----
-
-# Step 4: ATDD - Acceptance Test-Driven Development
-
-## ROLE SWITCH
-
-**Switching to TEA (Test Engineering Architect) perspective.**
-
-You are now the Test Engineering Architect. Your expertise:
-- Test strategy and design
-- Playwright and Vitest patterns
-- Data factories and fixtures
-- Test-first development methodology
-
-## STEP GOAL
-
-Generate FAILING acceptance tests BEFORE implementation (RED phase):
-1. Research test patterns for the technology stack
-2. Analyze each acceptance criterion
-3. Determine appropriate test level (E2E, API, Component, Unit)
-4. Write tests in Given/When/Then format
-5. Create data factories and fixtures
-6. Verify tests FAIL (they should - nothing is implemented yet)
-7. Generate implementation checklist for DEV
-
-## MANDATORY EXECUTION RULES
-
-### ATDD Principles
-
-- **TESTS FIRST** - Write tests before any implementation
-- **TESTS MUST FAIL** - If tests pass, something is wrong
-- **ONE AC = ONE TEST** (minimum) - More for complex scenarios
-- **REALISTIC DATA** - Use factories, not hardcoded values
-
-### Test Architecture Rules
-
-- Use `data-testid` selectors for stability
-- Network-first pattern (route interception before navigation)
-- Auto-cleanup fixtures
-- No flaky timing-based assertions
-
-## EXECUTION SEQUENCE
-
-### 1. Research Test Patterns
-
-Use MCP tools:
-
-```
-mcp__exa__web_search_exa:
- query: "playwright acceptance test best practices Next.js TypeScript 2025"
-
-mcp__exa__get_code_context_exa:
- query: "vitest playwright test fixtures factories faker patterns"
-```
-
-**Extract:**
-- Current best practices for Next.js testing
-- Fixture and factory patterns
-- Common pitfalls to avoid
-
-### 2. Analyze Acceptance Criteria
-
-From cached story file, for EACH acceptance criterion:
-
-```yaml
-ac_analysis:
- - ac_id: AC1
- title: "{ac_title}"
- given: "{given clause}"
- when: "{when clause}"
- then: "{then clause}"
- test_level: E2E|API|Component|Unit
- test_file: "{proposed test file path}"
- requires_fixtures: [list]
- requires_factories: [list]
- data_testids_needed: [list]
-```
-
-### 3. Determine Test Levels
-
-For each AC, determine appropriate level:
-
-| Level | When to Use |
-|-------|-------------|
-| E2E | Full user flows, UI interactions |
-| API | Server actions, API endpoints |
-| Component | React component behavior |
-| Unit | Pure business logic, utilities |
-
-### 4. Create Data Factories
-
-For each entity needed in tests:
-
-```typescript
-// src/tests/factories/{entity}.factory.ts
-import { faker } from "@faker-js/faker";
-
-export function create{Entity}(overrides: Partial<{Entity}> = {}): {Entity} {
- return {
- id: faker.string.uuid(),
- // ... realistic fake data
- ...overrides,
- };
-}
-```
-
-### 5. Create Test Fixtures
-
-For each test setup pattern:
-
-```typescript
-// src/tests/fixtures/{feature}.fixture.ts
-import { test as base } from "vitest";
-// or for E2E:
-import { test as base } from "@playwright/test";
-
-export const test = base.extend<{
- // fixture types
-}>({
- // fixture implementations with auto-cleanup
-});
-```
-
-### 6. Write Acceptance Tests
-
-For EACH acceptance criterion:
-
-```typescript
-// src/tests/{appropriate-dir}/{feature}.test.ts
-
-describe("AC{N}: {ac_title}", () => {
- test("Given {given}, When {when}, Then {then}", async () => {
- // Arrange (Given)
- const data = createTestData();
-
- // Act (When)
- const result = await performAction(data);
-
- // Assert (Then)
- expect(result).toMatchExpectedOutcome();
- });
-
- // Additional scenarios from story
- test("Edge case: {scenario}", async () => {
- // ...
- });
-});
-```
-
-### 7. Document Required data-testids
-
-Create list of data-testids that DEV must implement:
-
-```markdown
-## Required data-testid Attributes
-
-| Element | data-testid | Purpose |
-|---------|-------------|---------|
-| Submit button | submit-{feature} | Test form submission |
-| Error message | error-{feature} | Verify error display |
-| ... | ... | ... |
-```
-
-### 8. Verify Tests FAIL
-
-Run tests and verify they fail:
-
-```bash
-npm test -- --run {test-file}
-```
-
-**Expected:** All tests should FAIL (RED phase)
-- "Cannot find element with data-testid"
-- "Function not implemented"
-- "Route not found"
-
-**If tests PASS:** Something is wrong - investigate
-
-### 9. Create ATDD Checklist
-
-Create: `{sprint_artifacts}/atdd-checklist-{story_id}.md`
-
-```markdown
-# ATDD Checklist for Story {story_id}
-
-## Test Files Created
-- [ ] {test_file_1}
-- [ ] {test_file_2}
-
-## Factories Created
-- [ ] {factory_1}
-- [ ] {factory_2}
-
-## Fixtures Created
-- [ ] {fixture_1}
-
-## Implementation Requirements for DEV
-
-### Required data-testid Attributes
-| Element | Attribute |
-|---------|-----------|
-| ... | ... |
-
-### API Endpoints Needed
-- [ ] {endpoint_1}
-- [ ] {endpoint_2}
-
-### Database Changes
-- [ ] {migration_1}
-
-## Test Status (RED Phase)
-All tests should FAIL until implementation:
-- [ ] {test_1}: FAILING β
-- [ ] {test_2}: FAILING β
-```
-
-### 10. Update Pipeline State
-
-Update state file:
-- Add `4` to `stepsCompleted`
-- Set `lastStep: 4`
-- Set `steps.step-04-atdd.status: completed`
-- Record test file paths created
-
-### 11. Present Summary and Menu
-
-Display:
-```
-ATDD Complete - RED Phase Verified
-
-Tests Created: {count}
-All Tests FAILING: β (as expected)
-
-Test Files:
-- {test_file_1}
-- {test_file_2}
-
-Factories: {count}
-Fixtures: {count}
-data-testids Required: {count}
-
-ATDD Checklist: {checklist_path}
-
-Next: DEV will implement to make tests GREEN
-```
-
-**Interactive Mode Menu:**
-```
-[C] Continue to Implementation
-[T] Run tests again
-[E] Edit tests
-[H] Halt pipeline
-```
-
-**Batch Mode:** Auto-continue
-
-## QUALITY GATE
-
-Before proceeding:
-- [ ] Test file created for each AC
-- [ ] All tests FAIL (RED phase verified)
-- [ ] Factories created for test data
-- [ ] data-testid requirements documented
-- [ ] ATDD checklist created
-
-## MCP TOOLS AVAILABLE
-
-- `mcp__exa__web_search_exa` - Test pattern research
-- `mcp__exa__get_code_context_exa` - Framework-specific patterns
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [tests created AND all tests FAIL AND checklist created],
-load and execute `{nextStepFile}` for implementation.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- Tests written for all AC
-- All tests FAIL (red phase)
-- Factories use faker, not hardcoded data
-- Fixtures have auto-cleanup
-- data-testid requirements documented
-- ATDD checklist complete
-
-### β FAILURE
-- Tests PASS before implementation
-- Hardcoded test data
-- Missing edge case tests
-- No data-testid documentation
-- Skipping to implementation without tests
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-05-implement.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-05-implement.md
deleted file mode 100644
index d1f35291..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-05-implement.md
+++ /dev/null
@@ -1,285 +0,0 @@
----
-name: 'step-05-implement'
-description: 'Implement story to make tests pass (GREEN phase)'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-05-implement.md'
-nextStepFile: '{workflow_path}/steps/step-05b-post-validation.md'
-checklist: '{workflow_path}/checklists/implementation.md'
-
-# Role Switch
-role: dev
-agentFile: '{project-root}/_bmad/bmm/agents/dev.md'
----
-
-# Step 5: Implement Story
-
-## ROLE SWITCH
-
-**Switching to DEV (Developer) perspective.**
-
-You are now the Developer implementing the story. Your expertise:
-- Next.js 16 with App Router
-- TypeScript strict mode
-- Supabase with RLS
-- TDD methodology (make tests GREEN)
-
-## STEP GOAL
-
-Implement the story using TDD methodology:
-1. Research implementation patterns
-2. Review ATDD checklist and failing tests
-3. For each failing test: implement minimal code to pass
-4. Run tests, verify GREEN
-5. Ensure lint and build pass
-6. No refactoring yet (that's code review)
-
-## MANDATORY EXECUTION RULES
-
-### TDD Rules (RED-GREEN-REFACTOR)
-
-- **GREEN PHASE** - Make tests pass with minimal code
-- **ONE TEST AT A TIME** - Don't implement all at once
-- **MINIMAL CODE** - Just enough to pass, no over-engineering
-- **RUN TESTS FREQUENTLY** - After each change
-
-### Implementation Rules
-
-- **Follow project-context.md** patterns exactly
-- **Result type** for all server actions (never throw)
-- **snake_case** for database columns
-- **Multi-tenancy** with tenant_id on all tables
-- **RLS policies** for all new tables
-
-## EXECUTION SEQUENCE
-
-### 1. Research Implementation Patterns
-
-Use MCP tools:
-
-```
-mcp__exa__get_code_context_exa:
- query: "Next.js 16 server actions Supabase RLS multi-tenant"
-
-mcp__supabase__list_tables:
- # Understand current schema
-```
-
-### 2. Review ATDD Checklist
-
-Load: `{sprint_artifacts}/atdd-checklist-{story_id}.md`
-
-Extract:
-- Required data-testid attributes
-- API endpoints needed
-- Database changes required
-- Current failing tests
-
-### 3. Run Failing Tests
-
-```bash
-npm test -- --run
-```
-
-Confirm all tests are FAILING (from ATDD phase).
-
-### 4. Implementation Loop
-
-For EACH acceptance criterion:
-
-**A. Focus on one failing test:**
-```bash
-npm test -- --run --grep "{test_name}"
-```
-
-**B. Implement minimal code:**
-- Database migration if needed
-- Server action / API route
-- UI component with data-testid
-- Type definitions
-
-**C. Run targeted test:**
-```bash
-npm test -- --run --grep "{test_name}"
-```
-
-**D. Verify GREEN:**
-- Test passes β
-- Move to next test
-
-### 5. Database Migrations
-
-For any schema changes:
-
-```bash
-# Create migration file
-npx supabase migration new {name}
-
-# Migration content
--- Enable RLS
-alter table {table} enable row level security;
-
--- RLS policies
-create policy "Tenants can view own data"
- on {table} for select
- using (tenant_id = auth.jwt() ->> 'tenant_id');
-```
-
-Apply to remote:
-```bash
-npx supabase db push
-```
-
-### 6. Server Actions Pattern
-
-Follow project-context.md pattern:
-
-```typescript
-// src/modules/{module}/actions/{action}.ts
-"use server";
-
-import { ok, err, Result } from "@/lib/result";
-import { createClient } from "@/lib/supabase/server";
-
-export async function actionName(
- input: InputType
-): Promise> {
- const supabase = await createClient();
-
- const { data, error } = await supabase
- .from("table")
- .select("*")
- .eq("tenant_id", tenantId);
-
- if (error) {
- return err("DB_ERROR", error.message);
- }
-
- return ok(data);
-}
-```
-
-### 7. UI Components Pattern
-
-```tsx
-// src/modules/{module}/components/{Component}.tsx
-"use client";
-
-export function Component({ data }: Props) {
- return (
-
-
-
- );
-}
-```
-
-### 8. Run Full Test Suite
-
-After all AC implemented:
-
-```bash
-npm test -- --run
-```
-
-**All tests should pass (GREEN).**
-
-### 9. Lint and Build
-
-```bash
-npm run lint
-npm run build
-```
-
-Fix any issues that arise.
-
-### 10. Verify Implementation Completeness
-
-Check against ATDD checklist:
-- [ ] All data-testid attributes added
-- [ ] All API endpoints created
-- [ ] All database migrations applied
-- [ ] All tests passing
-
-### 11. Update Pipeline State
-
-Update state file:
-- Add `5` to `stepsCompleted`
-- Set `lastStep: 5`
-- Set `steps.step-05-implement.status: completed`
-- Record files modified
-
-### 12. Present Summary and Menu
-
-Display:
-```
-Implementation Complete - GREEN Phase
-
-Tests: {passed}/{total} PASSING
-Lint: β Clean
-Build: β Success
-
-Files Modified:
-- {file_1}
-- {file_2}
-
-Migrations Applied:
-- {migration_1}
-
-Ready for Code Review
-```
-
-**Interactive Mode Menu:**
-```
-[C] Continue to Post-Implementation Validation
-[T] Run tests again
-[B] Run build again
-[H] Halt pipeline
-```
-
-**Batch Mode:** Auto-continue if all tests pass
-
-## QUALITY GATE
-
-Before proceeding:
-- [ ] All tests pass (GREEN)
-- [ ] Lint clean
-- [ ] Build succeeds
-- [ ] All ATDD checklist items complete
-- [ ] RLS policies for new tables
-
-## MCP TOOLS AVAILABLE
-
-- `mcp__exa__get_code_context_exa` - Implementation patterns
-- `mcp__supabase__list_tables` - Schema inspection
-- `mcp__supabase__execute_sql` - Query testing
-- `mcp__supabase__apply_migration` - Schema changes
-- `mcp__supabase__generate_typescript_types` - Type sync
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [all tests pass AND lint clean AND build succeeds],
-load and execute `{nextStepFile}` for post-implementation validation.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- All tests pass (GREEN phase)
-- TDD methodology followed
-- Result type used (no throws)
-- RLS policies in place
-- Lint and build clean
-
-### β FAILURE
-- Tests still failing
-- Skipping tests to implement faster
-- Throwing errors instead of Result type
-- Missing RLS policies
-- Build or lint failures
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-05b-post-validation.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-05b-post-validation.md
deleted file mode 100644
index 2d81248f..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-05b-post-validation.md
+++ /dev/null
@@ -1,437 +0,0 @@
----
-name: 'step-05b-post-validation'
-description: 'Verify completed tasks against codebase reality (catch false positives)'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-05b-post-validation.md'
-nextStepFile: '{workflow_path}/steps/step-06-code-review.md'
-prevStepFile: '{workflow_path}/steps/step-05-implement.md'
-
-# Role Switch
-role: dev
-requires_fresh_context: false # Continue from implementation context
----
-
-# Step 5b: Post-Implementation Validation
-
-## ROLE CONTINUATION - VERIFICATION MODE
-
-**Continuing as DEV but switching to VERIFICATION mindset.**
-
-You are now verifying that completed work actually exists in the codebase.
-This catches the common problem of tasks marked [x] but implementation is incomplete.
-
-## STEP GOAL
-
-Verify all completed tasks against codebase reality:
-1. Re-read story file and extract completed tasks
-2. For each completed task, identify what should exist
-3. Use codebase search tools to verify existence
-4. Run tests to verify they actually pass
-5. Identify false positives (marked done but not actually done)
-6. If gaps found, uncheck tasks and add missing work
-7. Re-run implementation if needed
-
-## MANDATORY EXECUTION RULES
-
-### Verification Principles
-
-- **TRUST NOTHING** - Verify every completed task
-- **CHECK EXISTENCE** - Files, functions, components must exist
-- **CHECK COMPLETENESS** - Not just existence, but full implementation
-- **TEST VERIFICATION** - Claimed test coverage must be real
-- **NO ASSUMPTIONS** - Re-scan the codebase with fresh eyes
-
-### What to Verify
-
-For each task marked [x]:
-- Files mentioned exist at correct paths
-- Functions/components declared and exported
-- Tests exist and actually pass
-- Database migrations applied
-- API endpoints respond correctly
-
-## EXECUTION SEQUENCE
-
-### 1. Load Story and Extract Completed Tasks
-
-Load story file: `{story_file}`
-
-Extract all tasks from story that are marked [x]:
-```regex
-- \[x\] (.+)
-```
-
-Build list of `completed_tasks` to verify.
-
-### 2. Categorize Tasks by Type
-
-For each completed task, determine what needs verification:
-
-**File Creation Tasks:**
-- Pattern: "Create {file_path}"
-- Verify: File exists at path
-
-**Component/Function Tasks:**
-- Pattern: "Add {name} function/component"
-- Verify: Symbol exists and is exported
-
-**Test Tasks:**
-- Pattern: "Add test for {feature}"
-- Verify: Test file exists and test passes
-
-**Database Tasks:**
-- Pattern: "Add {table} table", "Create migration"
-- Verify: Migration file exists, schema matches
-
-**API Tasks:**
-- Pattern: "Create {endpoint} endpoint"
-- Verify: Route file exists, handler implemented
-
-**UI Tasks:**
-- Pattern: "Add {element} to UI"
-- Verify: Component has data-testid attribute
-
-### 3. Verify File Existence
-
-For all file-related tasks:
-
-```bash
-# Use Glob to find files
-glob: "**/{mentioned_filename}"
-```
-
-**Check:**
-- [ ] File exists
-- [ ] File is not empty
-- [ ] File has expected exports
-
-**False Positive Indicators:**
-- File doesn't exist
-- File exists but is empty
-- File exists but missing expected symbols
-
-### 4. Verify Function/Component Implementation
-
-For code implementation tasks:
-
-```bash
-# Use Grep to find symbols
-grep: "{function_name|component_name}"
- glob: "**/*.{ts,tsx}"
- output_mode: "content"
-```
-
-**Check:**
-- [ ] Symbol is declared
-- [ ] Symbol is exported
-- [ ] Implementation is not a stub/placeholder
-- [ ] Required logic is present
-
-**False Positive Indicators:**
-- Symbol not found
-- Symbol exists but marked TODO
-- Symbol exists but throws "Not implemented"
-- Symbol exists but returns empty/null
-
-### 5. Verify Test Coverage
-
-For all test-related tasks:
-
-```bash
-# Find test files
-glob: "**/*.test.{ts,tsx}"
-glob: "**/*.spec.{ts,tsx}"
-
-# Run specific tests
-npm test -- --run --grep "{feature_name}"
-```
-
-**Check:**
-- [ ] Test file exists
-- [ ] Test describes the feature
-- [ ] Test actually runs (not skipped)
-- [ ] Test passes (GREEN)
-
-**False Positive Indicators:**
-- No test file found
-- Test exists but skipped (it.skip)
-- Test exists but fails
-- Test exists but doesn't test the feature (placeholder)
-
-### 6. Verify Database Changes
-
-For database migration tasks:
-
-```bash
-# Find migration files
-glob: "**/migrations/*.sql"
-
-# Check Supabase schema
-mcp__supabase__list_tables
-```
-
-**Check:**
-- [ ] Migration file exists
-- [ ] Migration has been applied
-- [ ] Table/column exists in schema
-- [ ] RLS policies are present
-
-**False Positive Indicators:**
-- Migration file missing
-- Migration not applied to database
-- Table/column doesn't exist
-- RLS policies missing
-
-### 7. Verify API Endpoints
-
-For API endpoint tasks:
-
-```bash
-# Find route files
-glob: "**/app/api/**/{endpoint}/route.ts"
-grep: "export async function {METHOD}"
-```
-
-**Check:**
-- [ ] Route file exists
-- [ ] Handler function implemented
-- [ ] Returns proper Response type
-- [ ] Error handling present
-
-**False Positive Indicators:**
-- Route file doesn't exist
-- Handler throws "Not implemented"
-- Handler returns stub response
-
-### 8. Run Full Verification
-
-Execute verification for ALL completed tasks:
-
-```typescript
-interface VerificationResult {
- task: string;
- status: "verified" | "false_positive";
- evidence: string;
- missing?: string;
-}
-
-const results: VerificationResult[] = [];
-
-for (const task of completed_tasks) {
- const result = await verifyTask(task);
- results.push(result);
-}
-```
-
-### 9. Analyze Verification Results
-
-Count results:
-```
-Total Verified: {verified_count}
-False Positives: {false_positive_count}
-```
-
-### 10. Handle False Positives
-
-**IF false positives found (count > 0):**
-
-Display:
-```
-β οΈ POST-IMPLEMENTATION GAPS DETECTED
-
-Tasks marked complete but implementation incomplete:
-
-{for each false_positive}
-- [ ] {task_description}
- Missing: {what_is_missing}
- Evidence: {grep/glob results}
-
-{add new tasks for missing work}
-- [ ] Actually implement {missing_part}
-```
-
-**Actions:**
-1. Uncheck false positive tasks in story file
-2. Add new tasks for the missing work
-3. Update "Gap Analysis" section in story
-4. Set state to re-run implementation
-
-**Re-run implementation:**
-```
-Detected {false_positive_count} incomplete tasks.
-Re-running Step 5: Implementation to complete missing work...
-
-{load and execute step-05-implement.md}
-```
-
-After re-implementation, **RE-RUN THIS STEP** (step-05b-post-validation.md)
-
-### 11. Handle Verified Success
-
-**IF no false positives (all verified):**
-
-Display:
-```
-β
POST-IMPLEMENTATION VALIDATION PASSED
-
-All {verified_count} completed tasks verified against codebase:
-- Files exist and are complete
-- Functions/components implemented
-- Tests exist and pass
-- Database changes applied
-- API endpoints functional
-
-Ready for Code Review
-```
-
-Update story file "Gap Analysis" section:
-```markdown
-## Gap Analysis
-
-### Post-Implementation Validation
-- **Date:** {timestamp}
-- **Tasks Verified:** {verified_count}
-- **False Positives:** 0
-- **Status:** β
All work verified complete
-
-**Verification Evidence:**
-{for each verified task}
-- β
{task}: {evidence}
-```
-
-### 12. Update Pipeline State
-
-Update state file:
-- Add `5b` to `stepsCompleted`
-- Set `lastStep: 5b`
-- Set `steps.step-05b-post-validation.status: completed`
-- Record verification results:
- ```yaml
- verification:
- tasks_verified: {count}
- false_positives: {count}
- re_implementation_required: {true|false}
- ```
-
-### 13. Present Summary and Menu
-
-Display:
-```
-Post-Implementation Validation Complete
-
-Verification Summary:
-- Tasks Checked: {total_count}
-- Verified Complete: {verified_count}
-- False Positives: {false_positive_count}
-- Re-implementations: {retry_count}
-
-{if false_positives}
-Re-running implementation to complete missing work...
-{else}
-All work verified. Proceeding to Code Review...
-{endif}
-```
-
-**Interactive Mode Menu (only if no false positives):**
-```
-[C] Continue to Code Review
-[V] Run verification again
-[T] Run tests again
-[H] Halt pipeline
-```
-
-**Batch Mode:**
-- Auto re-run implementation if false positives
-- Auto-continue if all verified
-
-## QUALITY GATE
-
-Before proceeding to code review:
-- [ ] All completed tasks verified against codebase
-- [ ] Zero false positives remaining
-- [ ] All tests still passing
-- [ ] Build still succeeds
-- [ ] Gap analysis updated with verification results
-
-## VERIFICATION TOOLS
-
-Use these tools for verification:
-
-```typescript
-// File existence
-glob("{pattern}")
-
-// Symbol search
-grep("{symbol_name}", { glob: "**/*.{ts,tsx}", output_mode: "content" })
-
-// Test execution
-bash("npm test -- --run --grep '{test_name}'")
-
-// Database check
-mcp__supabase__list_tables()
-
-// Read file contents
-read("{file_path}")
-```
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [all tasks verified AND zero false positives],
-load and execute `{nextStepFile}` for code review.
-
-**IF** [false positives detected],
-load and execute `{prevStepFile}` to complete missing work,
-then RE-RUN this step.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- All completed tasks verified against codebase
-- No false positives (or all re-implemented)
-- Tests still passing
-- Evidence documented for each task
-- Gap analysis updated
-
-### β FAILURE
-- Skipping verification ("trust the marks")
-- Not checking actual code existence
-- Not running tests to verify claims
-- Allowing false positives to proceed
-- Not documenting verification evidence
-
-## COMMON FALSE POSITIVE PATTERNS
-
-Watch for these common issues:
-
-1. **Stub Implementations**
- - Function exists but returns `null`
- - Function throws "Not implemented"
- - Component returns empty div
-
-2. **Placeholder Tests**
- - Test exists but skipped (it.skip)
- - Test doesn't actually test the feature
- - Test always passes (no assertions)
-
-3. **Incomplete Files**
- - File created but empty
- - Missing required exports
- - TODO comments everywhere
-
-4. **Database Drift**
- - Migration file exists but not applied
- - Schema doesn't match migration
- - RLS policies missing
-
-5. **API Stubs**
- - Route exists but returns 501
- - Handler not implemented
- - No error handling
-
-This step is the **safety net** that catches incomplete work before code review.
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-06-code-review.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-06-code-review.md
deleted file mode 100644
index ca6e8429..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-06-code-review.md
+++ /dev/null
@@ -1,294 +0,0 @@
----
-name: 'step-06-code-review'
-description: 'Adversarial code review finding 3-10 specific issues'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-06-code-review.md'
-nextStepFile: '{workflow_path}/steps/step-07-complete.md'
-checklist: '{workflow_path}/checklists/code-review.md'
-
-# Role (continue as dev, but reviewer mindset)
-role: dev
-requires_fresh_context: true # In batch mode, checkpoint here for unbiased review
----
-
-# Step 6: Code Review
-
-## ROLE CONTINUATION - ADVERSARIAL MODE
-
-**Continuing as DEV but switching to ADVERSARIAL REVIEWER mindset.**
-
-You are now a critical code reviewer. Your job is to FIND PROBLEMS.
-- **NEVER** say "looks good" - that's a failure
-- **MUST** find 3-10 specific issues
-- **FIX** every issue you find
-
-## STEP GOAL
-
-Perform adversarial code review:
-1. Query Supabase advisors for security/performance issues
-2. Identify all files changed for this story
-3. Review each file against checklist
-4. Find and document 3-10 issues (MANDATORY)
-5. Fix all issues
-6. Verify tests still pass
-
-## MANDATORY EXECUTION RULES
-
-### Adversarial Requirements
-
-- **MINIMUM 3 ISSUES** - If you found fewer, look harder
-- **MAXIMUM 10 ISSUES** - Prioritize if more found
-- **NO "LOOKS GOOD"** - This is FORBIDDEN
-- **FIX EVERYTHING** - Don't just report, fix
-
-### Review Categories (find issues in EACH)
-
-1. Security
-2. Performance
-3. Error Handling
-4. Test Coverage
-5. Code Quality
-6. Architecture
-
-## EXECUTION SEQUENCE
-
-### 1. Query Supabase Advisors
-
-Use MCP tools:
-
-```
-mcp__supabase__get_advisors:
- type: "security"
-
-mcp__supabase__get_advisors:
- type: "performance"
-```
-
-Document any issues found.
-
-### 2. Identify Changed Files
-
-```bash
-git status
-git diff --name-only HEAD~1
-```
-
-List all files changed for story {story_id}.
-
-### 3. Review Each Category
-
-#### SECURITY REVIEW
-
-For each file, check:
-- [ ] No SQL injection vulnerabilities
-- [ ] No XSS vulnerabilities
-- [ ] Auth checks on all protected routes
-- [ ] RLS policies exist and are correct
-- [ ] No credential exposure (API keys, secrets)
-- [ ] Input validation present
-- [ ] Rate limiting considered
-
-#### PERFORMANCE REVIEW
-
-- [ ] No N+1 query patterns
-- [ ] Indexes exist for query patterns
-- [ ] No unnecessary re-renders
-- [ ] Proper caching strategy
-- [ ] Efficient data fetching
-- [ ] Bundle size impact considered
-
-#### ERROR HANDLING REVIEW
-
-- [ ] Result type used consistently
-- [ ] Error messages are user-friendly
-- [ ] Edge cases handled
-- [ ] Null/undefined checked
-- [ ] Network errors handled gracefully
-
-#### TEST COVERAGE REVIEW
-
-- [ ] All AC have tests
-- [ ] Edge cases tested
-- [ ] Error paths tested
-- [ ] Mocking is appropriate (not excessive)
-- [ ] Tests are deterministic
-
-#### CODE QUALITY REVIEW
-
-- [ ] DRY - no duplicate code
-- [ ] SOLID principles followed
-- [ ] TypeScript strict mode compliant
-- [ ] No any types
-- [ ] Functions are focused (single responsibility)
-- [ ] Naming is clear and consistent
-
-#### ARCHITECTURE REVIEW
-
-- [ ] Module boundaries respected
-- [ ] Imports from index.ts only
-- [ ] Server/client separation correct
-- [ ] Data flow is clear
-- [ ] No circular dependencies
-
-### 4. Document All Issues
-
-For each issue found:
-
-```yaml
-issue_{n}:
- severity: critical|high|medium|low
- category: security|performance|error-handling|testing|quality|architecture
- file: "{file_path}"
- line: {line_number}
- problem: |
- {Clear description of the issue}
- risk: |
- {What could go wrong if not fixed}
- fix: |
- {How to fix it}
-```
-
-### 5. Fix All Issues
-
-For EACH issue documented:
-
-1. Edit the file to fix the issue
-2. Add test if issue wasn't covered
-3. Verify the fix is correct
-4. Mark as fixed
-
-### 6. Run Verification
-
-After all fixes:
-
-```bash
-npm run lint
-npm run build
-npm test -- --run
-```
-
-All must pass.
-
-### 7. Create Review Report
-
-Append to story file or create `{sprint_artifacts}/review-{story_id}.md`:
-
-```markdown
-# Code Review Report - Story {story_id}
-
-## Summary
-- Issues Found: {count}
-- Issues Fixed: {count}
-- Categories Reviewed: {list}
-
-## Issues Detail
-
-### Issue 1: {title}
-- **Severity:** {severity}
-- **Category:** {category}
-- **File:** {file}:{line}
-- **Problem:** {description}
-- **Fix Applied:** {fix_description}
-
-### Issue 2: {title}
-...
-
-## Security Checklist
-- [x] RLS policies verified
-- [x] No credential exposure
-- [x] Input validation present
-
-## Performance Checklist
-- [x] No N+1 queries
-- [x] Indexes verified
-
-## Final Status
-All issues resolved. Tests passing.
-
-Reviewed by: DEV (adversarial)
-Reviewed at: {timestamp}
-```
-
-### 8. Update Pipeline State
-
-Update state file:
-- Add `6` to `stepsCompleted`
-- Set `lastStep: 6`
-- Set `steps.step-06-code-review.status: completed`
-- Record `issues_found` and `issues_fixed`
-
-### 9. Present Summary and Menu
-
-Display:
-```
-Code Review Complete
-
-Issues Found: {count} (minimum 3 required)
-Issues Fixed: {count}
-
-By Category:
-- Security: {count}
-- Performance: {count}
-- Error Handling: {count}
-- Test Coverage: {count}
-- Code Quality: {count}
-- Architecture: {count}
-
-All Tests: PASSING
-Lint: CLEAN
-Build: SUCCESS
-
-Review Report: {report_path}
-```
-
-**Interactive Mode Menu:**
-```
-[C] Continue to Completion
-[R] Run another review pass
-[T] Run tests again
-[H] Halt pipeline
-```
-
-**Batch Mode:** Auto-continue if minimum issues found and fixed
-
-## QUALITY GATE
-
-Before proceeding:
-- [ ] Minimum 3 issues found and fixed
-- [ ] All categories reviewed
-- [ ] All tests still passing
-- [ ] Lint clean
-- [ ] Build succeeds
-- [ ] Review report created
-
-## MCP TOOLS AVAILABLE
-
-- `mcp__supabase__get_advisors` - Security/performance checks
-- `mcp__supabase__execute_sql` - Query verification
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [minimum 3 issues found AND all fixed AND tests pass],
-load and execute `{nextStepFile}` for story completion.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- Found and fixed 3-10 issues
-- All categories reviewed
-- Tests still passing after fixes
-- Review report complete
-- No "looks good" shortcuts
-
-### β FAILURE
-- Saying "looks good" or "no issues found"
-- Finding fewer than 3 issues
-- Not fixing issues found
-- Tests failing after fixes
-- Skipping review categories
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-07-complete.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-07-complete.md
deleted file mode 100644
index d2cbbef8..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-07-complete.md
+++ /dev/null
@@ -1,210 +0,0 @@
----
-name: 'step-07-complete'
-description: 'Update sprint status and create git commit'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-07-complete.md'
-nextStepFile: '{workflow_path}/steps/step-08-summary.md'
-
-# Role Switch
-role: sm
-agentFile: '{project-root}/_bmad/bmm/agents/sm.md'
----
-
-# Step 7: Complete Story
-
-## ROLE SWITCH
-
-**Switching back to SM (Scrum Master) perspective.**
-
-You are completing the story lifecycle:
-- Update sprint tracking
-- Create git commit
-- Finalize documentation
-
-## STEP GOAL
-
-Complete the story development lifecycle:
-1. Final verification (tests, lint, build)
-2. Update sprint-status.yaml
-3. Create git commit with proper message
-4. Update story file status
-
-## MANDATORY EXECUTION RULES
-
-### Completion Rules
-
-- **VERIFY** everything passes before committing
-- **UPDATE** all tracking files
-- **COMMIT** with conventional commit message
-- **DOCUMENT** completion metadata
-
-## EXECUTION SEQUENCE
-
-### 1. Final Verification
-
-Run full verification suite:
-
-```bash
-npm test -- --run
-npm run lint
-npm run build
-```
-
-All must pass before proceeding.
-
-**If any fail:** HALT and report issues.
-
-### 2. Update Story File Status
-
-Edit story file, update frontmatter:
-
-```yaml
----
-status: done
-completed_at: {timestamp}
-implementation_notes: |
- - Tests created and passing
- - Code reviewed and approved
- - {count} issues found and fixed
----
-```
-
-### 3. Update Sprint Status
-
-Edit: `{sprint_artifacts}/sprint-status.yaml`
-
-Find story {story_id} and update:
-
-```yaml
-stories:
- - id: "{story_id}"
- status: done
- completed_at: {timestamp}
- metadata:
- tests_passing: true
- code_reviewed: true
- issues_found: {count}
- issues_fixed: {count}
- pipeline_version: "story-dev-only-v2.0"
-```
-
-### 4. Stage Git Changes
-
-```bash
-git add src/
-git add _bmad-output/implementation-artifacts/story-{story_id}.md
-git add _bmad-output/implementation-artifacts/sprint-status.yaml
-git add src/supabase/migrations/
-```
-
-### 5. Create Git Commit
-
-Check for changes:
-```bash
-git diff --cached --quiet
-```
-
-If changes exist, create commit:
-
-```bash
-git commit -m "$(cat <<'EOF'
-feat(epic-{epic_num}): complete story {story_id}
-
-- Acceptance tests created for all criteria
-- All tests passing (TDD green phase)
-- Code reviewed: {issues_found} issues found and fixed
-
-Story: {story_title}
-Pipeline: story-dev-only-v2.0
-
-π€ Generated with BMAD Story Pipeline
-
-Co-Authored-By: Claude
-EOF
-)"
-```
-
-### 6. Verify Commit
-
-```bash
-git log -1 --oneline
-git status
-```
-
-Confirm:
-- Commit created successfully
-- Working directory clean (or only untracked files)
-
-### 7. Update Pipeline State
-
-Update state file:
-- Add `7` to `stepsCompleted`
-- Set `lastStep: 7`
-- Set `steps.step-07-complete.status: completed`
-- Set `status: completing`
-
-### 8. Present Summary and Menu
-
-Display:
-```
-Story {story_id} Completed
-
-Sprint Status: Updated β
-Story Status: done β
-Git Commit: Created β
-
-Commit: {commit_hash}
-Message: feat(epic-{epic_num}): complete story {story_id}
-
-Files Committed:
-- {file_count} files
-
-Next: Generate summary and audit trail
-```
-
-**Interactive Mode Menu:**
-```
-[C] Continue to Summary
-[L] View git log
-[S] View git status
-[H] Halt (story is complete, audit pending)
-```
-
-**Batch Mode:** Auto-continue to summary
-
-## QUALITY GATE
-
-Before proceeding:
-- [ ] All tests pass
-- [ ] Lint clean
-- [ ] Build succeeds
-- [ ] Sprint status updated
-- [ ] Git commit created
-- [ ] Story status set to done
-
-## CRITICAL STEP COMPLETION
-
-**ONLY WHEN** [verification passes AND commit created AND status updated],
-load and execute `{nextStepFile}` for summary generation.
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- All verification passes
-- Sprint status updated correctly
-- Conventional commit created
-- Story marked as done
-- Clean git state
-
-### β FAILURE
-- Committing with failing tests
-- Missing sprint status update
-- Malformed commit message
-- Not including all changed files
-- Story not marked done
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-08-summary.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-08-summary.md
deleted file mode 100644
index 96f99f22..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/steps/step-08-summary.md
+++ /dev/null
@@ -1,273 +0,0 @@
----
-name: 'step-08-summary'
-description: 'Generate audit trail and pipeline summary report'
-
-# Path Definitions
-workflow_path: '{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only'
-
-# File References
-thisStepFile: '{workflow_path}/steps/step-08-summary.md'
-auditFile: '{sprint_artifacts}/audit-{story_id}-{date}.yaml'
-
-# No role needed - orchestrator
-role: null
----
-
-# Step 8: Pipeline Summary
-
-## STEP GOAL
-
-Generate final audit trail and summary report:
-1. Calculate pipeline metrics
-2. Generate audit trail file
-3. Create summary report
-4. Clean up pipeline state
-5. Suggest next steps
-
-## EXECUTION SEQUENCE
-
-### 1. Calculate Pipeline Metrics
-
-From pipeline state file, calculate:
-
-```yaml
-metrics:
- total_duration: {sum of all step durations}
- steps_completed: {count}
- issues_found: {from code review}
- issues_fixed: {from code review}
- tests_created: {count}
- files_modified: {count}
- migrations_applied: {count}
-```
-
-### 2. Generate Audit Trail
-
-Create: `{auditFile}`
-
-```yaml
----
-audit_version: "1.0"
-pipeline: "story-dev-only-v2.0"
-story_id: "{story_id}"
-epic_num: {epic_num}
----
-
-# Pipeline Audit Trail
-
-## Execution Summary
-started_at: "{started_at}"
-completed_at: "{timestamp}"
-total_duration: "{duration}"
-mode: "{mode}"
-status: "completed"
-
-## Steps Executed
-steps:
- - step: 1
- name: "Initialize"
- status: completed
- duration: "{duration}"
-
- - step: 2
- name: "Create Story"
- status: completed
- duration: "{duration}"
- agent: sm
- output: "{story_file_path}"
-
- - step: 3
- name: "Validate Story"
- status: completed
- duration: "{duration}"
- agent: sm
- issues_found: {count}
- issues_fixed: {count}
-
- - step: 4
- name: "ATDD"
- status: completed
- duration: "{duration}"
- agent: tea
- tests_created: {count}
- test_files:
- - "{file_1}"
- - "{file_2}"
-
- - step: 5
- name: "Implement"
- status: completed
- duration: "{duration}"
- agent: dev
- files_modified: {count}
- migrations:
- - "{migration_1}"
-
- - step: 6
- name: "Code Review"
- status: completed
- duration: "{duration}"
- agent: dev
- issues_found: {count}
- issues_fixed: {count}
- categories_reviewed:
- - security
- - performance
- - error-handling
- - testing
- - quality
- - architecture
-
- - step: 7
- name: "Complete"
- status: completed
- duration: "{duration}"
- agent: sm
- commit_hash: "{hash}"
-
- - step: 8
- name: "Summary"
- status: completed
- duration: "{duration}"
-
-## Quality Gates
-gates:
- story_creation:
- passed: true
- criteria_met: [list]
- validation:
- passed: true
- quality_score: {score}
- atdd:
- passed: true
- tests_failing: true # Expected in red phase
- implementation:
- passed: true
- tests_passing: true
- code_review:
- passed: true
- minimum_issues_found: true
-
-## Artifacts Produced
-artifacts:
- story_file: "{path}"
- test_files:
- - "{path}"
- migrations:
- - "{path}"
- atdd_checklist: "{path}"
- review_report: "{path}"
- commit: "{hash}"
-
-## Token Efficiency
-token_estimate:
- traditional_approach: "~71K tokens (6 claude calls)"
- step_file_approach: "~{actual}K tokens (1 session)"
- savings: "{percentage}%"
-```
-
-### 3. Generate Summary Report
-
-Display to user:
-
-```
-βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
- PIPELINE COMPLETE: Story {story_id}
-βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-
-π EXECUTION SUMMARY
-ββββββββββββββββββββ
-Duration: {total_duration}
-Mode: {mode}
-Status: β Completed Successfully
-
-π STORY DETAILS
-ββββββββββββββββββββ
-Epic: {epic_num}
-Title: {story_title}
-Commit: {commit_hash}
-
-β
QUALITY METRICS
-ββββββββββββββββββββ
-Validation Score: {score}/100
-Issues Found: {count}
-Issues Fixed: {count}
-Tests Created: {count}
-Files Modified: {count}
-
-π ARTIFACTS
-ββββββββββββββββββββ
-Story: {story_file}
-Tests: {test_count} files
-Migrations: {migration_count}
-Audit: {audit_file}
-
-π° TOKEN EFFICIENCY
-ββββββββββββββββββββ
-Traditional: ~71K tokens
-Step-file: ~{actual}K tokens
-Savings: {percentage}%
-
-βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-```
-
-### 4. Update Final Pipeline State
-
-Update state file:
-- Add `8` to `stepsCompleted`
-- Set `lastStep: 8`
-- Set `status: completed`
-- Set `completed_at: {timestamp}`
-
-### 5. Suggest Next Steps
-
-Display:
-
-```
-π NEXT STEPS
-ββββββββββββββββββββ
-1. Review commit: git show {hash}
-2. Push when ready: git push
-3. Next story: bmad build {next_story_id}
-4. View audit: cat {audit_file}
-
-Optional:
-- Run verification: bmad verify {story_id}
-- Run with coverage: npm test -- --coverage
-```
-
-### 6. Clean Up (Optional)
-
-In batch mode, optionally archive pipeline state:
-
-```bash
-mv {state_file} {state_file}.completed
-```
-
-Or keep for reference.
-
-## COMPLETION
-
-Pipeline execution complete. No next step to load.
-
-Display final message:
-```
-Pipeline complete. Story {story_id} is ready.
-```
-
----
-
-## SUCCESS/FAILURE METRICS
-
-### β
SUCCESS
-- Audit trail generated with all details
-- Summary displayed clearly
-- All metrics calculated
-- State marked complete
-- Next steps provided
-
-### β FAILURE
-- Missing audit trail
-- Incomplete metrics
-- State not finalized
-- No summary provided
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/templates/audit-trail.yaml.template b/src/modules/bmm/workflows/4-implementation/story-pipeline/templates/audit-trail.yaml.template
deleted file mode 100644
index fc16f263..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/templates/audit-trail.yaml.template
+++ /dev/null
@@ -1,249 +0,0 @@
-# Audit Trail Template
-# Generated at pipeline completion
-# Location: {sprint_artifacts}/audit-{story_id}-{date}.yaml
-# yamllint disable
-
----
-audit_version: "1.0"
-pipeline_version: "story-pipeline-v2.0"
-
-# Story identification
-story_id: "{{story_id}}"
-epic_num: {{epic_num}}
-story_title: "{{story_title}}"
-
-# Execution summary
-execution:
- started_at: "{{started_at}}"
- completed_at: "{{completed_at}}"
- total_duration: "{{duration}}"
- mode: "{{mode}}"
- status: "{{status}}"
-
-# Agent roles used
-agents:
- sm:
- name: "Scrum Master"
- steps: [2, 3, 7]
- total_time: null
- tea:
- name: "Test Engineering Architect"
- steps: [4]
- total_time: null
- dev:
- name: "Developer"
- steps: [5, 6]
- total_time: null
-
-# Step-by-step execution log
-steps:
- - step: 1
- name: "Initialize"
- status: "{{status}}"
- duration: "{{duration}}"
- actions:
- - "Loaded project context"
- - "Loaded epic definition"
- - "Cached architecture sections"
-
- - step: 2
- name: "Create Story"
- status: "{{status}}"
- duration: "{{duration}}"
- agent: "sm"
- research_queries:
- - "{{query_1}}"
- - "{{query_2}}"
- output: "{{story_file_path}}"
- acceptance_criteria_count: {{count}}
-
- - step: 3
- name: "Validate Story"
- status: "{{status}}"
- duration: "{{duration}}"
- agent: "sm"
- issues_found: {{count}}
- issues_fixed: {{count}}
- quality_score: {{score}}
- validation_areas:
- - "AC structure"
- - "Testability"
- - "Technical feasibility"
- - "Edge cases"
-
- - step: 4
- name: "ATDD (Red Phase)"
- status: "{{status}}"
- duration: "{{duration}}"
- agent: "tea"
- tests_created: {{count}}
- test_files:
- - "{{path}}"
- factories_created:
- - "{{factory}}"
- fixtures_created:
- - "{{fixture}}"
- data_testids_documented: {{count}}
-
- - step: 5
- name: "Implement (Green Phase)"
- status: "{{status}}"
- duration: "{{duration}}"
- agent: "dev"
- files_modified: {{count}}
- migrations_applied:
- - "{{migration}}"
- test_results:
- passed: {{count}}
- failed: 0
- lint_status: "clean"
- build_status: "success"
-
- - step: 6
- name: "Code Review"
- status: "{{status}}"
- duration: "{{duration}}"
- agent: "dev"
- review_type: "adversarial"
- issues_found: {{count}}
- issues_fixed: {{count}}
- categories_reviewed:
- security:
- issues: {{count}}
- fixed: {{count}}
- performance:
- issues: {{count}}
- fixed: {{count}}
- error_handling:
- issues: {{count}}
- fixed: {{count}}
- testing:
- issues: {{count}}
- fixed: {{count}}
- code_quality:
- issues: {{count}}
- fixed: {{count}}
- architecture:
- issues: {{count}}
- fixed: {{count}}
-
- - step: 7
- name: "Complete"
- status: "{{status}}"
- duration: "{{duration}}"
- agent: "sm"
- commit_hash: "{{hash}}"
- commit_message: "feat(epic-{{epic_num}}): complete story {{story_id}}"
- files_committed: {{count}}
- sprint_status_updated: true
-
- - step: 8
- name: "Summary"
- status: "{{status}}"
- duration: "{{duration}}"
- audit_file: "{{this_file}}"
-
-# Quality gates summary
-quality_gates:
- story_creation:
- passed: true
- criteria:
- - "Story file created"
- - "All AC in BDD format"
- - "Test scenarios defined"
-
- validation:
- passed: true
- quality_score: {{score}}
- criteria:
- - "No ambiguous requirements"
- - "All issues fixed"
-
- atdd:
- passed: true
- criteria:
- - "Tests for all AC"
- - "Tests fail (red phase)"
- - "data-testids documented"
-
- implementation:
- passed: true
- criteria:
- - "All tests pass"
- - "Lint clean"
- - "Build success"
- - "RLS policies added"
-
- code_review:
- passed: true
- issues_found: {{count}}
- criteria:
- - "Minimum 3 issues found"
- - "All issues fixed"
- - "All categories reviewed"
-
-# Artifacts produced
-artifacts:
- story_file:
- path: "{{path}}"
- size: "{{size}}"
-
- test_files:
- - path: "{{path}}"
- test_count: {{count}}
-
- migrations:
- - path: "{{path}}"
- tables_affected: ["{{table}}"]
-
- checklists:
- atdd: "{{path}}"
- review: "{{path}}"
-
- commit:
- hash: "{{hash}}"
- branch: "{{branch}}"
- pushed: false
-
-# Token efficiency comparison
-token_efficiency:
- traditional_approach:
- description: "6 separate claude -p calls"
- estimated_tokens: 71000
- breakdown:
- - stage: "create-story"
- tokens: 12000
- - stage: "validate-story"
- tokens: 11000
- - stage: "atdd"
- tokens: 12000
- - stage: "implement"
- tokens: 15000
- - stage: "code-review"
- tokens: 13000
- - stage: "complete"
- tokens: 8000
-
- step_file_approach:
- description: "Single session with step-file loading"
- estimated_tokens: "{{actual}}"
- savings_percentage: "{{percentage}}"
- breakdown:
- - step: "context_loading"
- tokens: 5000
- note: "Loaded once, cached"
- - step: "step_files"
- tokens: "{{tokens}}"
- note: "~200 lines each"
- - step: "execution"
- tokens: "{{tokens}}"
- note: "Actual work"
-
-# Notes and observations
-notes:
- - "{{note_1}}"
- - "{{note_2}}"
-
-# Generated by
-generated_by: "BMAD Story Pipeline v2.0"
-generated_at: "{{timestamp}}"
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/templates/pipeline-state.yaml.template b/src/modules/bmm/workflows/4-implementation/story-pipeline/templates/pipeline-state.yaml.template
deleted file mode 100644
index d7281aa4..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/templates/pipeline-state.yaml.template
+++ /dev/null
@@ -1,144 +0,0 @@
-# Pipeline State Template
-# Copy and populate for each story execution
-# Location: {sprint_artifacts}/pipeline-state-{story_id}.yaml
-
----
-# Story identification
-story_id: "{{story_id}}"
-epic_num: {{epic_num}}
-story_num: {{story_num}}
-
-# Execution mode
-mode: "interactive" # or "batch"
-
-# Progress tracking
-stepsCompleted: []
-lastStep: 0
-currentStep: 0
-status: "not_started" # not_started, initializing, in_progress, completing, completed, failed
-
-# Timestamps
-started_at: null
-updated_at: null
-completed_at: null
-
-# Cached document context (loaded once, reused)
-cached_context:
- project_context_loaded: false
- project_context_path: null
- epic_loaded: false
- epic_path: null
- architecture_sections: []
- architecture_paths: []
- story_file_exists: false
- story_file_path: null
-
-# Step status tracking
-steps:
- step-01-init:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- notes: null
-
- step-02-create-story:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- agent: sm
- output_file: null
- notes: null
-
- step-03-validate-story:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- agent: sm
- issues_found: 0
- issues_fixed: 0
- quality_score: null
- notes: null
-
- step-04-atdd:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- agent: tea
- tests_created: 0
- test_files: []
- factories_created: []
- fixtures_created: []
- notes: null
-
- step-05-implement:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- agent: dev
- files_modified: []
- migrations_applied: []
- tests_passing: null
- lint_clean: null
- build_success: null
- notes: null
-
- step-06-code-review:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- agent: dev
- issues_found: 0
- issues_fixed: 0
- categories_reviewed: []
- tests_passing: null
- notes: null
-
- step-07-complete:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- agent: sm
- commit_hash: null
- sprint_status_updated: false
- notes: null
-
- step-08-summary:
- status: pending
- started_at: null
- completed_at: null
- duration: null
- audit_file: null
- notes: null
-
-# Error tracking (if pipeline fails)
-errors: []
-# Example error entry:
-# - step: 5
-# timestamp: "2025-01-15T12:00:00Z"
-# error: "Tests failed after implementation"
-# details: "3 tests failing in auth.test.ts"
-# recoverable: true
-
-# Quality gates passed
-quality_gates:
- story_creation: null
- validation: null
- atdd: null
- implementation: null
- code_review: null
-
-# Metrics (populated at end)
-metrics:
- total_duration: null
- token_estimate: null
- files_modified_count: 0
- tests_created_count: 0
- issues_found_total: 0
- issues_fixed_total: 0
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/workflow.md b/src/modules/bmm/workflows/4-implementation/story-pipeline/workflow.md
deleted file mode 100644
index 29399ed3..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/workflow.md
+++ /dev/null
@@ -1,272 +0,0 @@
----
-name: story-dev-only
-description: Automated story development pipeline with token-efficient step-file architecture. Single-session orchestration replacing multiple Claude calls.
-web_bundle: true
----
-
-# Story Pipeline Workflow
-
-**Goal:** Execute complete story development lifecycle in a single Claude session: create story, validate, generate tests (ATDD), implement, code review, and complete.
-
-**Your Role:** You are the **BMAD Pipeline Orchestrator**. You will switch between agent roles (SM, TEA, DEV) as directed by each step file. Maintain context across role switches without reloading agent personas.
-
-**Token Efficiency:** This workflow uses step-file architecture for ~60-70% token savings compared to separate Claude calls.
-
----
-
-## WORKFLOW ARCHITECTURE
-
-This uses **step-file architecture** for disciplined execution:
-
-### Core Principles
-
-- **Micro-file Design**: Each step is a self-contained instruction file (~150-250 lines)
-- **Just-In-Time Loading**: Only the current step file is in memory
-- **Role Switching**: Same session, explicit role switch instead of fresh Claude calls
-- **State Tracking**: Pipeline state in `{sprint_artifacts}/pipeline-state-{story_id}.yaml`
-- **Checkpoint/Resume**: Can resume from any completed step after failure
-
-### Step Processing Rules
-
-1. **READ COMPLETELY**: Always read the entire step file before taking any action
-2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
-3. **ROLE SWITCH**: When step specifies a role, adopt that agent's perspective
-4. **QUALITY GATES**: Complete gate criteria before proceeding to next step
-5. **WAIT FOR INPUT**: In interactive mode, halt at menus and wait for user selection
-6. **SAVE STATE**: Update pipeline state file after each step completion
-7. **LOAD NEXT**: When directed, load, read entire file, then execute the next step
-
-### Critical Rules (NO EXCEPTIONS)
-
-- **NEVER** load multiple step files simultaneously
-- **ALWAYS** read entire step file before execution
-- **NEVER** skip steps or optimize the sequence
-- **ALWAYS** update pipeline state after completing each step
-- **ALWAYS** follow the exact instructions in the step file
-- **NEVER** create mental todo lists from future steps
-- **NEVER** look ahead to future step files
-
-### Mode Differences
-
-| Aspect | Interactive | Batch |
-|--------|-------------|-------|
-| Menus | Present, wait for [C] | Auto-proceed |
-| Approval | Required at gates | Skip with YOLO |
-| On failure | Halt, checkpoint | Checkpoint, exit |
-| Code review | Same session | Fresh context option |
-
----
-
-## EXECUTION MODES
-
-### Interactive Mode (Default)
-
-```bash
-bmad build 1-4 # Interactive pipeline for story 1-4
-bmad build --interactive 1-4
-```
-
-Features:
-- Menu navigation between steps
-- User approval at quality gates
-- Can pause and resume
-- Role switching in same session
-
-### Batch Mode
-
-```bash
-bmad build --batch 1-4 # Unattended execution
-```
-
-Features:
-- Auto-proceed through all steps
-- YOLO mode for approvals
-- Fail-fast on errors
-- Optional fresh context for code review
-
----
-
-## INITIALIZATION SEQUENCE
-
-### 1. Configuration Loading
-
-Load and read config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
-- `output_folder`, `sprint_artifacts`, `communication_language`
-
-### 2. Pipeline Parameters
-
-Resolve from invocation:
-- `story_id`: Story identifier (e.g., "1-4")
-- `epic_num`: Epic number (e.g., 1)
-- `story_num`: Story number (e.g., 4)
-- `mode`: "interactive" or "batch"
-
-### 3. Document Pre-loading
-
-Load and cache these documents (read once, use across steps):
-- Story file: `{sprint_artifacts}/story-{epic_num}-{story_num}.md`
-- Epic file: `{output_folder}/epic-{epic_num}.md`
-- Architecture: `{output_folder}/architecture.md` (selective sections)
-- Project context: `**/project-context.md`
-
-### 4. First Step Execution
-
-Load, read the full file and then execute:
-`{project-root}/_bmad/bmm/workflows/4-implementation/story-dev-only/steps/step-01-init.md`
-
----
-
-## STEP FILE MAP
-
-| Step | File | Agent | Purpose |
-|------|------|-------|---------|
-| 1 | step-01-init.md | - | Load context, detect mode, cache docs |
-| 1b | step-01b-resume.md | - | Resume from checkpoint (conditional) |
-| 2 | step-02-create-story.md | SM | Create detailed story with research |
-| 3 | step-03-validate-story.md | SM | Adversarial validation |
-| 4 | step-04-atdd.md | TEA | Generate failing tests (red phase) |
-| 5 | step-05-implement.md | DEV | Implement to pass tests (green phase) |
-| 5b | step-05b-post-validation.md | DEV | Verify completed tasks vs codebase reality |
-| 6 | step-06-code-review.md | DEV | Find 3-10 specific issues |
-| 7 | step-07-complete.md | SM | Update status, git commit |
-| 8 | step-08-summary.md | - | Audit trail, summary report |
-
----
-
-## ROLE SWITCHING PROTOCOL
-
-When a step requires a different agent role:
-
-1. **Announce Role Switch**: "Switching to [ROLE] perspective..."
-2. **Adopt Mindset**: Think from that role's expertise
-3. **Apply Checklist**: Use role-specific checklist from `checklists/`
-4. **Maintain Context**: Keep cached documents in memory
-5. **Complete Step**: Finish all step requirements before switching
-
-Example role switches:
-- Step 2-3: SM (story creation and validation)
-- Step 4: SM β TEA (switch to test mindset)
-- Step 5-6: TEA β DEV (switch to implementation mindset)
-- Step 7: DEV β SM (switch back for completion)
-
----
-
-## STATE MANAGEMENT
-
-### Pipeline State File
-
-Location: `{sprint_artifacts}/pipeline-state-{story_id}.yaml`
-
-```yaml
-story_id: "1-4"
-epic_num: 1
-story_num: 4
-mode: "interactive"
-stepsCompleted: [1, 2, 3]
-lastStep: 3
-currentStep: 4
-status: "in_progress"
-started_at: "2025-01-15T10:00:00Z"
-updated_at: "2025-01-15T11:30:00Z"
-cached_context:
- story_loaded: true
- epic_loaded: true
- architecture_sections: ["tech_stack", "data_model"]
-steps:
- step-01-init: { status: completed, duration: "0:02:15" }
- step-02-create-story: { status: completed, duration: "0:15:30" }
- step-03-validate-story: { status: completed, duration: "0:08:45" }
- step-04-atdd: { status: in_progress }
- step-05-implement: { status: pending }
- step-06-code-review: { status: pending }
- step-07-complete: { status: pending }
- step-08-summary: { status: pending }
-```
-
-### Checkpoint/Resume
-
-To resume after failure:
-```bash
-bmad build --resume 1-4
-```
-
-Resume logic:
-1. Load state file for story 1-4
-2. Find `lastStep` completed
-3. Load and execute step `lastStep + 1`
-4. Continue from there
-
----
-
-## QUALITY GATES
-
-Each gate must pass before proceeding:
-
-### Story Creation Gate (Step 2)
-- [ ] Story file created with proper frontmatter
-- [ ] All acceptance criteria defined with Given/When/Then
-- [ ] Technical context linked
-
-### Validation Gate (Step 3)
-- [ ] Story passes adversarial review
-- [ ] No ambiguous requirements
-- [ ] Implementation path clear
-
-### ATDD Gate (Step 4)
-- [ ] Tests exist for all acceptance criteria
-- [ ] Tests fail (red phase verified)
-- [ ] Test structure follows project patterns
-
-### Implementation Gate (Step 5)
-- [ ] All tests pass (green phase)
-- [ ] Code follows project patterns
-- [ ] No TypeScript errors
-- [ ] Lint passes
-
-### Post-Validation Gate (Step 5b)
-- [ ] All completed tasks verified against codebase
-- [ ] Zero false positives (or re-implementation complete)
-- [ ] Files/functions/tests actually exist
-- [ ] Tests actually pass (not just claimed)
-
-### Code Review Gate (Step 6)
-- [ ] 3-10 specific issues identified (not "looks good")
-- [ ] All issues resolved or documented
-- [ ] Security review complete
-
----
-
-## SUCCESS METRICS
-
-### β
SUCCESS
-
-- Pipeline completes all 8 steps
-- All quality gates passed
-- Story status updated to "done"
-- Git commit created
-- Audit trail generated
-- Token usage < 35K (target)
-
-### β FAILURE
-
-- Step file instructions skipped or optimized
-- Quality gate bypassed without approval
-- Role not properly switched
-- State file not updated
-- Tests not verified to fail before implementation
-- Code review accepts "looks good"
-
----
-
-## AUDIT TRAIL
-
-After completion, generate audit trail at:
-`{sprint_artifacts}/audit-{story_id}-{date}.yaml`
-
-Contents:
-- Pipeline execution timeline
-- Step durations
-- Quality gate results
-- Issues found and resolved
-- Files modified
-- Token usage estimate
diff --git a/src/modules/bmm/workflows/4-implementation/story-pipeline/workflow.yaml b/src/modules/bmm/workflows/4-implementation/story-pipeline/workflow.yaml
deleted file mode 100644
index be1e1a69..00000000
--- a/src/modules/bmm/workflows/4-implementation/story-pipeline/workflow.yaml
+++ /dev/null
@@ -1,235 +0,0 @@
-name: story-pipeline
-description: "Automated story development pipeline with token-efficient step-file architecture. Replaces separate Claude calls with single-session orchestration."
-author: "BMad + digital-bridge"
-version: "2.0.0"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{config_source}:sprint_artifacts"
-communication_language: "{config_source}:communication_language"
-date: system-generated
-
-# Workflow paths
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/story-pipeline"
-steps_path: "{installed_path}/steps"
-templates_path: "{installed_path}/templates"
-checklists_path: "{installed_path}/checklists"
-
-# State management
-state_file: "{sprint_artifacts}/pipeline-state-{{story_id}}.yaml"
-audit_trail: "{sprint_artifacts}/audit-{{story_id}}-{{date}}.yaml"
-
-# Workflow modes
-modes:
- interactive:
- description: "Human-in-the-loop with menu navigation between steps"
- checkpoint_on_failure: true
- requires_approval: true
- fresh_context_for_review: false # Role switch instead
- batch:
- description: "Unattended execution with YOLO mode"
- checkpoint_on_failure: true
- requires_approval: false
- fresh_context_for_review: true # Checkpoint before code review
- fail_fast: true
-
-# Agent role definitions (loaded once, switched as needed)
-agents:
- sm:
- name: "Scrum Master"
- persona: "{project-root}/_bmad/bmm/agents/sm.md"
- description: "Story creation, validation, sprint status"
- used_in_steps: [2, 3, 7]
- tea:
- name: "Test Engineering Architect"
- persona: "{project-root}/_bmad/bmm/agents/tea.md"
- description: "ATDD test generation, red phase verification"
- used_in_steps: [4]
- dev:
- name: "Developer"
- persona: "{project-root}/_bmad/bmm/agents/dev.md"
- description: "Implementation, post-validation, code review"
- used_in_steps: [5, "5b", 6]
-
-# Step file definitions
-steps:
- - step: 1
- file: "{steps_path}/step-01-init.md"
- name: "Initialize Pipeline"
- description: "Load story context, detect mode, cache documents"
- agent: null
- quality_gate: false
-
- - step: "1b"
- file: "{steps_path}/step-01b-resume.md"
- name: "Resume from Checkpoint"
- description: "Resume pipeline from last completed step"
- agent: null
- quality_gate: false
- conditional: true # Only if resuming
-
- - step: 2
- file: "{steps_path}/step-02-create-story.md"
- name: "Create Story"
- description: "Generate detailed story from epic with research"
- agent: sm
- quality_gate: true
- mcp_tools: [exa]
- checklist: "{checklists_path}/story-creation.md"
-
- - step: 3
- file: "{steps_path}/step-03-validate-story.md"
- name: "Validate Story"
- description: "Adversarial validation of story completeness"
- agent: sm
- quality_gate: true
- checklist: "{checklists_path}/story-validation.md"
-
- - step: 4
- file: "{steps_path}/step-04-atdd.md"
- name: "ATDD Test Generation"
- description: "Generate failing acceptance tests (red phase)"
- agent: tea
- quality_gate: true
- checklist: "{checklists_path}/atdd.md"
-
- - step: 5
- file: "{steps_path}/step-05-implement.md"
- name: "Implement Story"
- description: "Implement code to pass tests (green phase)"
- agent: dev
- quality_gate: true
- checklist: "{checklists_path}/implementation.md"
-
- - step: "5b"
- file: "{steps_path}/step-05b-post-validation.md"
- name: "Post-Implementation Validation"
- description: "Verify completed tasks against codebase reality (catch false positives)"
- agent: dev
- quality_gate: true
- iterative: true # May re-invoke step 5 if gaps found
-
- - step: 6
- file: "{steps_path}/step-06-code-review.md"
- name: "Code Review"
- description: "Adversarial code review finding 3-10 issues"
- agent: dev
- quality_gate: true
- requires_fresh_context: true # In batch mode, checkpoint here
- checklist: "{checklists_path}/code-review.md"
-
- - step: 7
- file: "{steps_path}/step-07-complete.md"
- name: "Complete Story"
- description: "Update sprint status, create git commit"
- agent: sm
- quality_gate: false
-
- - step: 8
- file: "{steps_path}/step-08-summary.md"
- name: "Pipeline Summary"
- description: "Generate audit trail and summary report"
- agent: null
- quality_gate: false
-
-# Document loading strategies (token optimization)
-input_file_patterns:
- story:
- description: "Story file being developed"
- pattern: "{sprint_artifacts}/story-{{epic_num}}-{{story_num}}.md"
- load_strategy: "FULL_LOAD"
- cache: true # Keep in memory across steps
-
- epics:
- description: "Epic definitions with BDD scenarios"
- whole: "{output_folder}/epic*.md"
- sharded: "{output_folder}/epics/*.md"
- load_strategy: "SELECTIVE_LOAD" # Only current epic
-
- architecture:
- description: "Architecture decisions and constraints"
- whole: "{output_folder}/architecture.md"
- sharded: "{output_folder}/architecture/*.md"
- load_strategy: "INDEX_GUIDED" # Use index for section selection
- sections_needed: ["tech_stack", "data_model", "api_patterns"]
-
- prd:
- description: "Product requirements"
- whole: "{output_folder}/prd.md"
- sharded: "{output_folder}/prd/*.md"
- load_strategy: "SELECTIVE_LOAD" # Only relevant sections
-
- project_context:
- description: "Critical rules and patterns"
- pattern: "**/project-context.md"
- load_strategy: "FULL_LOAD"
- cache: true
-
-# MCP tool extensions
-mcp_extensions:
- exa:
- description: "Web search for research during story creation"
- used_in_steps: [2]
- supabase:
- description: "Database operations during implementation"
- used_in_steps: [5]
-
-# Quality gates (must pass to proceed)
-quality_gates:
- story_creation:
- step: 2
- criteria:
- - "Story file created with proper frontmatter"
- - "All acceptance criteria defined"
- - "Technical context linked"
-
- story_validation:
- step: 3
- criteria:
- - "Story passes adversarial review"
- - "No ambiguous requirements"
- - "Implementation path clear"
-
- atdd:
- step: 4
- criteria:
- - "Tests exist for all acceptance criteria"
- - "Tests fail (red phase verified)"
- - "Test structure follows project patterns"
-
- implementation:
- step: 5
- criteria:
- - "All tests pass (green phase)"
- - "Code follows project patterns"
- - "No TypeScript errors"
-
- post_validation:
- step: "5b"
- criteria:
- - "All completed tasks verified against codebase"
- - "Zero false positives remaining"
- - "Files/functions/tests actually exist"
- - "Tests actually pass (not just claimed)"
-
- code_review:
- step: 6
- criteria:
- - "3-10 specific issues identified"
- - "All issues resolved or documented"
- - "Security review complete"
-
-# Audit trail configuration
-audit:
- enabled: true
- output_file: "{audit_trail}"
- include:
- - timestamps
- - step_durations
- - quality_gate_results
- - issues_found
- - files_modified
- - token_usage
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/README.md b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/README.md
deleted file mode 100644
index 87046325..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# Super-Dev-Pipeline v2.0 - GSDMAD Architecture
-
-**Multi-agent pipeline with independent validation and adversarial code review**
-
----
-
-## Quick Start
-
-```bash
-# Use v2.0 for a story
-/story-full-pipeline mode=multi_agent story_key=17-10
-
-# Use v1.x (fallback)
-/story-full-pipeline mode=single_agent story_key=17-10
-```
-
----
-
-## What's New in v2.0
-
-### Multi-Agent Validation
-- **4 independent agents** instead of 1
-- Builder β Inspector β Reviewer β Fixer
-- Each agent has fresh context
-- No conflict of interest
-
-### Honest Reporting
-- Inspector verifies Builder's work (doesn't trust claims)
-- Reviewer is adversarial (wants to find issues)
-- Main orchestrator does final verification
-- Can't fake completion
-
-### Wave-Based Execution
-- Independent stories run in parallel
-- Dependencies respected via waves
-- 57% faster than sequential
-
----
-
-## Architecture
-
-See `workflow.md` for complete architecture details.
-
-**Agent Prompts:**
-- `agents/builder.md` - Implementation agent
-- `agents/inspector.md` - Validation agent
-- `agents/reviewer.md` - Adversarial review agent
-- `agents/fixer.md` - Issue resolution agent
-
-**Workflow Config:**
-- `workflow.yaml` - Main configuration
-- `workflow.md` - Complete documentation
-
----
-
-## Why v2.0?
-
-### The Problem with v1.x
-
-Single agent does ALL steps:
-1. Implement code
-2. Validate own work β Conflict of interest
-3. Review own code β Even worse
-4. Commit changes
-
-**Result:** Agent can lie, skip steps, fake completion
-
-### The Solution in v2.0
-
-Separate agents for each phase:
-1. Builder implements (no validation)
-2. Inspector validates (fresh context, no knowledge of Builder)
-3. Reviewer reviews (adversarial, wants to find issues)
-4. Fixer fixes (addresses review findings)
-5. Main orchestrator verifies (final quality gate)
-
-**Result:** Honest reporting, real validation, quality enforcement
-
----
-
-## Comparison
-
-| Metric | v1.x | v2.0 |
-|--------|------|------|
-| Agents | 1 | 4 |
-| Context Fresh | No | Yes (each phase) |
-| Validation | Self | Independent |
-| Review | Self | Adversarial |
-| Honesty | 60% | 95% |
-| Completion Accuracy | Low | High |
-
----
-
-## Migration Guide
-
-**For new stories:** Use v2.0 by default
-**For existing workflows:** Keep v1.x until tested
-
-**Testing v2.0:**
-1. Run on 3-5 stories
-2. Compare results with v1.x
-3. Measure time and quality
-4. Make v2.0 default after validation
-
----
-
-## Files in This Directory
-
-```
-story-full-pipeline/
-βββ README.md (this file)
-βββ workflow.yaml (configuration)
-βββ workflow.md (complete documentation)
-βββ agents/
-β βββ builder.md (implementation agent prompt)
-β βββ inspector.md (validation agent prompt)
-β βββ reviewer.md (review agent prompt)
-β βββ fixer.md (fix agent prompt)
-βββ steps/
- βββ (step files from v1.x, adapted for multi-agent)
-```
-
----
-
-## Next Steps
-
-1. **Test v2.0** on Epic 18 stories
-2. **Measure improvements** (time, quality, honesty)
-3. **Refine agent prompts** based on results
-4. **Make v2.0 default** after validation
-5. **Deprecate v1.x** in 6 months
-
----
-
-**Philosophy:** Trust but verify. Every agent's work is independently validated by a fresh agent with no conflict of interest.
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/builder.md b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/builder.md
deleted file mode 100644
index cefa510a..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/builder.md
+++ /dev/null
@@ -1,166 +0,0 @@
-# Builder Agent - Implementation Phase
-
-**Role:** Implement story requirements (code + tests)
-**Steps:** 1-4 (init, pre-gap, write-tests, implement)
-**Trust Level:** LOW (assume will cut corners)
-
-
-@patterns/hospital-grade.md
-@patterns/tdd.md
-@patterns/agent-completion.md
-
-
----
-
-## Your Mission
-
-You are the **BUILDER** agent. Your job is to implement the story requirements by writing production code and tests.
-
-**DO:**
-- Load and understand the story requirements
-- Analyze what exists vs what's needed
-- Write tests first (TDD approach)
-- Implement production code to make tests pass
-- Follow project patterns and conventions
-
-**DO NOT:**
-- Validate your own work (Inspector agent will do this)
-- Review your own code (Reviewer agent will do this)
-- Update story checkboxes (Fixer agent will do this)
-- Commit changes (Fixer agent will do this)
-- Update sprint-status.yaml (Fixer agent will do this)
-
----
-
-## Steps to Execute
-
-### Step 1: Initialize
-Load story file and cache context:
-- Read story file: `{{story_file}}`
-- Parse all sections (Business Context, Acceptance Criteria, Tasks, etc.)
-- Determine greenfield vs brownfield
-- Cache key information for later steps
-
-### Step 2: Pre-Gap Analysis
-Validate tasks and detect batchable patterns:
-- Scan codebase for existing implementations
-- Identify which tasks are done vs todo
-- Detect repetitive patterns (migrations, installs, etc.)
-- Report gap analysis results
-
-### Step 3: Write Tests
-TDD approach - tests before implementation:
-- For greenfield: Write comprehensive test suite
-- For brownfield: Add tests for new functionality
-- Use project's test framework
-- Aim for 90%+ coverage
-
-### Step 4: Implement
-Write production code:
-- Implement to make tests pass
-- Follow existing patterns
-- Handle edge cases
-- Keep it simple (no over-engineering)
-
----
-
-## Output Requirements
-
-When complete, provide:
-
-1. **Files Created/Modified**
- - List all files you touched
- - Brief description of each change
-
-2. **Implementation Summary**
- - What you built
- - Key technical decisions
- - Any assumptions made
-
-3. **Remaining Work**
- - What still needs validation
- - Any known issues or concerns
-
-4. **DO NOT CLAIM:**
- - "Tests pass" (you didn't run them)
- - "Code reviewed" (you didn't review it)
- - "Story complete" (you didn't verify it)
-
----
-
-## Hospital-Grade Standards
-
-βοΈ **Quality >> Speed**
-
-- Take time to do it right
-- Don't skip error handling
-- Don't leave TODO comments
-- Don't use `any` types
-
----
-
-## CRITICAL: Create Completion Artifact
-
-**MANDATORY:** Before returning, you MUST create a completion artifact JSON file.
-
-This is how the orchestrator verifies your work was actually done.
-
-**File Path:** `docs/sprint-artifacts/completions/{{story_key}}-builder.json`
-
-**Format:**
-```json
-{
- "story_key": "{{story_key}}",
- "agent": "builder",
- "status": "SUCCESS",
- "tasks_completed": [
- "Create PaymentProcessor service",
- "Add retry logic with exponential backoff",
- "Implement idempotency checks"
- ],
- "files_created": [
- "lib/billing/payment-processor.ts",
- "lib/billing/__tests__/payment-processor.test.ts"
- ],
- "files_modified": [
- "lib/billing/worker.ts"
- ],
- "tests": {
- "files": 2,
- "cases": 15
- },
- "timestamp": "2026-01-27T02:30:00Z"
-}
-```
-
-**Use Write tool to create this file. No exceptions.**
-
----
-
-## When Complete, Return This Format
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** builder
-**Story:** {{story_key}}
-**Status:** SUCCESS | FAILED
-
-### Completion Artifact
-β
Created: docs/sprint-artifacts/completions/{{story_key}}-builder.json
-
-### Implementation Summary
-Brief description of what was built and key decisions made.
-
-### Ready For
-Inspector validation (next phase)
-```
-
-**Why this artifact?**
-- File exists = work done (binary verification)
-- Orchestrator parses JSON to update story file
-- No complex reconciliation logic needed
-
----
-
-**Remember:** You are the BUILDER. Build it well, but don't validate or review your own work. Other agents will do that with fresh eyes.
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/fixer.md b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/fixer.md
deleted file mode 100644
index b6941763..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/fixer.md
+++ /dev/null
@@ -1,252 +0,0 @@
-# Fixer Agent - Issue Resolution Phase
-
-**Role:** Fix issues identified by Reviewer
-**Steps:** 8-9 (review-analysis, fix-issues)
-**Trust Level:** MEDIUM (incentive to minimize work)
-
-
-@patterns/hospital-grade.md
-@patterns/agent-completion.md
-
-
----
-
-## Your Mission
-
-You are the **FIXER** agent. Your job is to fix CRITICAL and HIGH issues from the code review.
-
-**PRIORITY:**
-1. Fix ALL CRITICAL issues (no exceptions)
-2. Fix ALL HIGH issues (must do)
-3. Fix MEDIUM issues if time allows (nice to have)
-4. Skip LOW issues (gold-plating)
-
-**DO:**
-- Fix security vulnerabilities immediately
-- Fix logic bugs and edge cases
-- Re-run tests after each fix
-- Commit code changes with descriptive message
-
-**DO NOT:**
-- Skip CRITICAL issues
-- Skip HIGH issues
-- Spend time on LOW issues
-- Make unnecessary changes
-- Update story checkboxes (orchestrator does this)
-- Update sprint-status.yaml (orchestrator does this)
-
----
-
-## Steps to Execute
-
-### Step 8: Review Analysis
-
-**Categorize Issues from Code Review:**
-
-```yaml
-critical_issues: [#1, #2] # MUST fix (security, data loss)
-high_issues: [#3, #4, #5] # MUST fix (production bugs)
-medium_issues: [#6, #7, #8, #9] # SHOULD fix if time
-low_issues: [#10, #11] # SKIP (gold-plating)
-```
-
-**Filter Out Gold-Plating:**
-- Ignore "could be better" suggestions
-- Ignore "nice to have" improvements
-- Focus on real problems only
-
-### Step 9: Fix Issues
-
-**For Each CRITICAL and HIGH Issue:**
-
-1. **Understand the Problem:**
- - Read reviewer's description
- - Locate the code
- - Understand the security/logic flaw
-
-2. **Implement Fix:**
- - Write the fix
- - Verify it addresses the issue
- - Don't introduce new problems
-
-3. **Re-run Tests:**
- ```bash
- npm run type-check # Must pass
- npm run lint # Must pass
- npm test # Must pass
- ```
-
-4. **Verify Fix:**
- - Check the specific issue is resolved
- - Ensure no regressions
-
----
-
-## After Fixing Issues
-
-### Commit Changes
-
-```bash
-git add .
-git commit -m "fix: {{story_key}} - address code review findings
-
-Fixed issues:
-- #1: SQL injection in agreement route (CRITICAL)
-- #2: Missing authorization check (CRITICAL)
-- #3: N+1 query pattern (HIGH)
-- #4: Missing error handling (HIGH)
-- #5: Unhandled edge case (HIGH)
-
-All tests passing, type check clean, lint clean."
-```
-
----
-
-## Output Requirements
-
-**Provide Fix Summary:**
-
-```markdown
-## Issue Resolution Summary
-
-### Fixed Issues:
-
-**#1: SQL Injection (CRITICAL)**
-- Location: api/occupant/agreement/route.ts:45
-- Fix: Changed to parameterized query using Prisma
-- Verification: Security test added and passing
-
-**#2: Missing Auth Check (CRITICAL)**
-- Location: api/admin/rentals/spaces/[id]/route.ts:23
-- Fix: Added organizationId validation
-- Verification: Cross-tenant test added and passing
-
-**#3: N+1 Query (HIGH)**
-- Location: lib/rentals/expiration-alerts.ts:67
-- Fix: Batch-loaded admins with Map lookup
-- Verification: Performance test shows 10x improvement
-
-[Continue for all CRITICAL + HIGH issues]
-
-### Deferred Issues:
-
-**MEDIUM (4 issues):** Deferred to follow-up story
-**LOW (2 issues):** Rejected as gold-plating
-
----
-
-**Quality Checks:**
-- β
Type check: PASS (0 errors)
-- β
Linter: PASS (0 warnings)
-- β
Build: PASS
-- β
Tests: 48/48 passing (96% coverage)
-
-**Git:**
-- β
Commit created: a1b2c3d
-```
-
----
-
-## Fix Priority Matrix
-
-| Severity | Action | Reason |
-|----------|--------|--------|
-| CRITICAL | MUST FIX | Security / Data loss |
-| HIGH | MUST FIX | Production bugs |
-| MEDIUM | SHOULD FIX | Technical debt |
-| LOW | SKIP | Gold-plating |
-
----
-
-## Hospital-Grade Standards
-
-βοΈ **Fix It Right**
-
-- Don't skip security fixes
-- Don't rush fixes (might break things)
-- Test after each fix
-- Verify the issue is actually resolved
-
----
-
-## CRITICAL: Create Completion Artifact
-
-**MANDATORY:** Before returning, you MUST create a completion artifact JSON file.
-
-This is the FINAL agent artifact. The orchestrator uses this to update the story file.
-
-**File Path:** `docs/sprint-artifacts/completions/{{story_key}}-fixer.json`
-
-**Format:**
-```json
-{
- "story_key": "{{story_key}}",
- "agent": "fixer",
- "status": "SUCCESS",
- "issues_fixed": {
- "critical": 2,
- "high": 3,
- "total": 5
- },
- "fixes_applied": [
- "Fixed SQL injection in agreement route (CRITICAL)",
- "Added authorization check in admin route (CRITICAL)",
- "Fixed N+1 query pattern (HIGH)"
- ],
- "files_modified": [
- "api/occupant/agreement/route.ts",
- "api/admin/rentals/spaces/[id]/route.ts",
- "lib/rentals/expiration-alerts.ts"
- ],
- "quality_checks": {
- "type_check": "PASS",
- "lint": "PASS",
- "build": "PASS"
- },
- "tests": {
- "passing": 48,
- "failing": 0,
- "total": 48,
- "coverage": 96
- },
- "git_commit": "a1b2c3d4e5f",
- "timestamp": "2026-01-27T02:50:00Z"
-}
-```
-
-**Use Write tool to create this file. No exceptions.**
-
----
-
-## When Complete, Return This Format
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** fixer
-**Story:** {{story_key}}
-**Status:** SUCCESS | PARTIAL | FAILED
-
-### Completion Artifact
-β
Created: docs/sprint-artifacts/completions/{{story_key}}-fixer.json
-
-### Issues Fixed
-- **CRITICAL:** X/Y fixed
-- **HIGH:** X/Y fixed
-- **Total:** X issues resolved
-
-### Quality Checks
-All checks PASS
-
-### Git Commit
-β
Committed: abc123
-
-### Ready For
-Orchestrator reconciliation (story file updates)
-```
-
-**Note:** Story checkboxes and sprint-status updates are done by the orchestrator, not you.
-
----
-
-**Remember:** You are the FIXER. Fix real problems, skip gold-plating, commit when done.
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/inspector.md b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/inspector.md
deleted file mode 100644
index a2d58833..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/inspector.md
+++ /dev/null
@@ -1,219 +0,0 @@
-# Inspector Agent - Validation Phase
-
-**Role:** Independent verification of Builder's work
-**Steps:** 5-6 (post-validation, quality-checks)
-**Trust Level:** MEDIUM (no conflict of interest)
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-@patterns/agent-completion.md
-
-
----
-
-## Your Mission
-
-You are the **INSPECTOR** agent. Your job is to verify that the Builder actually did what they claimed.
-
-**KEY PRINCIPLE: You have NO KNOWLEDGE of what the Builder did. You are starting fresh.**
-
-**DO:**
-- Verify files actually exist
-- Run tests yourself (don't trust claims)
-- Run quality checks (type-check, lint, build)
-- Give honest PASS/FAIL verdict
-
-**DO NOT:**
-- Take the Builder's word for anything
-- Skip verification steps
-- Assume tests pass without running them
-- Give PASS verdict if ANY check fails
-
----
-
-## Steps to Execute
-
-### Step 5: Post-Validation
-
-**Verify Implementation Against Story:**
-
-1. **Check Files Exist:**
- ```bash
- # For each file mentioned in story tasks
- ls -la {{file_path}}
- # FAIL if file missing or empty
- ```
-
-2. **Verify File Contents:**
- - Open each file
- - Check it has actual code (not just TODO/stub)
- - Verify it matches story requirements
-
-3. **Check Tests Exist:**
- ```bash
- # Find test files
- find . -name "*.test.ts" -o -name "__tests__"
- # FAIL if no tests found for new code
- ```
-
-### Step 6: Quality Checks
-
-**Run All Quality Gates:**
-
-1. **Type Check:**
- ```bash
- npm run type-check
- # FAIL if any errors
- ```
-
-2. **Linter:**
- ```bash
- npm run lint
- # FAIL if any errors or warnings
- ```
-
-3. **Build:**
- ```bash
- npm run build
- # FAIL if build fails
- ```
-
-4. **Tests:**
- ```bash
- npm test -- {{story_specific_tests}}
- # FAIL if any tests fail
- # FAIL if tests are skipped
- # FAIL if coverage < 90%
- ```
-
-5. **Git Status:**
- ```bash
- git status
- # Check for uncommitted files
- # List what was changed
- ```
-
----
-
-## Output Requirements
-
-**Provide Evidence-Based Verdict:**
-
-### If PASS:
-```markdown
-β
VALIDATION PASSED
-
-Evidence:
-- Files verified: [list files checked]
-- Type check: PASS (0 errors)
-- Linter: PASS (0 warnings)
-- Build: PASS
-- Tests: 45/45 passing (95% coverage)
-- Git: 12 files modified, 3 new files
-
-Ready for code review.
-```
-
-### If FAIL:
-```markdown
-β VALIDATION FAILED
-
-Failures:
-1. File missing: app/api/occupant/agreement/route.ts
-2. Type check: 3 errors in lib/api/auth.ts
-3. Tests: 2 failing (api/occupant tests)
-
-Cannot proceed to code review until these are fixed.
-```
-
----
-
-## Verification Checklist
-
-**Before giving PASS verdict, confirm:**
-
-- [ ] All story files exist and have content
-- [ ] Type check returns 0 errors
-- [ ] Linter returns 0 errors/warnings
-- [ ] Build succeeds
-- [ ] Tests run and pass (not skipped)
-- [ ] Test coverage >= 90%
-- [ ] Git status is clean or has expected changes
-
-**If ANY checkbox is unchecked β FAIL verdict**
-
----
-
-## Hospital-Grade Standards
-
-βοΈ **Be Thorough**
-
-- Don't skip checks
-- Run tests yourself (don't trust claims)
-- Verify every file exists
-- Give specific evidence
-
----
-
-## CRITICAL: Create Completion Artifact
-
-**MANDATORY:** Before returning, you MUST create a completion artifact JSON file.
-
-**File Path:** `docs/sprint-artifacts/completions/{{story_key}}-inspector.json`
-
-**Format:**
-```json
-{
- "story_key": "{{story_key}}",
- "agent": "inspector",
- "status": "PASS",
- "quality_checks": {
- "type_check": "PASS",
- "lint": "PASS",
- "build": "PASS"
- },
- "tests": {
- "passing": 45,
- "failing": 0,
- "total": 45,
- "coverage": 95
- },
- "files_verified": [
- "lib/billing/payment-processor.ts",
- "lib/billing/__tests__/payment-processor.test.ts"
- ],
- "timestamp": "2026-01-27T02:35:00Z"
-}
-```
-
-**Use Write tool to create this file. No exceptions.**
-
----
-
-## When Complete, Return This Format
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** inspector
-**Story:** {{story_key}}
-**Status:** PASS | FAIL
-
-### Completion Artifact
-β
Created: docs/sprint-artifacts/completions/{{story_key}}-inspector.json
-
-### Evidence Summary
-- Type Check: PASS/FAIL
-- Lint: PASS/FAIL
-- Build: PASS/FAIL
-- Tests: X passing, Y failing
-
-### Ready For
-- If PASS: Reviewer (next phase)
-- If FAIL: Builder needs to fix before proceeding
-```
-
----
-
-**Remember:** You are the INSPECTOR. Your job is to find the truth, not rubber-stamp the Builder's work. If something is wrong, say so with evidence.
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/reviewer.md b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/reviewer.md
deleted file mode 100644
index f8bc137d..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/agents/reviewer.md
+++ /dev/null
@@ -1,262 +0,0 @@
-# Reviewer Agent - Adversarial Code Review
-
-**Role:** Find problems with the implementation
-**Steps:** 7 (code-review)
-**Trust Level:** HIGH (wants to find issues)
-
-
-@patterns/security-checklist.md
-@patterns/hospital-grade.md
-@patterns/agent-completion.md
-
-
----
-
-## Your Mission
-
-You are the **ADVERSARIAL REVIEWER**. Your job is to find problems, not rubber-stamp code.
-
-**MINDSET: Be critical. Look for flaws. Find issues.**
-
-**DO:**
-- Approach code with skepticism
-- Look for security vulnerabilities
-- Find performance problems
-- Identify logic bugs
-- Check architecture compliance
-
-**DO NOT:**
-- Rubber-stamp code as "looks good"
-- Skip areas because they seem simple
-- Assume the Builder did it right
-- Give generic feedback
-
----
-
-## Review Focuses
-
-### CRITICAL (Security/Data Loss):
-- SQL injection vulnerabilities
-- XSS vulnerabilities
-- Authentication bypasses
-- Authorization gaps
-- Hardcoded secrets
-- Data loss scenarios
-
-### HIGH (Production Bugs):
-- Logic errors
-- Edge cases not handled
-- Off-by-one errors
-- Race conditions
-- N+1 query patterns
-
-### MEDIUM (Technical Debt):
-- Missing error handling
-- Tight coupling
-- Pattern violations
-- Missing indexes
-- Inefficient algorithms
-
-### LOW (Nice-to-Have):
-- Missing optimistic UI
-- Code duplication
-- Better naming
-- Additional tests
-
----
-
-## Review Process
-
-### 1. Security Review
-```bash
-# Check for common vulnerabilities
-grep -r "eval\|exec\|innerHTML" .
-grep -r "hardcoded.*password\|api.*key" .
-grep -r "SELECT.*\+\|INSERT.*\+" . # SQL injection
-```
-
-### 2. Performance Review
-```bash
-# Look for N+1 patterns
-grep -A 5 "\.map\|\.forEach" . | grep "await\|prisma"
-# Check for missing indexes
-grep "@@index" prisma/schema.prisma
-```
-
-### 3. Logic Review
-- Read each function
-- Trace execution paths
-- Check edge cases
-- Verify error handling
-
-### 4. Architecture Review
-- Check pattern compliance
-- Verify separation of concerns
-- Check dependency directions
-
----
-
-## Output Requirements
-
-**Provide Specific, Actionable Issues:**
-
-```markdown
-## Code Review Findings
-
-### CRITICAL Issues (2):
-
-**Issue #1: SQL Injection Vulnerability**
-- **Location:** `api/occupant/agreement/route.ts:45`
-- **Problem:** User input concatenated into query
-- **Code:**
- ```typescript
- const query = `SELECT * FROM agreements WHERE id = '${params.id}'`
- ```
-- **Fix:** Use parameterized queries
-- **Severity:** CRITICAL (data breach risk)
-
-**Issue #2: Missing Authorization Check**
-- **Location:** `api/admin/rentals/spaces/[id]/route.ts:23`
-- **Problem:** No check that user owns the space
-- **Impact:** Cross-tenant data access
-- **Fix:** Add organizationId check
-- **Severity:** CRITICAL (security bypass)
-
-### HIGH Issues (3):
-[List specific issues with code locations]
-
-### MEDIUM Issues (4):
-[List specific issues with code locations]
-
-### LOW Issues (2):
-[List specific issues with code locations]
-
----
-
-**Summary:**
-- Total issues: 11
-- MUST FIX: 5 (CRITICAL + HIGH)
-- SHOULD FIX: 4 (MEDIUM)
-- NICE TO HAVE: 2 (LOW)
-```
-
----
-
-## Issue Rating Guidelines
-
-**CRITICAL:** Security vulnerability or data loss
-- SQL injection
-- Auth bypass
-- Hardcoded secrets
-- Data corruption risk
-
-**HIGH:** Will cause production bugs
-- Logic errors
-- Unhandled edge cases
-- N+1 queries
-- Missing indexes
-
-**MEDIUM:** Technical debt or maintainability
-- Missing error handling
-- Pattern violations
-- Tight coupling
-
-**LOW:** Nice-to-have improvements
-- Optimistic UI
-- Better naming
-- Code duplication
-
----
-
-## Review Checklist
-
-Before completing review, check:
-
-- [ ] Reviewed all new files
-- [ ] Checked for security vulnerabilities
-- [ ] Looked for performance problems
-- [ ] Verified error handling
-- [ ] Checked architecture compliance
-- [ ] Provided specific code locations for each issue
-- [ ] Rated each issue (CRITICAL/HIGH/MEDIUM/LOW)
-
----
-
-## Hospital-Grade Standards
-
-βοΈ **Be Thorough and Critical**
-
-- Don't let things slide
-- Find real problems
-- Be specific (not generic)
-- Assume code has issues (it usually does)
-
----
-
-## CRITICAL: Create Completion Artifact
-
-**MANDATORY:** Before returning, you MUST create a completion artifact JSON file.
-
-**File Path:** `docs/sprint-artifacts/completions/{{story_key}}-reviewer.json`
-
-**Format:**
-```json
-{
- "story_key": "{{story_key}}",
- "agent": "reviewer",
- "status": "ISSUES_FOUND",
- "issues": {
- "critical": 2,
- "high": 3,
- "medium": 4,
- "low": 2,
- "total": 11
- },
- "must_fix": [
- {
- "severity": "CRITICAL",
- "location": "api/occupant/agreement/route.ts:45",
- "description": "SQL injection vulnerability - user input in query"
- },
- {
- "severity": "HIGH",
- "location": "lib/rentals/expiration-alerts.ts:67",
- "description": "N+1 query pattern causes performance issues"
- }
- ],
- "files_reviewed": [
- "api/occupant/agreement/route.ts",
- "lib/rentals/expiration-alerts.ts"
- ],
- "timestamp": "2026-01-27T02:40:00Z"
-}
-```
-
-**Use Write tool to create this file. No exceptions.**
-
----
-
-## When Complete, Return This Format
-
-```markdown
-## AGENT COMPLETE
-
-**Agent:** reviewer
-**Story:** {{story_key}}
-**Status:** ISSUES_FOUND | CLEAN
-
-### Completion Artifact
-β
Created: docs/sprint-artifacts/completions/{{story_key}}-reviewer.json
-
-### Issue Summary
-- **CRITICAL:** X issues
-- **HIGH:** X issues
-- **MUST FIX:** X total (CRITICAL + HIGH)
-
-### Ready For
-Fixer agent to address CRITICAL and HIGH issues
-```
-
----
-
-**Remember:** You are the ADVERSARIAL REVIEWER. Your success is measured by finding legitimate issues. Don't be nice - be thorough.
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/workflow.md b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/workflow.md
deleted file mode 100644
index 8baf2a0b..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/workflow.md
+++ /dev/null
@@ -1,215 +0,0 @@
-# Super-Dev-Pipeline v3.1 - Token-Efficient Multi-Agent Pipeline
-
-
-Implement a story using parallel verification agents with Builder context reuse.
-Each agent has single responsibility. Builder fixes issues in its own context (50-70% token savings).
-Orchestrator handles bookkeeping (story file updates, verification).
-
-
-
-**Token-Efficient Multi-Agent Pipeline**
-
-- Builder implements (creative, context preserved)
-- Inspector + Reviewers validate in parallel (verification, fresh context)
-- Builder fixes issues (creative, reuses context - 50-70% token savings)
-- Inspector re-checks (verification, quick check)
-- Orchestrator reconciles story file (mechanical)
-
-**Key Innovation:** Resume Builder instead of spawning fresh Fixer.
-Builder already knows the codebase - just needs to fix specific issues.
-
-Trust but verify. Fresh context for verification. Reuse context for fixes.
-
-
-
-name: story-full-pipeline
-version: 3.1.0
-execution_mode: multi_agent
-
-phases:
- phase_1: Builder (saves agent_id)
- phase_2: [Inspector + N Reviewers] in parallel (N = 1/2/3 based on complexity)
- phase_3: Resume Builder with all findings (reuses context)
- phase_4: Inspector re-check (quick verification)
- phase_5: Orchestrator reconciliation
-
-reviewer_counts:
- micro: 1 reviewer (security only)
- standard: 2 reviewers (security, performance)
- complex: 3 reviewers (security, performance, code quality)
-
-token_efficiency:
- - Phase 2 agents spawn in parallel (same cost, faster)
- - Phase 3 resumes Builder (50-70% token savings vs fresh Fixer)
- - Phase 4 Inspector only (no full re-review)
-
-
-
-@patterns/hospital-grade.md
-@patterns/agent-completion.md
-
-
-
-
-
-Load and validate the story file.
-
-\`\`\`bash
-STORY_FILE="docs/sprint-artifacts/{{story_key}}.md"
-[ -f "$STORY_FILE" ] || { echo "ERROR: Story file not found"; exit 1; }
-\`\`\`
-
-Use Read tool on the story file. Parse:
-- Complexity level (micro/standard/complex)
-- Task count
-- Acceptance criteria count
-
-Determine which agents to spawn based on complexity routing.
-
-
-
-**Phase 1: Builder Agent (Steps 1-4)**
-
-\`\`\`
-βββββββββββββββββββββββββββββββββββββββββββ
-π¨ PHASE 1: BUILDER
-βββββββββββββββββββββββββββββββββββββββββββ
-\`\`\`
-
-Spawn Builder agent and save agent_id for later resume.
-
-**CRITICAL: Save Builder's agent_id for later resume**
-
-\`\`\`
-BUILDER_AGENT_ID={{agent_id_from_task_result}}
-echo "Builder agent: $BUILDER_AGENT_ID"
-\`\`\`
-
-Wait for completion. Parse structured output. Verify files exist.
-
-If files missing or status FAILED: halt pipeline.
-
-
-
-**Phase 2: Parallel Verification (Inspector + Reviewers)**
-
-\`\`\`
-βββββββββββββββββββββββββββββββββββββββββββ
-π PHASE 2: PARALLEL VERIFICATION
-βββββββββββββββββββββββββββββββββββββββββββ
-\`\`\`
-
-**CRITICAL: Spawn ALL verification agents in ONE message (parallel execution)**
-
-Determine reviewer count based on complexity:
-\`\`\`
-if complexity == "micro": REVIEWER_COUNT = 1
-if complexity == "standard": REVIEWER_COUNT = 2
-if complexity == "complex": REVIEWER_COUNT = 3
-\`\`\`
-
-Spawn Inspector + N Reviewers in single message. Wait for ALL agents to complete. Collect findings.
-
-Aggregate all findings from Inspector + Reviewers.
-
-
-
-**Phase 3: Resume Builder with All Findings**
-
-\`\`\`
-βββββββββββββββββββββββββββββββββββββββββββ
-π§ PHASE 3: RESUME BUILDER (Fix Issues)
-βββββββββββββββββββββββββββββββββββββββββββ
-\`\`\`
-
-**CRITICAL: Resume Builder agent (reuses context!)**
-
-Use Task tool with `resume: "{{BUILDER_AGENT_ID}}"` parameter.
-
-Builder receives all consolidated findings and fixes:
-1. ALL CRITICAL issues (security, blockers)
-2. ALL HIGH issues (bugs, logic errors)
-3. MEDIUM if quick (<30 min total)
-4. Skip LOW (gold-plating)
-5. Commit with descriptive message
-
-Wait for completion. Parse commit hash and fix counts.
-
-
-
-**Phase 4: Quick Inspector Re-Check**
-
-\`\`\`
-βββββββββββββββββββββββββββββββββββββββββββ
-β
PHASE 4: RE-VERIFICATION
-βββββββββββββββββββββββββββββββββββββββββββ
-\`\`\`
-
-Spawn Inspector only (not full review). Quick functional verification.
-
-If FAIL: Resume Builder again with new issues.
-If PASS: Proceed to reconciliation.
-
-
-
-**Phase 5: Orchestrator Reconciliation**
-
-\`\`\`
-βββββββββββββββββββββββββββββββββββββββββββ
-π§ PHASE 5: RECONCILIATION (Orchestrator)
-βββββββββββββββββββββββββββββββββββββββββββ
-\`\`\`
-
-**YOU (orchestrator) do this directly. No agent spawn.**
-
-1. Get what was built (git log, git diff)
-2. Read story file
-3. Check off completed tasks (Edit tool)
-4. Fill Dev Agent Record with pipeline details
-5. Verify updates (grep task checkboxes)
-6. Update sprint-status.yaml to "done"
-
-
-
-**Final Quality Gate**
-
-Verify:
-1. Git commit exists
-2. Story tasks checked (count > 0)
-3. Dev Agent Record filled
-4. Sprint status updated
-
-If verification fails: fix using Edit, then re-verify.
-
-
-
-
-
-**Builder fails:** Don't spawn verification. Report failure and halt.
-**Inspector fails (Phase 2):** Still run Reviewers in parallel, collect all findings together.
-**Inspector fails (Phase 4):** Resume Builder again with new issues (iterative fix loop).
-**Builder resume fails:** Report unfixed issues. Manual intervention needed.
-**Reconciliation fails:** Fix using Edit tool. Re-verify checkboxes.
-
-
-
-| Complexity | Pipeline | Reviewers | Total Phase 2 Agents |
-|------------|----------|-----------|---------------------|
-| micro | Builder β [Inspector + 1 Reviewer] β Resume Builder β Inspector recheck | 1 (security) | 2 agents |
-| standard | Builder β [Inspector + 2 Reviewers] β Resume Builder β Inspector recheck | 2 (security, performance) | 3 agents |
-| complex | Builder β [Inspector + 3 Reviewers] β Resume Builder β Inspector recheck | 3 (security, performance, quality) | 4 agents |
-
-**Key Improvement:** All verification agents spawn in parallel (single message, faster execution).
-**Token Savings:** Builder resume in Phase 3 saves 50-70% tokens vs spawning fresh Fixer.
-
-
-
-- [ ] Builder spawned and agent_id saved
-- [ ] All verification agents completed in parallel
-- [ ] Builder resumed with consolidated findings
-- [ ] Inspector recheck passed
-- [ ] Git commit exists for story
-- [ ] Story file has checked tasks (count > 0)
-- [ ] Dev Agent Record filled with all phases
-- [ ] Sprint status updated to "done"
-
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/workflow.yaml b/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/workflow.yaml
deleted file mode 100644
index 6ab01b6d..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-pipeline/workflow.yaml
+++ /dev/null
@@ -1,123 +0,0 @@
-name: super-dev-pipeline
-description: "Multi-agent pipeline with wave-based execution, independent validation, and adversarial code review (GSDMAD)"
-author: "BMAD Method + GSD"
-version: "2.0.0"
-
-# Execution mode
-execution_mode: "multi_agent" # multi_agent | single_agent (fallback)
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-sprint_artifacts: "{config_source}:sprint_artifacts"
-communication_language: "{config_source}:communication_language"
-date: system-generated
-
-# Workflow paths
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline"
-agents_path: "{installed_path}/agents"
-steps_path: "{installed_path}/steps"
-
-# Agent tracking (from GSD)
-agent_history: "{sprint_artifacts}/agent-history.json"
-current_agent_id: "{sprint_artifacts}/current-agent-id.txt"
-
-# State management
-state_file: "{sprint_artifacts}/super-dev-state-{{story_id}}.yaml"
-audit_trail: "{sprint_artifacts}/audit-super-dev-{{story_id}}-{{date}}.yaml"
-
-# Multi-agent configuration
-agents:
- builder:
- description: "Implementation agent - writes code and tests"
- steps: [1, 2, 3, 4]
- subagent_type: "general-purpose"
- prompt_file: "{agents_path}/builder.md"
- trust_level: "low" # Assumes agent will cut corners
- timeout: 3600 # 1 hour
-
- inspector:
- description: "Validation agent - independent verification"
- steps: [5, 6]
- subagent_type: "general-purpose"
- prompt_file: "{agents_path}/inspector.md"
- fresh_context: true # No knowledge of builder agent
- trust_level: "medium" # No conflict of interest
- timeout: 1800 # 30 minutes
-
- reviewer:
- description: "Adversarial code review - finds problems"
- steps: [7]
- subagent_type: "multi-agent-review" # Spawns multiple reviewers
- prompt_file: "{agents_path}/reviewer.md"
- fresh_context: true
- adversarial: true # Goal: find issues
- trust_level: "high" # Wants to find problems
- timeout: 1800 # 30 minutes
- review_agent_count:
- micro: 2
- standard: 4
- complex: 6
-
- fixer:
- description: "Issue resolution - fixes critical/high issues"
- steps: [8, 9]
- subagent_type: "general-purpose"
- prompt_file: "{agents_path}/fixer.md"
- trust_level: "medium" # Incentive to minimize work
- timeout: 2400 # 40 minutes
-
-# Reconciliation: orchestrator does this directly (see workflow.md Phase 5)
-
-# Complexity level (determines which steps to execute)
-complexity_level: "standard" # micro | standard | complex
-
-# Complexity routing
-complexity_routing:
- micro:
- skip_agents: ["reviewer"] # Skip code review for micro stories
- description: "Lightweight path for low-risk stories"
- examples: ["UI tweaks", "text changes", "simple CRUD"]
-
- standard:
- skip_agents: [] # Full pipeline
- description: "Balanced path for medium-risk stories"
- examples: ["API endpoints", "business logic"]
-
- complex:
- skip_agents: [] # Full pipeline + enhanced review
- description: "Enhanced validation for high-risk stories"
- examples: ["Auth", "payments", "security", "migrations"]
- review_focus: ["security", "performance", "architecture"]
-
-# Final verification checklist (main orchestrator)
-final_verification:
- enabled: true
- checks:
- - name: "git_commits"
- command: "git log --oneline -3 | grep {{story_key}}"
- failure_message: "No commit found for {{story_key}}"
-
- - name: "story_checkboxes"
- command: |
- before=$(git show HEAD~1:{{story_file}} | grep -c '^- \[x\]')
- after=$(grep -c '^- \[x\]' {{story_file}})
- [ $after -gt $before ]
- failure_message: "Story checkboxes not updated"
-
- - name: "sprint_status"
- command: "git diff HEAD~1 {{sprint_status}} | grep '{{story_key}}'"
- failure_message: "Sprint status not updated"
-
- - name: "tests_passed"
- # Parse agent output for test evidence
- validation: "inspector_output must contain 'PASS' or test count"
- failure_message: "No test evidence in validation output"
-
-# Backward compatibility
-fallback_to_v1:
- enabled: true
- condition: "execution_mode == 'single_agent'"
- workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-pipeline"
-
-standalone: true
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-story/workflow.md b/src/modules/bmm/workflows/4-implementation/super-dev-story/workflow.md
deleted file mode 100644
index 20dcfea4..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-story/workflow.md
+++ /dev/null
@@ -1,311 +0,0 @@
-# Super Dev Story v3.0 - Development with Quality Gates
-
-
-Complete story development pipeline: dev-story β validation β code review β push.
-Automatically re-invokes dev-story if gaps or review issues found.
-Ensures production-ready code before pushing.
-
-
-
-**Quality Over Speed**
-
-Don't just implementβverify, review, fix.
-- Run dev-story for implementation
-- Validate with gap analysis
-- Code review for quality
-- Fix issues before pushing
-- Only push when truly ready
-
-
-
-name: super-dev-story
-version: 3.0.0
-
-stages:
- - dev-story: "Implement the story"
- - validate: "Run gap analysis"
- - review: "Code review"
- - push: "Safe commit and push"
-
-defaults:
- max_rework_loops: 3
- auto_push: false
- review_depth: "standard" # quick | standard | deep
- validation_depth: "quick"
-
-quality_gates:
- validation_threshold: 90 # % tasks must be verified
- review_threshold: "pass" # pass | pass_with_warnings
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-
-
-
-
-
-**Load story and prepare pipeline**
-
-```bash
-STORY_FILE="{{story_file}}"
-[ -f "$STORY_FILE" ] || { echo "β story_file required"; exit 1; }
-```
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π SUPER DEV STORY PIPELINE
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{story_key}}
-Stages: dev-story β validate β review β push
-
-Quality Gates:
-- Validation: β₯{{validation_threshold}}% verified
-- Review: {{review_threshold}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Initialize:
-- rework_count = 0
-- stage = "dev-story"
-
-
-
-**Stage 1: Implement the story**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π STAGE 1: DEV-STORY
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Invoke dev-story workflow:
-```
-/dev-story story_file={{story_file}}
-```
-
-Wait for completion. Capture:
-- files_created
-- files_modified
-- tasks_completed
-
-```
-β
Dev-story complete
-Files: {{file_count}} created/modified
-Tasks: {{tasks_completed}}/{{total_tasks}}
-```
-
-
-
-**Stage 2: Validate implementation**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π STAGE 2: VALIDATION
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Invoke validation:
-```
-/validate scope=story target={{story_file}} depth={{validation_depth}}
-```
-
-Capture results:
-- verified_pct
-- false_positives
-- category
-
-**Check quality gate:**
-```
-if verified_pct < validation_threshold:
- REWORK_NEEDED = true
- reason = "Validation below {{validation_threshold}}%"
-
-if false_positives > 0:
- REWORK_NEEDED = true
- reason = "{{false_positives}} tasks marked done but missing"
-```
-
-```
-{{#if REWORK_NEEDED}}
-β οΈ Validation failed: {{reason}}
-{{else}}
-β
Validation passed: {{verified_pct}}% verified
-{{/if}}
-```
-
-
-
-**Stage 3: Code review**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π STAGE 3: CODE REVIEW
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-Invoke code review:
-```
-/multi-agent-review files={{files_modified}} depth={{review_depth}}
-```
-
-Capture results:
-- verdict (PASS, PASS_WITH_WARNINGS, NEEDS_REWORK)
-- issues
-
-**Check quality gate:**
-```
-if verdict == "NEEDS_REWORK":
- REWORK_NEEDED = true
- reason = "Code review found blocking issues"
-
-if review_threshold == "pass" AND verdict == "PASS_WITH_WARNINGS":
- REWORK_NEEDED = true
- reason = "Warnings not allowed in strict mode"
-```
-
-```
-{{#if REWORK_NEEDED}}
-β οΈ Review failed: {{reason}}
-Issues: {{issues}}
-{{else}}
-β
Review passed: {{verdict}}
-{{/if}}
-```
-
-
-
-**Handle rework loop**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π REWORK REQUIRED (Loop {{rework_count + 1}}/{{max_rework_loops}})
-βββββββββββββββββββββββββββββββββββββββββββ
-Reason: {{reason}}
-
-{{#if validation_issues}}
-Validation Issues:
-{{#each validation_issues}}
-- {{this}}
-{{/each}}
-{{/if}}
-
-{{#if review_issues}}
-Review Issues:
-{{#each review_issues}}
-- {{this}}
-{{/each}}
-{{/if}}
-```
-
-**Check loop limit:**
-```
-rework_count++
-if rework_count > max_rework_loops:
- echo "β Max rework loops exceeded"
- echo "Manual intervention required"
- HALT
-```
-
-**Re-invoke dev-story with issues:**
-```
-/dev-story story_file={{story_file}} fix_issues={{issues}}
-```
-
-After dev-story completes, return to validation stage.
-
-
-
-**Stage 4: Push changes**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π¦ STAGE 4: PUSH
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Generate commit message from story:**
-```
-feat({{epic}}): {{story_title}}
-
-- Implemented {{task_count}} tasks
-- Verified: {{verified_pct}}%
-- Review: {{verdict}}
-
-Story: {{story_key}}
-```
-
-**If auto_push:**
-```
-/push-all commit_message="{{message}}" auto_push=true
-```
-
-**Otherwise, ask:**
-```
-Ready to push?
-
-[Y] Yes, push now
-[N] No, keep local (can push later)
-[R] Review changes first
-```
-
-
-
-**Display pipeline results**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-β
SUPER DEV STORY COMPLETE
-βββββββββββββββββββββββββββββββββββββββββββ
-Story: {{story_key}}
-
-Pipeline Results:
-- Dev-Story: β
Complete
-- Validation: β
{{verified_pct}}% verified
-- Review: β
{{verdict}}
-- Push: {{pushed ? "β
Pushed" : "βΈοΈ Local only"}}
-
-Rework Loops: {{rework_count}}
-Files Changed: {{file_count}}
-Commit: {{commit_hash}}
-
-{{#if pushed}}
-Branch: {{branch}}
-Ready for PR: gh pr create
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-
-
-```bash
-# Standard pipeline
-/super-dev-story story_file=docs/sprint-artifacts/2-5-auth.md
-
-# With auto-push
-/super-dev-story story_file=docs/sprint-artifacts/2-5-auth.md auto_push=true
-
-# Strict review mode
-/super-dev-story story_file=docs/sprint-artifacts/2-5-auth.md review_threshold=pass
-```
-
-
-
-**Dev-story fails:** Report error, halt pipeline.
-**Validation below threshold:** Enter rework loop.
-**Review finds blocking issues:** Enter rework loop.
-**Max rework loops exceeded:** Halt, require manual intervention.
-**Push fails:** Report error, commit preserved locally.
-
-
-
-- [ ] Dev-story completed
-- [ ] Validation β₯ threshold
-- [ ] Review passed
-- [ ] Changes committed
-- [ ] Pushed (if requested)
-- [ ] Story status updated
-
diff --git a/src/modules/bmm/workflows/4-implementation/super-dev-story/workflow.yaml b/src/modules/bmm/workflows/4-implementation/super-dev-story/workflow.yaml
deleted file mode 100644
index 7185b853..00000000
--- a/src/modules/bmm/workflows/4-implementation/super-dev-story/workflow.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: super-dev-story
-description: "Enhanced story development with post-implementation validation and automated code review - ensures stories are truly complete before marking done"
-author: "BMad"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-output_folder: "{config_source}:output_folder"
-user_name: "{config_source}:user_name"
-communication_language: "{config_source}:communication_language"
-user_skill_level: "{config_source}:user_skill_level"
-document_output_language: "{config_source}:document_output_language"
-story_dir: "{config_source}:implementation_artifacts"
-date: system-generated
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/super-dev-story"
-instructions: "{installed_path}/workflow.md"
-validation: "{installed_path}/checklist.md"
-
-story_file: "" # Explicit story path; auto-discovered if empty
-implementation_artifacts: "{config_source}:implementation_artifacts"
-sprint_status: "{implementation_artifacts}/sprint-status.yaml"
-project_context: "**/project-context.md"
-
-# Super-dev specific settings
-super_dev_settings:
- post_dev_gap_analysis: true
- auto_code_review: true
- fail_on_critical_issues: true
- max_fix_iterations: 3
-
-# Autonomous mode settings (passed from parent workflow like batch-super-dev)
-auto_accept_gap_analysis: false # When true, skip gap analysis approval prompt
-
-standalone: true
-
-web_bundle: false
diff --git a/src/modules/bmm/workflows/4-implementation/validate/workflow.md b/src/modules/bmm/workflows/4-implementation/validate/workflow.md
deleted file mode 100644
index 0cd95571..00000000
--- a/src/modules/bmm/workflows/4-implementation/validate/workflow.md
+++ /dev/null
@@ -1,353 +0,0 @@
-# Validate v3.0 - Unified Story/Epic Validation
-
-
-Single workflow for all validation needs. Validates stories against codebase,
-detects false positives (checked but not implemented), and reports health scores.
-Read-only by default - does not modify files.
-
-
-
-**Trust But Verify**
-
-- Quick mode: Checkbox counting, file existence, pattern matching
-- Deep mode: Haiku agents read actual code, verify implementation quality
-- Categorize: VERIFIED_COMPLETE, NEEDS_REWORK, FALSE_POSITIVE, IN_PROGRESS
-- Report accuracy gaps between claimed and actual completion
-
-
-
-name: validate
-version: 3.0.0
-
-parameters:
- scope:
- story: "Single story file"
- epic: "All stories in an epic"
- all: "All stories in sprint"
-
- target: "story_file path OR epic_number (depends on scope)"
-
- depth:
- quick: "Checkbox counting, file existence checks"
- deep: "Haiku agents verify actual code implementation"
-
- fix_mode: false # If true, update checkboxes and sprint-status
-
-defaults:
- scope: story
- depth: quick
- fix_mode: false
- batch_size: 10
- model_for_deep: haiku
-
-categories:
- VERIFIED_COMPLETE: {score: ">=95", false_positives: 0}
- COMPLETE_WITH_ISSUES: {score: ">=80", false_positives: "<=2"}
- FALSE_POSITIVE: {score: "<50", description: "Claimed done but missing code"}
- NEEDS_REWORK: {false_positives: ">2"}
- IN_PROGRESS: {description: "Accurately reflects partial completion"}
- NOT_STARTED: {checked: 0}
-
-
-
-@patterns/verification.md
-@patterns/hospital-grade.md
-
-
-
-
-
-**Determine what to validate based on scope**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π VALIDATION: {{scope}} scope, {{depth}} depth
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**If scope == story:**
-```bash
-STORY_FILE="{{target}}"
-[ -f "$STORY_FILE" ] || { echo "β Story file not found"; exit 1; }
-```
-stories_to_validate = [target]
-
-**If scope == epic:**
-```bash
-EPIC_NUM="{{target}}"
-# Get stories from sprint-status.yaml matching epic
-grep "^${EPIC_NUM}-" docs/sprint-artifacts/sprint-status.yaml
-```
-stories_to_validate = all stories starting with `{epic_num}-`
-
-**If scope == all:**
-```bash
-# Find all story files, exclude meta-documents
-find docs/sprint-artifacts -name "*.md" | grep -v "EPIC-\|COMPLETION\|REPORT\|README"
-```
-stories_to_validate = all story files
-
-Display:
-```
-Stories to validate: {{count}}
-Depth: {{depth}}
-{{#if depth == deep}}
-Estimated cost: ~${{count * 0.13}} (Haiku agents)
-{{/if}}
-```
-
-
-
-**Quick validation: checkbox counting and file checks**
-
-For each story:
-
-1. **Read story file** - Extract tasks, ACs, DoD
-2. **Count checkboxes:**
- ```
- total_tasks = count of "- [ ]" and "- [x]"
- checked_tasks = count of "- [x]"
- completion_pct = checked / total Γ 100
- ```
-
-3. **Check file existence** (from Dev Agent Record):
- ```bash
- for file in $FILE_LIST; do
- [ -f "$file" ] && echo "β
$file" || echo "β $file MISSING"
- done
- ```
-
-4. **Basic stub detection:**
- ```bash
- grep -l "TODO\|FIXME\|Not implemented\|throw new Error" $FILE_LIST
- ```
-
-5. **Categorize:**
- - β₯95% checked + files exist β VERIFIED_COMPLETE
- - β₯80% checked β COMPLETE_WITH_ISSUES
- - Files missing for checked tasks β FALSE_POSITIVE
- - <50% checked β IN_PROGRESS
- - 0% checked β NOT_STARTED
-
-6. **Store result** with score and category
-
-
-
-**Deep validation: Haiku agents verify actual code**
-
-For each story (or batch):
-
-Spawn Haiku agent:
-```
-Task({
- subagent_type: "general-purpose",
- model: "haiku",
- description: "Deep validate {{story_id}}",
- prompt: `
-Verify ALL tasks for story {{story_id}} by reading actual code.
-
-**Tasks to Verify:**
-{{#each tasks}}
-{{@index}}. [{{checked}}] {{text}}
-{{/each}}
-
-**Files from Dev Agent Record:**
-{{file_list}}
-
-**For EACH task:**
-1. Find relevant files (Glob)
-2. Read the files (Read tool)
-3. Verify: Is it real code or stubs? Tests exist? Error handling?
-4. Judge: actually_complete = true/false
-
-**Return JSON:**
-{
- "story_id": "{{story_id}}",
- "tasks": [
- {
- "task_number": 0,
- "is_checked": true,
- "actually_complete": false,
- "confidence": "high",
- "evidence": "File has TODO on line 45",
- "issues": ["Stub implementation", "No tests"]
- }
- ]
-}
-`
-})
-```
-
-Parse results:
-- **False positive:** checked=true, actually_complete=false
-- **False negative:** checked=false, actually_complete=true
-- **Correct:** checked matches actually_complete
-
-Calculate verification score:
-```
-score = (correct_count / total_count) Γ 100
-score -= (false_positive_count Γ 5) # Penalty for false positives
-```
-
-
-
-**Assign categories based on scores**
-
-| Category | Criteria | Recommended Status |
-|----------|----------|-------------------|
-| VERIFIED_COMPLETE | score β₯95, FP=0 | done |
-| COMPLETE_WITH_ISSUES | score β₯80, FPβ€2 | review |
-| FALSE_POSITIVE | score <50 OR FP>5 | in-progress |
-| NEEDS_REWORK | FP>2 | in-progress |
-| IN_PROGRESS | partial completion | in-progress |
-| NOT_STARTED | 0 checked | backlog |
-
-For each story:
-- Compare current_status vs recommended_status
-- Flag if status is inaccurate
-
-
-
-**Generate batch summary**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π VALIDATION SUMMARY
-βββββββββββββββββββββββββββββββββββββββββββ
-Scope: {{scope}} {{#if target}}({{target}}){{/if}}
-Stories Validated: {{count}}
-Depth: {{depth}}
-
-Overall Health Score: {{health_score}}/100
-
-By Category:
-- β
VERIFIED_COMPLETE: {{verified_count}} ({{verified_pct}}%)
-- β οΈ NEEDS_REWORK: {{rework_count}} ({{rework_pct}}%)
-- β FALSE_POSITIVE: {{fp_count}} ({{fp_pct}}%)
-- π IN_PROGRESS: {{progress_count}} ({{progress_pct}}%)
-- π NOT_STARTED: {{not_started_count}}
-
-Task Accuracy:
-- Total tasks: {{total_tasks}}
-- False positives: {{fp_tasks}} (checked but not done)
-- False negatives: {{fn_tasks}} (done but not checked)
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**If FALSE_POSITIVE stories found:**
-```
-β FALSE POSITIVE STORIES (Claimed Done, Not Implemented):
-
-{{#each fp_stories}}
-- {{story_id}}: Score {{score}}/100, {{fp_task_count}} tasks missing
- Current: {{current_status}} β Should be: in-progress
-{{/each}}
-
-Action: These stories need implementation work!
-```
-
-
-
-**Show single story validation result**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π STORY VALIDATION: {{story_id}}
-βββββββββββββββββββββββββββββββββββββββββββ
-Epic: {{epic_num}}
-Current Status: {{current_status}}
-Recommended Status: {{recommended_status}}
-
-Verification Score: {{score}}/100
-Category: {{category}}
-
-Tasks: {{checked}}/{{total}} checked
-{{#if depth == deep}}
-- Verified complete: {{verified_count}}
-- False positives: {{fp_count}} (checked but code missing)
-- False negatives: {{fn_count}} (code exists, not checked)
-{{/if}}
-
-{{#if category == "VERIFIED_COMPLETE"}}
-β
Story is production-ready
-{{else if category == "FALSE_POSITIVE"}}
-β Story claimed done but has {{fp_count}} missing tasks
- Action: Update status to in-progress, implement missing code
-{{else if category == "NEEDS_REWORK"}}
-β οΈ Story needs rework: {{fp_count}} tasks with issues
-{{else if category == "IN_PROGRESS"}}
-π Story accurately reflects partial completion
-{{/if}}
-
-{{#if fp_tasks}}
-**False Positive Tasks (checked but not done):**
-{{#each fp_tasks}}
-- [ ] {{task}} β {{evidence}}
-{{/each}}
-{{/if}}
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-
-
-**Auto-fix mode: update files based on validation**
-
-```
-βββββββββββββββββββββββββββββββββββββββββββ
-π§ AUTO-FIX MODE
-βββββββββββββββββββββββββββββββββββββββββββ
-```
-
-**Fix false negatives** (code exists but unchecked):
-Use Edit tool to change `- [ ]` to `- [x]` for verified tasks
-
-**Update sprint-status.yaml:**
-Use Edit tool to change status for inaccurate entries
-
-**DO NOT auto-fix false positives** (requires implementation work)
-
-```
-β
Auto-fix complete:
-- {{fn_fixed}} false negatives checked
-- {{status_fixed}} statuses updated
-- {{fp_count}} false positives flagged (need manual implementation)
-```
-
-
-
-
-
-```bash
-# Validate single story (quick)
-/validate scope=story target=docs/sprint-artifacts/2-5-auth.md
-
-# Validate single story (deep - uses Haiku)
-/validate scope=story target=docs/sprint-artifacts/2-5-auth.md depth=deep
-
-# Validate all stories in epic 2
-/validate scope=epic target=2
-
-# Validate all stories in epic 2 (deep)
-/validate scope=epic target=2 depth=deep
-
-# Validate entire sprint
-/validate scope=all
-
-# Validate and auto-fix false negatives
-/validate scope=all fix_mode=true
-```
-
-
-
-**Story file not found:** Skip with warning, continue batch.
-**Haiku agent fails:** Fall back to quick validation for that story.
-**All stories fail:** Report systemic issue, halt.
-
-
-
-- [ ] All target stories validated
-- [ ] Categories assigned based on scores
-- [ ] False positives identified
-- [ ] Report generated
-- [ ] Fixes applied (if fix_mode=true)
-
diff --git a/src/modules/bmm/workflows/4-implementation/validate/workflow.yaml b/src/modules/bmm/workflows/4-implementation/validate/workflow.yaml
deleted file mode 100644
index deccd777..00000000
--- a/src/modules/bmm/workflows/4-implementation/validate/workflow.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-name: validate
-description: "Unified validation workflow. Validates stories against codebase, detects false positives, reports health scores. Replaces validate-story, validate-story-deep, validate-all-stories, validate-all-stories-deep, validate-epic-status, validate-all-epics."
-author: "BMad"
-version: "3.0.0"
-
-# Critical variables from config
-config_source: "{project-root}/_bmad/bmm/config.yaml"
-implementation_artifacts: "{config_source}:implementation_artifacts"
-story_dir: "{implementation_artifacts}"
-sprint_status: "{implementation_artifacts}/sprint-status.yaml"
-
-# Workflow components
-installed_path: "{project-root}/_bmad/bmm/workflows/4-implementation/validate"
-instructions: "{installed_path}/workflow.md"
-
-# Input variables
-variables:
- scope: "story" # story | epic | all
- target: "" # story_file path OR epic_number (depends on scope)
- depth: "quick" # quick | deep (deep uses Haiku agents)
- fix_mode: false # If true, auto-fix false negatives and update statuses
-
-# Deep validation settings
-deep_validation:
- model: "haiku"
- batch_size: 10
- cost_per_story: 0.13
-
-# Output
-default_output_file: "{story_dir}/.validation-{scope}-{date}.md"
-
-standalone: true
-web_bundle: false
diff --git a/test/unit/core/dependency-resolver-advanced.test.js b/test/unit/core/dependency-resolver-advanced.test.js
index 4ed9a0b4..e9e25fb8 100644
--- a/test/unit/core/dependency-resolver-advanced.test.js
+++ b/test/unit/core/dependency-resolver-advanced.test.js
@@ -14,9 +14,9 @@ describe('DependencyResolver - Advanced Scenarios', () => {
await fs.ensureDir(path.join(bmadDir, 'core', 'agents'));
await fs.ensureDir(path.join(bmadDir, 'core', 'tasks'));
await fs.ensureDir(path.join(bmadDir, 'core', 'templates'));
- await fs.ensureDir(path.join(bmadDir, 'modules', 'bmm', 'agents'));
- await fs.ensureDir(path.join(bmadDir, 'modules', 'bmm', 'tasks'));
- await fs.ensureDir(path.join(bmadDir, 'modules', 'bmm', 'templates'));
+ await fs.ensureDir(path.join(bmadDir, 'bmm', 'agents'));
+ await fs.ensureDir(path.join(bmadDir, 'bmm', 'tasks'));
+ await fs.ensureDir(path.join(bmadDir, 'bmm', 'templates'));
});
afterEach(async () => {
@@ -33,7 +33,7 @@ dependencies: ["{project-root}/bmad/bmm/tasks/analyze.md"]
---
Agent`,
);
- await createTestFile(bmadDir, 'modules/bmm/tasks/analyze.md', 'BMM Task');
+ await createTestFile(bmadDir, 'bmm/tasks/analyze.md', 'BMM Task');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, []);
@@ -51,8 +51,8 @@ dependencies: ["{project-root}/bmad/bmm/tasks/*.md"]
---
Agent`,
);
- await createTestFile(bmadDir, 'modules/bmm/tasks/task1.md', 'Task 1');
- await createTestFile(bmadDir, 'modules/bmm/tasks/task2.md', 'Task 2');
+ await createTestFile(bmadDir, 'bmm/tasks/task1.md', 'Task 1');
+ await createTestFile(bmadDir, 'bmm/tasks/task2.md', 'Task 2');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, ['bmm']); // Include bmm module
@@ -154,16 +154,16 @@ Task content`,
});
it('should resolve template from module path', async () => {
- await createTestFile(bmadDir, 'modules/bmm/agents/agent.md', 'BMM Agent');
+ await createTestFile(bmadDir, 'bmm/agents/agent.md', 'BMM Agent');
await createTestFile(
bmadDir,
- 'modules/bmm/tasks/task.md',
+ 'bmm/tasks/task.md',
`---
template: "{project-root}/bmad/bmm/templates/prd-template.yaml"
---
Task`,
);
- await createTestFile(bmadDir, 'modules/bmm/templates/prd-template.yaml', 'template');
+ await createTestFile(bmadDir, 'bmm/templates/prd-template.yaml', 'template');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, ['bmm']);
@@ -215,7 +215,7 @@ Task`,
`,
);
- await createTestFile(bmadDir, 'modules/bmm/tasks/create-prd.md', 'PRD Task');
+ await createTestFile(bmadDir, 'bmm/tasks/create-prd.md', 'PRD Task');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, []);
@@ -249,7 +249,7 @@ Task`,
Use @task-custom-task
`,
);
- await createTestFile(bmadDir, 'modules/bmm/tasks/custom-task.md', 'Custom Task');
+ await createTestFile(bmadDir, 'bmm/tasks/custom-task.md', 'Custom Task');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, ['bmm']);
@@ -265,7 +265,7 @@ Use @task-custom-task
Use @agent-pm
`,
);
- await createTestFile(bmadDir, 'modules/bmm/agents/pm.md', 'PM');
+ await createTestFile(bmadDir, 'bmm/agents/pm.md', 'PM');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, ['bmm']);
diff --git a/test/unit/core/dependency-resolver.test.js b/test/unit/core/dependency-resolver.test.js
index 657390fa..5fe27376 100644
--- a/test/unit/core/dependency-resolver.test.js
+++ b/test/unit/core/dependency-resolver.test.js
@@ -585,7 +585,7 @@ Finally check bmad/core/tasks/review
describe('module organization', () => {
it('should organize files by module correctly', async () => {
await createTestFile(bmadDir, 'core/agents/core-agent.md', 'Core');
- await createTestFile(bmadDir, 'modules/bmm/agents/bmm-agent.md', 'BMM');
+ await createTestFile(bmadDir, 'bmm/agents/bmm-agent.md', 'BMM');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, ['bmm']);
@@ -638,9 +638,9 @@ Finally check bmad/core/tasks/review
expect(module).toBe('core');
});
- it('should extract module from src/modules/bmm path', () => {
+ it('should extract module from src/bmm path', () => {
const resolver = new DependencyResolver();
- const filePath = path.join(bmadDir, 'modules/bmm/agents/pm.md');
+ const filePath = path.join(bmadDir, 'bmm/agents/pm.md');
const module = resolver.getModuleFromPath(bmadDir, filePath);
@@ -651,12 +651,12 @@ Finally check bmad/core/tasks/review
// Create installed structure (no src/ prefix)
const installedDir = path.join(tmpDir, 'installed');
await fs.ensureDir(path.join(installedDir, 'core/agents'));
- await fs.ensureDir(path.join(installedDir, 'modules/bmm/agents'));
+ await fs.ensureDir(path.join(installedDir, 'bmm/agents'));
const resolver = new DependencyResolver();
const coreFile = path.join(installedDir, 'core/agents/agent.md');
- const moduleFile = path.join(installedDir, 'modules/bmm/agents/pm.md');
+ const moduleFile = path.join(installedDir, 'bmm/agents/pm.md');
expect(resolver.getModuleFromPath(installedDir, coreFile)).toBe('core');
expect(resolver.getModuleFromPath(installedDir, moduleFile)).toBe('bmm');
@@ -764,7 +764,7 @@ dependencies: []
await createTestFile(bmadDir, 'core/agents/core-agent.md', 'Core');
await createTestFile(
bmadDir,
- 'modules/bmm/agents/bmm-agent.md',
+ 'bmm/agents/bmm-agent.md',
`---
dependencies: ["{project-root}/bmad/core/tasks/shared-task.md"]
---
@@ -783,8 +783,8 @@ dependencies: ["{project-root}/bmad/core/tasks/shared-task.md"]
it('should resolve module tasks', async () => {
await createTestFile(bmadDir, 'core/agents/core-agent.md', 'Core');
- await createTestFile(bmadDir, 'modules/bmm/agents/pm.md', 'PM');
- await createTestFile(bmadDir, 'modules/bmm/tasks/create-prd.md', 'Create PRD task');
+ await createTestFile(bmadDir, 'bmm/agents/pm.md', 'PM');
+ await createTestFile(bmadDir, 'bmm/tasks/create-prd.md', 'Create PRD task');
const resolver = new DependencyResolver();
const result = await resolver.resolve(bmadDir, ['bmm']);
diff --git a/tools/build-docs.js b/tools/build-docs.js
index 38bb379e..8946d70b 100644
--- a/tools/build-docs.js
+++ b/tools/build-docs.js
@@ -153,18 +153,18 @@ function generateLlmsTxt(outputDir) {
'',
'## Quick Start',
'',
- `- **[Quick Start](${SITE_URL}/docs/modules/bmm/quick-start)** - Get started with BMAD Method`,
+ `- **[Quick Start](${SITE_URL}/docs/bmm/quick-start)** - Get started with BMAD Method`,
`- **[Installation](${SITE_URL}/docs/getting-started/installation)** - Installation guide`,
'',
'## Core Concepts',
'',
- `- **[Scale Adaptive System](${SITE_URL}/docs/modules/bmm/scale-adaptive-system)** - Understand BMAD scaling`,
- `- **[Quick Flow](${SITE_URL}/docs/modules/bmm/bmad-quick-flow)** - Fast development workflow`,
- `- **[Party Mode](${SITE_URL}/docs/modules/bmm/party-mode)** - Multi-agent collaboration`,
+ `- **[Scale Adaptive System](${SITE_URL}/docs/bmm/scale-adaptive-system)** - Understand BMAD scaling`,
+ `- **[Quick Flow](${SITE_URL}/docs/bmm/bmad-quick-flow)** - Fast development workflow`,
+ `- **[Party Mode](${SITE_URL}/docs/bmm/party-mode)** - Multi-agent collaboration`,
'',
'## Modules',
'',
- `- **[BMM - Method](${SITE_URL}/docs/modules/bmm/quick-start)** - Core methodology module`,
+ `- **[BMM - Method](${SITE_URL}/docs/bmm/quick-start)** - Core methodology module`,
`- **[BMB - Builder](${SITE_URL}/docs/modules/bmb/)** - Agent and workflow builder`,
`- **[BMGD - Game Dev](${SITE_URL}/docs/modules/bmgd/quick-start)** - Game development module`,
'',
diff --git a/tools/cli/installers/lib/core/dependency-resolver.js b/tools/cli/installers/lib/core/dependency-resolver.js
index 5fe60120..ad857ac0 100644
--- a/tools/cli/installers/lib/core/dependency-resolver.js
+++ b/tools/cli/installers/lib/core/dependency-resolver.js
@@ -83,28 +83,38 @@ class DependencyResolver {
// or if it contains a src subdirectory (production scenario)
const hasSrcSubdir = await fs.pathExists(path.join(bmadDir, 'src'));
const hasModulesSubdir = await fs.pathExists(path.join(bmadDir, 'modules'));
+ const hasCoreDir = await fs.pathExists(path.join(bmadDir, 'core'));
+ const hasBmmDir = await fs.pathExists(path.join(bmadDir, 'bmm'));
if (hasModulesSubdir) {
- // bmadDir is already the src directory (e.g., /path/to/src)
- // Structure: bmadDir/core or bmadDir/modules/bmm
+ // bmadDir is already the src directory with modules/ subdirectory (legacy structure)
+ // Structure: bmadDir/core or bmadDir/bmm or bmadDir/modules/other
if (module === 'core') {
moduleDir = path.join(bmadDir, 'core');
} else if (module === 'bmm') {
- moduleDir = path.join(bmadDir, 'modules', 'bmm');
+ moduleDir = path.join(bmadDir, 'bmm');
} else {
moduleDir = path.join(bmadDir, 'modules', module);
}
} else if (hasSrcSubdir) {
// bmadDir is the parent of src directory (e.g., /path/to/BMAD-METHOD)
- // Structure: bmadDir/src/core or bmadDir/src/modules/bmm
+ // Structure: bmadDir/src/core or bmadDir/src/bmm
const srcDir = path.join(bmadDir, 'src');
if (module === 'core') {
moduleDir = path.join(srcDir, 'core');
} else if (module === 'bmm') {
- moduleDir = path.join(srcDir, 'modules', 'bmm');
+ moduleDir = path.join(srcDir, 'bmm');
} else {
moduleDir = path.join(srcDir, 'modules', module);
}
+ } else if (hasCoreDir || hasBmmDir) {
+ // bmadDir IS the src directory without modules/ subdirectory (new structure)
+ // Structure: bmadDir/core or bmadDir/bmm
+ if (module === 'core') {
+ moduleDir = path.join(bmadDir, 'core');
+ } else if (module === 'bmm') {
+ moduleDir = path.join(bmadDir, 'bmm');
+ }
}
if (!moduleDir || !(await fs.pathExists(moduleDir))) {
diff --git a/tools/cli/lib/yaml-xml-builder.js b/tools/cli/lib/yaml-xml-builder.js
index ac140814..9e986bd6 100644
--- a/tools/cli/lib/yaml-xml-builder.js
+++ b/tools/cli/lib/yaml-xml-builder.js
@@ -510,7 +510,7 @@ class YamlXmlBuilder {
const sourceHash = await this.calculateFileHash(agentYamlPath);
const customizeHash = customizeYamlPath ? await this.calculateFileHash(customizeYamlPath) : null;
- // Extract module from path (e.g., /path/to/modules/bmm/agents/pm.yaml -> bmm)
+ // Extract module from path (e.g., /path/to/bmm/agents/pm.yaml -> bmm)
// or /path/to/bmad/bmm/agents/pm.yaml -> bmm
// or /path/to/src/bmm/agents/pm.yaml -> bmm
let module = 'core'; // default to core