From swarm
Manage shared task lists for agent teams: create tasks, set dependencies, claim work, track progress. Use when coordinating work items or building task pipelines.
How this skill is triggered — by the user, by Claude, or both
Slash command
/swarm:task-systemThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Experimental**: Agent teams are disabled by default. Enable with `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` in your [settings.json](https://code.claude.com/docs/en/settings) or environment.
Experimental: Agent teams are disabled by default. Enable with
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMSin your settings.json or environment.
Manage shared work items with dependencies, ownership, and status tracking across agent teams.
Related skills:
TaskCreate({
subject: "Review authentication module",
description: "Review all files in app/services/auth/ for security vulnerabilities",
activeForm: "Reviewing auth module..." // Shown in spinner when in_progress
})
Fields:
subject - Brief, actionable title in imperative form (e.g., "Fix authentication bug")description - Detailed description with context and acceptance criteriaactiveForm - Present continuous form shown while task is in_progress (e.g., "Fixing authentication bug")All tasks are created with status pending and no owner.
TaskList()
Returns summary of each task:
#1 [completed] Analyze codebase structure
#2 [in_progress] Review authentication module (owner: security-reviewer)
#3 [pending] Generate summary report [blocked by #2]
Fields returned:
id - Task identifiersubject - Brief descriptionstatus - pending, in_progress, or completedowner - Agent name if assigned, empty if availableblockedBy - List of task IDs that must complete firstWhen to check: After completing a task, to find newly unblocked work. Prefer tasks in ID order (lowest first) when multiple are available.
TaskGet({ taskId: "2" })
Returns full task with description, status, blockedBy, blocks, etc.
// Claim and start a task (combined)
TaskUpdate({ taskId: "2", owner: "security-reviewer", status: "in_progress" })
// Mark complete
TaskUpdate({ taskId: "2", status: "completed" })
// Set up dependencies
TaskUpdate({ taskId: "3", addBlockedBy: ["1", "2"] })
// Delete a task
TaskUpdate({ taskId: "4", status: "deleted" })
Status workflow: pending -> in_progress -> completed
Use deleted to permanently remove a task.
When a blocking task is completed, blocked tasks are automatically unblocked:
// Create pipeline
TaskCreate({ subject: "Step 1: Research" }) // #1
TaskCreate({ subject: "Step 2: Implement" }) // #2
TaskCreate({ subject: "Step 3: Test" }) // #3
TaskCreate({ subject: "Step 4: Deploy" }) // #4
// Set up dependencies
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] }) // #2 waits for #1
TaskUpdate({ taskId: "3", addBlockedBy: ["2"] }) // #3 waits for #2
TaskUpdate({ taskId: "4", addBlockedBy: ["3"] }) // #4 waits for #3
// When #1 completes, #2 auto-unblocks
// When #2 completes, #3 auto-unblocks
// etc.
Fan-in dependencies (multiple blockers):
TaskUpdate({ taskId: "5", addBlockedBy: ["3", "4"] }) // #5 waits for BOTH #3 AND #4
Task claiming uses file locking to prevent race conditions when multiple teammates try to claim the same task simultaneously. This is handled automatically by TaskUpdate.
Self-claim workflow:
TaskList() to see available taskspending, no owner, and empty blockedByTaskUpdate({ taskId: "X", owner: "your-name", status: "in_progress" })TaskUpdate({ taskId: "X", status: "completed" })If two teammates try to claim the same task simultaneously, one will succeed and the other will see the task is already owned.
Known limitation: Teammates sometimes fail to mark tasks as completed, which blocks dependent tasks. If a task appears stuck, check whether the work is actually done and update the task status manually, or tell the lead to nudge the teammate.
~/.claude/tasks/{team-name}/1.json:
{
"id": "1",
"subject": "Review authentication module",
"description": "Review all files in app/services/auth/...",
"status": "in_progress",
"owner": "security-reviewer",
"activeForm": "Reviewing auth module...",
"blockedBy": [],
"blocks": ["3"],
"createdAt": 1706000000000,
"updatedAt": 1706000001000
}
Tip: Having 5-6 tasks per teammate keeps everyone productive and lets the lead reassign work if someone gets stuck.
npx claudepluginhub zircote-plugins/claude-team-orchestrationPatterns for decomposing complex work into trackable tasks with dependency chains using TaskCreate, TaskUpdate, TaskGet, TaskList. Use for multi-step implementations and parallel coordination.
Creates and coordinates persistent agent teams from a task board. Assigns work to teammates, enforces dependencies, and shuts down when complete. Requires cw-plan to configure.
Decompose complex tasks into parallelizable units, design dependency graphs, and coordinate multi-agent work with task descriptions and workload balancing.