Appearance
Crowd Workflows - Multi-Agent Collaboration Guide
Overview
Responsible-Vibe-MCP supports collaborative workflows that enable teams of specialized AI agents to work together on software development tasks. Each agent has a specific role (business-analyst, architect, developer) and follows the same workflow with role-appropriate instructions.
Quick Setup
1. Copy Agent Configurations
Use the CLI to copy pre-configured agent definitions to your project:
bash
npx responsible-vibe-mcp@latest agents copyThis creates three agent configurations in .crowd/agents/:
business-analyst.yaml- Requirements and specification expertarchitect.yaml- System design and planning expertdeveloper.yaml- Implementation expert
Each agent is pre-configured with:
VIBE_ROLEenvironment variable (business-analyst, architect, or developer)VIBE_WORKFLOW_DOMAINS=sdd-crowdto access collaborative workflows- System prompts explaining team collaboration
- MCP server connection to responsible-vibe-mcp
2. Give This Prompt to Your Orchestrator
Copy this prompt and give it to your orchestrating agent (the one with access to crowd-mcp tools):
You are orchestrating a team of AI agents using crowd-mcp and responsible-vibe-mcp.
## Agent Discovery
The project has three pre-configured agents:
- business-analyst
- architect
- developer
## Your Orchestration Process
When I ask you to start a collaborative development task:
1. **Spawn the team** using spawn_agent() with the agent type matching the filename
- spawn_agent(task="[task] - analysis", agentType="business-analyst")
- spawn_agent(task="[task] - architecture", agentType="architect")
- spawn_agent(task="[task] - implementation", agentType="developer")
2. **Choose workflow** based on task type:
- Feature development → sdd-feature-crowd (starts with business-analyst)
- Bug fixing → sdd-bugfix-crowd (starts with developer)
- New project → sdd-greenfield-crowd (starts with architect)
3. **Kick off** by sending message to the starting agent:
- send_message(to: [agent-id], content: "Start [workflow-name] for [task description]")
4. **Monitor** using get_messages() to see progress updates from agents.
IMPORTANT: The agents will work for long intervals. You may check as often as you like, but don't bother them with repeated questions or status updates
5. **Relay** when agents send_message_to_operator() with questions you cannot answer as they need more information on the context of the development.
## Rules
- Spawn all three agents at start (they work as a persistent team)
- Agents will message each other directly - you monitor and intervene when needed
- When agents ask you questions, ask me and relay my answer
## Example
When I say: "Build user authentication"
You should:
1. spawn_agent(task="Build user authentication - analysis", agentType="business-analyst")
2. spawn_agent(task="Build user authentication - architecture", agentType="architect")
3. spawn_agent(task="Build user authentication - implementation", agentType="developer")
4. send_message(to: business-analyst, content: "Start sdd-feature-crowd for user authentication system")
5. Monitor messages and keep me updated3. Start Collaborating
Tell your orchestrator to start a development task:
Build a search feature for the product catalogThe orchestrator will:
- Spawn the three agents
- Start the business-analyst with sdd-feature-crowd workflow
- Monitor progress and report back to you
Available Workflows
sdd-crowd Domain - Collaborative specification-driven development workflows:
sdd-feature-crowd
Collaborative feature development with full team participation.
Phases: analyze → specify → clarify → plan → tasks → implement
Role Flow:
- Business-analyst drives: analyze, specify, clarify
- Architect drives: plan, tasks
- Developer drives: implement
Use when: Building new features or enhancing existing ones with a team
sdd-bugfix-crowd
Collaborative bug fixing with systematic approach.
Phases: reproduce → specify → test → plan → fix → verify
Role Flow:
- Developer drives: reproduce, test, fix, verify
- Business-analyst drives: specify
- Architect drives: plan
Use when: Fixing complex bugs that benefit from team expertise
sdd-greenfield-crowd
Collaborative new project development from scratch.
Phases: constitution → specify → plan → tasks → implement → document
Role Flow:
- Architect drives: constitution, plan, tasks
- Business-analyst drives: specify
- Developer drives: implement
- All contribute to: document
Use when: Starting new projects with comprehensive team planning
How Collaboration Works
The RCI Model
Each phase assigns agents one of three roles:
- Responsible (R): Primary driver
- Edits the plan file
- Calls
proceed_to_phase()to advance - Drives the work forward
- Consulted (C): Available for questions
- Monitors messages
- Provides expert input when asked
- Cannot edit plan or proceed
- Informed (I): Passive monitoring
- Stays aware of progress
- No active participation required
Note: The human operator is always implicitly informed.
Role Assignment Examples
sdd-feature-crowd specify phase:
- Business-analyst: RESPONSIBLE (drives specification)
- Architect: CONSULTED (answers technical feasibility questions)
- Developer: CONSULTED (provides complexity estimates)
sdd-feature-crowd implement phase:
- Developer: RESPONSIBLE (drives implementation)
- Architect: CONSULTED (answers design questions)
- Business-analyst: CONSULTED (clarifies requirements)
Collaboration Protocol
1. Handoff Pattern:
Business-analyst (RESPONSIBLE in specify phase):
1. Completes specification work
2. Sends: send_message(architect-id, "Please take lead for plan phase")
3. Reports: send_message_to_operator("Spec complete, handing to architect")
4. Calls: proceed_to_phase(target_phase: "plan")
5. Becomes: CONSULTED in plan phase
Architect (CONSULTED → RESPONSIBLE):
1. Receives handoff message
2. Becomes RESPONSIBLE in plan phase
3. Drives planning work2. Consultation Pattern:
Architect (RESPONSIBLE in plan phase):
1. Has question about requirements
2. Sends: send_message(business-analyst-id, "What does requirement X mean?")
Business-analyst (CONSULTED in plan phase):
1. Receives: get_my_messages()
2. Responds: send_message(architect-id, "Requirement X means...")
Architect:
3. Continues planning with clarified informationAgent Configuration
System Prompts
All agent system prompts follow the same pattern:
- Explain team structure and roles
- Describe available tools (whats_next, send_message, etc.)
- Emphasize important rules (only responsible edits plan, always call whats_next)
- Keep role responsibilities generic (workflow provides specific tasks)
Example Configuration
yaml
name: business-analyst
displayName: Business Analyst
systemPrompt: |
You are working as a business-analyst in a collaborative team.
Your team: business-analyst (you), architect, developer
## How Collaboration Works
You follow structured workflows. In each phase, you may be:
- RESPONSIBLE (driving), CONSULTED (answering questions), or INFORMED (monitoring)
## Available Tools
- whats_next(): Get phase guidance (call after every message)
- proceed_to_phase(): Move forward (only when responsible)
- send_message(to, content): Collaborate with team
- send_message_to_operator(content): Report to human
- get_my_messages(): Check for questions
mcpServers:
responsible-vibe:
type: stdio
command: npx
args: [responsible-vibe-mcp@latest]
env:
VIBE_ROLE: business-analyst
VIBE_WORKFLOW_DOMAINS: sdd-crowdWorkflow Features
$VIBE_ROLE Variable
Workflows use $VIBE_ROLE for dynamic agent identification:
yaml
default_instructions: |
You are $VIBE_ROLE working in a collaborative team.
Current phase: SPECIFYSubstituted at runtime:
- Business-analyst sees: "You are business-analyst working..."
- Architect sees: "You are architect working..."
Role-Specific Instructions
Each transition provides role-appropriate guidance:
yaml
transitions:
- trigger: spec_complete
to: plan
role: business-analyst
additional_instructions: |
You are RESPONSIBLE. Create spec, then hand off.
- trigger: spec_complete
to: plan
role: architect
additional_instructions: |
You are CONSULTED. Answer questions when asked.Transition Filtering
Each agent only sees transitions for their role:
- Business-analyst sees only
role: business-analysttransitions - Architect sees only
role: architecttransitions - Developer sees only
role: developertransitions - Transitions with no
roleshown to everyone
Validation
Tool Validation (proceed_to_phase):
- Verifies agent has valid transition to target phase
- Prevents agents from proceeding when not responsible
- Clear error messages when validation fails
Plan File Editing:
- Enforced via instructions (cannot validate at tool level)
- RESPONSIBLE: "Only you can edit the plan file"
- CONSULTED: "Do NOT edit the plan file"
Usage Examples
Starting a Feature with Team
bash
# Human operator (via Claude Desktop + crowd-mcp):
"Spawn business-analyst, architect, and developer agents to build user authentication"
# Agents spawn and start sdd-feature-crowd workflow
# Each agent calls whats_next() and gets role-specific instructions
# Business-analyst (RESPONSIBLE in analyze):
- Analyzes requirements
- Messages architect: "What authentication patterns do we use?"
- Messages developer: "How complex is OAuth integration?"
- Completes analysis
- Hands off to specify phase
# Business-analyst (RESPONSIBLE in specify):
- Creates specification
- Messages team for review
- Hands off to architect
# Architect (RESPONSIBLE in plan):
- Creates technical plan
- Messages developer for feedback
- Creates task breakdown
- Hands off to developer
# Developer (RESPONSIBLE in implement):
- Implements features
- Messages architect with design questions
- Messages business-analyst for requirement clarifications
- Completes implementationAgent Perspectives
What business-analyst sees in specify phase:
You are RESPONSIBLE for the specify phase.
You have exclusive control:
- Only you can edit the plan file
- Only you can proceed to next phase
Tasks:
- Create specification...
- Use send_message to ask architect about technical feasibility
- Use send_message to ask developer about implementation complexity
Before proceeding:
- Send handoff message to architect
- Report to operator
- Call proceed_to_phaseWhat architect sees in specify phase:
You are CONSULTED during the specify phase.
Business-analyst is driving this work.
Your responsibilities:
- Monitor messages for questions
- Provide technical feasibility input
- Review specification when asked
Constraints:
- Do NOT edit plan file
- Do NOT proceed to next phaseBest Practices
1. Always Call whats_next()
Every agent should call whats_next() after each user message to get current phase guidance.
2. Use Messaging Proactively
Agents should actively collaborate:
- Ask questions when uncertain
- Request reviews before proceeding
- Share information proactively
- Keep operator informed of progress
3. Respect Role Boundaries
- Only RESPONSIBLE agent edits plan file
- Only RESPONSIBLE agent calls proceed_to_phase
- CONSULTED agents wait for questions
- Clear communication about role transitions
4. Explicit Handoffs
When transitioning phases:
- Complete your work
- Send handoff message to next responsible agent
- Notify other team members
- Report to operator
- Call proceed_to_phase
Troubleshooting
"Agent with role 'X' cannot proceed"
Cause: Agent trying to proceed when not responsible for target phase
Solution: Only the responsible agent can call proceed_to_phase. Check workflow to see who should be driving the target phase.
Agent Not Seeing Transitions
Cause: VIBE_ROLE not set or doesn't match workflow roles
Solution: Verify agent configuration has VIBE_ROLE environment variable set correctly.
Multiple Agents Editing Plan File
Cause: Agents not following role instructions
Solution: Ensure agents read and follow their role-specific instructions. Only RESPONSIBLE agent should edit plan file.
Technical Details
Environment Variables
- VIBE_ROLE: Agent's role (business-analyst, architect, developer)
- Required for collaborative workflows
- Optional for single-agent workflows
- VIBE_WORKFLOW_DOMAINS: Filter workflows by domain
- Set to
sdd-crowdfor collaborative workflows - Can combine:
sdd-crowd,sddfor both
- Set to
Workflow Schema
Collaborative workflows extend the standard workflow schema:
role?: stringon transitionscollaboration?: booleanin metadatarequiredRoles?: string[]in metadata
All fields optional - backward compatible with existing workflows.
Resources
Agent Templates:
.crowd/agents/- business-analyst.yaml
- architect.yaml
- developer.yaml
Workflows:
resources/workflows/sdd-crowd/- sdd-feature-crowd.yaml
- sdd-bugfix-crowd.yaml
- sdd-greenfield-crowd.yaml
Tests:
test/integration/crowd-workflows.test.ts- 11 tests covering all collaboration features
Integration: Designed for crowd-mcp