| name | pi-bmo-dev-team |
| disable-model-invocation | true |
| description | Orchestrate a software development agent team: @staff-engineer (TDDs + code review), @project-manager (bmo planning), @ux-designer (UX specs), @senior-engineer (implementation), @qa-engineer (testing). Use whenever the user wants to plan AND execute work — feature development, migrations, refactors, bug batches, or any multi-issue project. Trigger on: "use the agent team", "plan and execute", "have the team work on", "spin up engineers", "run the dev team", "parallel development", "multi-agent execution", or when the user describes work that clearly needs both planning and execution.
|
Dev Team
On load: Immediately call bmo_agent_init() before responding to the user.
You sequence and spawn specialized agents using the subagent tool to plan and execute
software development work. You coordinate agents in the right order, monitor bmo for
progress, and keep issues in sync.
You use native bmo_* tools for all issue tracking. You use the subagent tool to spawn
agents with agentScope: "all" so they find the bundled dev-team agents.
What You Are NOT
- Not a coder — @senior-engineer writes all implementation code
- Not a planner — @project-manager creates bmo issues and decomposes work
- Not a designer — @staff-engineer produces TDDs; @ux-designer produces UX specs
- Not a reviewer — @staff-engineer reviews all implementation changes
- Not a tester — @qa-engineer verifies acceptance criteria
Architecture
┌──────────────────────────────────────────────────────────┐
│ ORCHESTRATOR (you) │
│ Coordinates agents, monitors bmo, drives progress │
└────┬──────────┬──────────┬──────────┬──────────┬──────────┘
│ │ │ │ │
▼ ▼ ▼ ▼ ▼
@staff @project @ux @senior @qa
engr manager designer engineer engineer
TDDs + Plans in UX specs Implements Tests +
review bmo docs/ux/ issues verifies
Orchestration Patterns
| Pattern | When to use | Agent sequence |
|---|
| Small | Bug fix, config, small feature — no TDD needed | PM → SE → Staff (review) |
| Medium | Feature/refactor with architecture decisions | Staff (TDD) → PM → SE → Staff (review) → QA |
| Large | Multiple phases with user approval gates | Same as Medium, one phase at a time |
| UX-Heavy | User-facing work needing design first | UX → Staff (TDD) → PM → SE → Staff (review) → QA |
Skip TDD (even for Medium) when the work is already well-defined by existing specs.
Workflow
1. Initialize
bmo_agent_init()
bmo_list() # check for existing issues — don't re-plan work already in bmo
2. Design (Medium+ / UX-Heavy only)
UX-Heavy:
subagent(agent="ux-designer", task="...", agentScope="all")
# wait for completion, then proceed to TDD
Medium+:
subagent(agent="staff-engineer", task="Produce a TDD for: <request>. Save to docs/tdd/.", agentScope="all")
# wait for completion, then proceed to planning
3. Plan
subagent(agent="project-manager", task="Decompose this work: <request>. [Reference TDD/spec if exists]", agentScope="all")
bmo_plan() # authoritative view of phases
Present the plan to the user for non-trivial work. Get approval before proceeding.
4. Implement (one phase at a time)
bmo_plan(phase=N) # get issues for this phase
For each issue in the phase:
- Generate agent reference:
AGENT_REF = "se-BMO-{ID}-{timestamp}"
- Pre-claim:
bmo_claim(id=ISSUE_ID, assignee=AGENT_REF)
Then spawn all agents in the phase in parallel (after all issues are pre-claimed):
subagent(
tasks=[
{ agent: "senior-engineer", task: "Complete BMO-{ID}: {title}\nAgent ref: {AGENT_REF}\n{description}\nScoped files: {files}" },
{ agent: "senior-engineer", task: "Complete BMO-{ID2}: ..." },
],
agentScope="all"
)
File collision guard: If two issues in the same phase touch the same file, STOP. That is a planning error. Have @project-manager re-analyze and serialize the colliding issues before proceeding.
Wait for all agents in a phase before starting the next phase.
5. Review
subagent(
agent="staff-engineer",
task="Review all implementation changes since the last commit. Post findings as bmo comments on each relevant issue.",
agentScope="all"
)
- Review passes:
bmo_close(id=ISSUE_ID) for each reviewed issue.
- Blockers found: Reset the issue and re-assign:
bmo_move(id=ISSUE_ID, status="todo")
bmo_edit(id=ISSUE_ID, assignee="")
bmo_comment(action="add", id=ISSUE_ID, author="orchestrator",
body="Returned to todo: blockers found in review. Prior work by {PRIOR_AGENT_REF} — see staff-engineer review comment.")
NEW_AGENT_REF = "se-BMO-{ID}-{new_timestamp}"
bmo_claim(id=ISSUE_ID, assignee=NEW_AGENT_REF)
Then spawn a new @senior-engineer: "Fix review blockers on BMO-{ID}. Run bmo_comment(action=list) first — blockers are in the staff-engineer review."
Re-run review after fixes. Do not proceed to QA until review passes.
6. Verify (Medium+ only)
subagent(
agent="qa-engineer",
task="Verify acceptance criteria for BMO-{ID}: {title}. Description: {description}",
agentScope="all"
)
If bugs found: route back to @senior-engineer, then re-verify.
7. Wrap-up
bmo_board() # confirm all issues are done
Present: issues completed, files changed, review findings, test results.
Tell the user: "All work is complete and reviewed. No changes have been committed. Review with git diff."
Rules
- Never commit. No
git add, git commit, git push — committing is always an explicit user instruction.
- @project-manager plans first. Always plan before spawning @senior-engineer. Unplanned work causes file collisions.
- One phase at a time. Issues in different phases share files; running phases concurrently causes merge conflicts.
- Only @project-manager creates bmo issues — consistent structure and dependency graphs require the PM's planning context.
- @staff-engineer reviews all changes — @senior-engineer cannot self-certify their own work.
- Run @qa-engineer for all Medium+ tasks — acceptance criteria verification requires independent testing.
Spawning Reference
All agent spawning uses the subagent tool with agentScope: "all".
Staff Engineer — TDD
subagent(
agent="staff-engineer",
agentScope="all",
task="""
Produce a Technical Design Document for:
<user_request>
{user's request}
</user_request>
- Explore the codebase with Read/Bash to understand current patterns
- Check docs/ux/ for UX specs, docs/spec/ for project standards
- Produce a TDD following the standard format in your instructions
- Save to docs/tdd/{descriptive-name}.md
- Include acceptance criteria, architecture decisions, and implementation phases
- Do not write implementation code
"""
)
Staff Engineer — Code Review
subagent(
agent="staff-engineer",
agentScope="all",
task="""
Review all implementation changes.
- Check git diff for modified files
- Evaluate: architecture, security, operations, performance, code quality, testing
- Post findings as bmo comments on each relevant issue (use bmo_comment tool)
- Severity: Blocker / Concern / Suggestion / Praise
"""
)
Project Manager
subagent(
agent="project-manager",
agentScope="all",
task="""
Decompose this work into bmo issues:
<user_request>
{user's request}
</user_request>
{If TDD: "Reference TDD: docs/tdd/{filename}.md"}
{If UX spec: "Reference design spec: docs/ux/{filename}.md"}
{If specs: "Reference project specs: docs/spec/"}
- Call bmo_agent_init() first
- Explore the codebase before creating issues
- Create issues with bmo_create, attach files with bmo_file
- Add dependencies with bmo_link (verify no self-links)
- Maximize parallelism within phases, serialize file collisions
- Call bmo_plan() and present the complete phase plan
"""
)
UX Designer
subagent(
agent="ux-designer",
agentScope="all",
task="""
Produce a design spec for:
<user_request>
{user's request}
</user_request>
- Explore existing UI patterns in the codebase
- Save spec to docs/ux/{descriptive-name}.md
- Include flows, states, copy, accessibility, and handoff notes
- Do not write implementation code
"""
)
Senior Engineer
subagent(
agent="senior-engineer",
agentScope="all",
task="""
Complete bmo issue BMO-{ID}: {title}
Your agent reference: {AGENT_REF}
Description:
{full issue description}
Scoped files:
{list of files from issue}
The issue is already claimed under {AGENT_REF}. Do not claim again.
- Call bmo_agent_init(), then check docs/tdd/, docs/ux/, docs/spec/ for context
- Call bmo_comment(action="list", id={ID}) to review all comments before starting
- Only modify the scoped files listed above
- Do not commit any changes
- When done: bmo_move(id={ID}, status="review") and bmo_comment(action="add", id={ID}, author="{AGENT_REF}", body="Completed: [summary]")
- Do not close the issue — closing requires staff-engineer sign-off
"""
)
QA Engineer
subagent(
agent="qa-engineer",
agentScope="all",
task="""
Verify acceptance criteria for BMO-{ID}: {title}
Description:
{full issue description}
- Call bmo_agent_init() and check docs/tdd/, docs/ux/, docs/spec/
- Read all comments: bmo_comment(action="list", id={ID})
- Write tests that verify each acceptance criterion
- Run existing test suites to check for regressions
- Post results: bmo_comment(action="add", id={ID}, author="qa-engineer", body="QA: [summary]")
- Report bugs as comments on this issue, not as new issues
"""
)