feat: make pipeline agent phases visible as top-level Tasks
- batch-stories sequential mode no longer wraps pipeline in a Task - Each phase (Bob, Vera, Tessa, Rex, Rita) spawns as a visible Task - Updated Task descriptions with persona names and emojis - Users can now see each agent working in Claude Code UI Before: Task(Implement story 18-5) with everything nested inside After: Task(🔨 Bob the Builder on 18-5) Task(🕵️ Vera the Inspector on 18-5) Task(🧪 Tessa the Test Scientist on 18-5) Task(🔴 Rex reviewing 18-5) x N Task(🔨 Bob fixing 18-5) Task(🕵️ Vera re-checking 18-5) Task(📚 Rita reflecting on 18-5) Bump version to 6.1.0-Beta.7
This commit is contained in:
parent
c57df85bf6
commit
cb1d3d5d02
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/package.json",
|
"$schema": "https://json.schemastore.org/package.json",
|
||||||
"name": "@jonahschulte/bmad-method",
|
"name": "@jonahschulte/bmad-method",
|
||||||
"version": "6.1.0-Beta.6",
|
"version": "6.1.0-Beta.7",
|
||||||
"description": "Breakthrough Method of Agile AI-driven Development (Enhanced with TDD, intelligent multi-agent review, and production-hardened enforcement)",
|
"description": "Breakthrough Method of Agile AI-driven Development (Enhanced with TDD, intelligent multi-agent review, and production-hardened enforcement)",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"agile",
|
"agile",
|
||||||
|
|
|
||||||
|
|
@ -165,11 +165,13 @@ For parallel: proceed to `execute_parallel`
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step name="execute_sequential" if="mode == sequential">
|
<step name="execute_sequential" if="mode == sequential">
|
||||||
**Sequential Processing**
|
**Sequential Processing - Visible Agent Phases**
|
||||||
|
|
||||||
```
|
```
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
📦 SEQUENTIAL PROCESSING
|
📦 SEQUENTIAL PROCESSING - VISIBLE AGENTS
|
||||||
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
|
Each phase spawns as a TOP-LEVEL Task you can see!
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -203,12 +205,30 @@ If missing, auto-create using greenfield workflow:
|
||||||
echo "✅ Prerequisites satisfied"
|
echo "✅ Prerequisites satisfied"
|
||||||
```
|
```
|
||||||
|
|
||||||
**Step B: Invoke story-full-pipeline**
|
**Step B: Execute Pipeline Phases DIRECTLY (not wrapped in Task)**
|
||||||
|
|
||||||
Use story-full-pipeline workflow with:
|
⚠️ **CRITICAL: DO NOT wrap this in a Task!**
|
||||||
- mode: batch
|
Execute the pipeline phases directly so each agent is a visible top-level Task.
|
||||||
- story_key: {{story_key}}
|
|
||||||
- complexity_level: {{complexity}}
|
**B.1: Load story-full-pipeline workflow:**
|
||||||
|
Read: `{project-root}/_bmad/bmm/workflows/4-implementation/story-full-pipeline/workflow.md`
|
||||||
|
|
||||||
|
**B.2: Execute each phase as described in workflow.md:**
|
||||||
|
The workflow describes spawning these Tasks - spawn them DIRECTLY:
|
||||||
|
|
||||||
|
```
|
||||||
|
Phase 0: Playbook Query (orchestrator does this, no Task)
|
||||||
|
Phase 1: Task({ description: "🔨 Bob implementing {{story_key}}", ... }) ← VISIBLE
|
||||||
|
Phase 2: Task({ description: "🕵️ Vera validating {{story_key}}", ... }) ← VISIBLE
|
||||||
|
Task({ description: "🧪 Tessa testing {{story_key}}", ... }) ← VISIBLE
|
||||||
|
Task({ description: "🔴 Rex reviewing {{story_key}}", ... }) ← VISIBLE (x N)
|
||||||
|
Phase 3: Task({ description: "🔨 Bob fixing {{story_key}}", resume: ID }) ← VISIBLE
|
||||||
|
Phase 4: Task({ description: "🕵️ Vera re-checking {{story_key}}", ... }) ← VISIBLE
|
||||||
|
Phase 5: Reconciliation (orchestrator does this, no Task)
|
||||||
|
Phase 6: Task({ description: "📚 Rita reflecting on {{story_key}}", ... }) ← VISIBLE
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why this matters:** By NOT wrapping the pipeline in a Task, each agent spawn becomes a top-level Task that the user can see in Claude Code's UI.
|
||||||
|
|
||||||
**Step C: Reconcile Using Completion Artifacts (orchestrator does this directly)**
|
**Step C: Reconcile Using Completion Artifacts (orchestrator does this directly)**
|
||||||
|
|
||||||
|
|
@ -292,7 +312,7 @@ Use Edit tool: `"{{story_key}}: ready-for-dev"` → `"{{story_key}}: done"`
|
||||||
```
|
```
|
||||||
Task({
|
Task({
|
||||||
subagent_type: "general-purpose",
|
subagent_type: "general-purpose",
|
||||||
description: "Implement {{story_key}}",
|
description: "🔨 Bob's Team on {{story_key}}",
|
||||||
prompt: `
|
prompt: `
|
||||||
Execute story-full-pipeline for story {{story_key}}.
|
Execute story-full-pipeline for story {{story_key}}.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -150,10 +150,12 @@ Extract the \`<persona>\` section - this defines WHO Bob is.
|
||||||
|
|
||||||
**2. Spawn Builder agent and SAVE agent_id for resume later:**
|
**2. Spawn Builder agent and SAVE agent_id for resume later:**
|
||||||
|
|
||||||
|
⚠️ **This Task should be VISIBLE in Claude Code UI!**
|
||||||
|
|
||||||
\`\`\`
|
\`\`\`
|
||||||
BUILDER_TASK = Task({
|
BUILDER_TASK = Task({
|
||||||
subagent_type: "general-purpose",
|
subagent_type: "general-purpose",
|
||||||
description: "Bob 🔨 implementing story {{story_key}}",
|
description: "🔨 Bob the Builder on {{story_key}}",
|
||||||
prompt: \`
|
prompt: \`
|
||||||
You are BOB 🔨 - The Builder.
|
You are BOB 🔨 - The Builder.
|
||||||
|
|
||||||
|
|
@ -284,7 +286,7 @@ Send single message with multiple Task calls:
|
||||||
\`\`\`
|
\`\`\`
|
||||||
Task({
|
Task({
|
||||||
subagent_type: "testing-suite:test-engineer",
|
subagent_type: "testing-suite:test-engineer",
|
||||||
description: "Vera 🔍 validating story {{story_key}}",
|
description: "🕵️ Vera the Inspector on {{story_key}}",
|
||||||
prompt: \`
|
prompt: \`
|
||||||
You are VERA 🔍 - The Verification Inspector.
|
You are VERA 🔍 - The Verification Inspector.
|
||||||
|
|
||||||
|
|
@ -397,7 +399,7 @@ Save to: docs/sprint-artifacts/completions/{{story_key}}-inspector.json
|
||||||
\`\`\`
|
\`\`\`
|
||||||
Task({
|
Task({
|
||||||
subagent_type: "testing-suite:test-engineer",
|
subagent_type: "testing-suite:test-engineer",
|
||||||
description: "Tessa 🧪 reviewing test quality for {{story_key}}",
|
description: "🧪 Tessa the Test Scientist on {{story_key}}",
|
||||||
prompt: \`
|
prompt: \`
|
||||||
You are TESSA 🧪 - The Test Quality Analyst.
|
You are TESSA 🧪 - The Test Quality Analyst.
|
||||||
|
|
||||||
|
|
@ -478,7 +480,56 @@ Save to: docs/sprint-artifacts/completions/{{story_key}}-test-quality.json
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
(Continue with Security, Logic, Architect, Quality reviewers as before...)
|
## Rex 🔴 Reviewers (Spawn based on complexity)
|
||||||
|
|
||||||
|
Load Rex's persona from: `{project-root}/_bmad/bmm/agents/reviewer.md`
|
||||||
|
|
||||||
|
**Security Reviewer (always spawn):**
|
||||||
|
\`\`\`
|
||||||
|
Task({
|
||||||
|
subagent_type: "auditor-security",
|
||||||
|
description: "🔴 Rex (Security) on {{story_key}}",
|
||||||
|
prompt: \`
|
||||||
|
You are REX 🔴 - The Code Critic (Security Focus).
|
||||||
|
|
||||||
|
<persona>
|
||||||
|
[INJECT persona section from _bmad/bmm/agents/reviewer.md]
|
||||||
|
</persona>
|
||||||
|
|
||||||
|
Focus: Security vulnerabilities, injection attacks, auth issues.
|
||||||
|
[... security review prompt ...]
|
||||||
|
\`
|
||||||
|
})
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
**Logic/Performance Reviewer (standard/complex):**
|
||||||
|
\`\`\`
|
||||||
|
Task({
|
||||||
|
subagent_type: "optimizer-performance",
|
||||||
|
description: "🔴 Rex (Logic) on {{story_key}}",
|
||||||
|
prompt: "... logic and performance review ..."
|
||||||
|
})
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
**Architecture Reviewer (always spawn):**
|
||||||
|
\`\`\`
|
||||||
|
Task({
|
||||||
|
subagent_type: "architect-reviewer",
|
||||||
|
description: "🔴 Rex (Architecture) on {{story_key}}",
|
||||||
|
prompt: "... architecture patterns review ..."
|
||||||
|
})
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
**Code Quality Reviewer (complex only):**
|
||||||
|
\`\`\`
|
||||||
|
Task({
|
||||||
|
subagent_type: "general-purpose",
|
||||||
|
description: "🔴 Rex (Quality) on {{story_key}}",
|
||||||
|
prompt: "... code quality review ..."
|
||||||
|
})
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**Wait for ALL agents to complete.**
|
**Wait for ALL agents to complete.**
|
||||||
|
|
||||||
|
|
@ -537,10 +588,14 @@ If coverage fails: add to issues list for Builder to fix.
|
||||||
|
|
||||||
**CRITICAL: Resume Bob (reuses context, 50-70% token savings!)**
|
**CRITICAL: Resume Bob (reuses context, 50-70% token savings!)**
|
||||||
|
|
||||||
Use Task tool with \`resume: "{{BUILDER_AGENT_ID}}"\` parameter.
|
⚠️ **This Task should be VISIBLE in Claude Code UI!**
|
||||||
|
|
||||||
**Bob's Fix Prompt:**
|
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
Task({
|
||||||
|
subagent_type: "general-purpose",
|
||||||
|
description: "🔨 Bob fixing issues on {{story_key}}",
|
||||||
|
resume: "{{BUILDER_AGENT_ID}}",
|
||||||
|
prompt: \`
|
||||||
Hey Bob! 🔨 The review team found some issues. Can we fix it?
|
Hey Bob! 🔨 The review team found some issues. Can we fix it?
|
||||||
|
|
||||||
<issues_to_fix>
|
<issues_to_fix>
|
||||||
|
|
@ -576,15 +631,32 @@ Wait for completion. Parse commit hash and fix counts.
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step name="inspector_recheck">
|
<step name="inspector_recheck">
|
||||||
**Phase 4: Quick Inspector Re-Check**
|
**Phase 4: Vera 🕵️ Quick Re-Check**
|
||||||
|
|
||||||
\`\`\`
|
\`\`\`
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
✅ PHASE 4: RE-VERIFICATION
|
🕵️ PHASE 4: VERA RE-VERIFIES
|
||||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
Spawn Inspector only (not full review). Quick functional verification.
|
⚠️ **This Task should be VISIBLE in Claude Code UI!**
|
||||||
|
|
||||||
|
\`\`\`
|
||||||
|
Task({
|
||||||
|
subagent_type: "testing-suite:test-engineer",
|
||||||
|
description: "🕵️ Vera re-checking {{story_key}}",
|
||||||
|
prompt: \`
|
||||||
|
You are VERA 🕵️ - Quick re-verification after Bob's fixes.
|
||||||
|
|
||||||
|
Verify that:
|
||||||
|
1. All CRITICAL/HIGH issues from Phase 2 are resolved
|
||||||
|
2. Tests still pass
|
||||||
|
3. No new issues introduced
|
||||||
|
|
||||||
|
Return: PASS or FAIL with evidence.
|
||||||
|
\`
|
||||||
|
})
|
||||||
|
\`\`\`
|
||||||
|
|
||||||
If FAIL: Resume Builder again with new issues.
|
If FAIL: Resume Builder again with new issues.
|
||||||
If PASS: Proceed to reconciliation.
|
If PASS: Proceed to reconciliation.
|
||||||
|
|
@ -710,7 +782,7 @@ Spawn Reflection Agent:
|
||||||
\`\`\`
|
\`\`\`
|
||||||
Task({
|
Task({
|
||||||
subagent_type: "general-purpose",
|
subagent_type: "general-purpose",
|
||||||
description: "Extract learnings from {{story_key}}",
|
description: "📚 Rita the Librarian reflecting on {{story_key}}",
|
||||||
prompt: \`
|
prompt: \`
|
||||||
You are the REFLECTION agent for story {{story_key}}.
|
You are the REFLECTION agent for story {{story_key}}.
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue