5.9 KiB
5.9 KiB
ClawTeam Coordination Workflows
Workflow 1: Create a Team and Assign Tasks
A common workflow for setting up a new project team.
# 1. Set leader identity
export CLAWTEAM_AGENT_ID="leader-001"
export CLAWTEAM_AGENT_NAME="leader"
export CLAWTEAM_AGENT_TYPE="leader"
# 2. Create team
clawteam team spawn-team my-project -d "Web app development" -n leader
# 3. Create tasks with dependencies
clawteam task create my-project "Design API schema" -o leader
# => Task ID: aaa11111
clawteam task create my-project "Implement backend" -o backend-dev --blocked-by aaa11111
# => Task ID: bbb22222 (auto-set to blocked status)
clawteam task create my-project "Build frontend" -o frontend-dev --blocked-by aaa11111
# => Task ID: ccc33333
clawteam task create my-project "Integration testing" --blocked-by bbb22222,ccc33333
# => Task ID: ddd44444
# 4. Check board
clawteam board show my-project
# 5. As tasks complete, update status (auto-unblocks dependents)
clawteam task update my-project aaa11111 --status completed
# bbb22222 and ccc33333 auto-unblock from blocked -> pending
Workflow 2: Multi-Agent Spawn and Coordination
Full lifecycle of spawning multiple agents and coordinating work.
# Leader creates team
clawteam team spawn-team dev-team -d "Feature development" -n leader
# Spawn worker agents (each gets identity env vars automatically)
clawteam spawn tmux claude --team dev-team --agent-name researcher --agent-type researcher
clawteam spawn tmux claude --team dev-team --agent-name coder --agent-type general-purpose
# Leader creates tasks
clawteam task create dev-team "Research best practices" -o researcher
clawteam task create dev-team "Implement solution" -o coder
# Leader sends instructions via inbox
clawteam inbox send dev-team researcher "Research authentication patterns for microservices"
clawteam inbox send dev-team coder "Wait for researcher's findings before starting implementation"
# Monitor progress
clawteam board live dev-team --interval 5
Worker Agent Perspective
From inside a spawned worker agent:
# Identity is pre-set via environment
clawteam identity show
# => agentName: researcher, teamName: dev-team
# Check inbox for instructions
clawteam inbox receive dev-team
# Do work, then update task
clawteam task update dev-team <task-id> --status in_progress
# ... work ...
clawteam task update dev-team <task-id> --status completed
# Notify leader when idle
clawteam lifecycle idle dev-team --last-task <task-id> --task-status completed
Workflow 3: Join Request Protocol
When an agent wants to join an existing team dynamically.
# Agent side: request to join (blocks until response)
clawteam team request-join dev-team bob --capabilities "frontend specialist" --timeout 120
# Leader side: check inbox for join requests
clawteam inbox peek dev-team --agent leader
# => join_request from bob, requestId: join-abc123
# Leader approves
clawteam team approve-join dev-team join-abc123
# Agent receives approval with assigned name and agent ID
# => Approved! Joined as 'bob' (agentId: xyz789)
Workflow 4: Plan Approval Flow
For teams requiring plan review before execution.
# Worker submits plan
clawteam plan submit dev-team coder "1. Refactor auth module\n2. Add OAuth2\n3. Update tests" \
--summary "Auth system modernization"
# Leader reviews (checks inbox)
clawteam inbox receive dev-team --agent leader
# => plan_approval_request with planId
# Leader approves or rejects
clawteam plan approve dev-team <plan-id> coder --feedback "Looks good, proceed"
# or
clawteam plan reject dev-team <plan-id> coder --feedback "Add error handling section"
Workflow 5: Graceful Shutdown
Coordinated shutdown of team agents.
# Leader requests shutdown of a worker
clawteam lifecycle request-shutdown dev-team leader coder --reason "All tasks complete"
# Worker checks inbox, sees shutdown request
clawteam inbox receive dev-team --agent coder
# => shutdown_request, requestId: shut-xyz
# Worker finishes current work, then approves
clawteam lifecycle approve-shutdown dev-team shut-xyz coder
# Leader cleans up team when all agents are done
clawteam team cleanup dev-team --force
Workflow 6: Monitoring and Debugging
Using board and inbox commands to monitor team health.
# Quick overview of all teams
clawteam board overview
# Detailed view of one team
clawteam board show dev-team
# JSON output for scripting/parsing
clawteam --json board show dev-team | jq '.taskSummary'
clawteam --json task list dev-team --status blocked | jq '.[].subject'
# Check who has unread messages
clawteam --json board show dev-team | jq '.members[] | select(.inboxCount > 0) | .name'
# Live monitoring
clawteam board live dev-team --interval 3
# Watch a specific agent's inbox
clawteam inbox watch dev-team --agent leader
Common Patterns
Task with Dependencies
# Create a chain: A -> B -> C
clawteam task create team "Task A" -o alice
# ID: aaa
clawteam task create team "Task B" -o bob --blocked-by aaa
# ID: bbb (status: blocked)
clawteam task create team "Task C" -o carol --blocked-by bbb
# ID: ccc (status: blocked)
# When A completes, B auto-unblocks
clawteam task update team aaa --status completed
# B moves from blocked -> pending
# When B completes, C auto-unblocks
clawteam task update team bbb --status completed
Broadcasting Updates
# Leader broadcasts to all team members
clawteam inbox broadcast dev-team "Sprint planning at 2pm. Check your tasks."
# Broadcast with routing key for filtering
clawteam inbox broadcast dev-team "Build passed" --key "ci-notification"
Using JSON Output in Scripts
# Get all blocked tasks
BLOCKED=$(clawteam --json task list dev-team --status blocked)
echo "$BLOCKED" | jq -r '.[].id'
# Count pending messages per team
clawteam --json board overview | jq '.[] | "\(.name): \(.pendingMessages) pending"'
# Get team member names
clawteam --json team status dev-team | jq -r '.members[].name'