Multi-agent coordination patterns for OpenCode swarm workflows. Use when work benefits from parallelization or coordination. Covers: decomposition, worker spawning, file reservations, progress tracking, and review loops.
Coordinates multi-agent workflows by decomposing tasks, spawning parallel workers, and managing file reservations and progress tracking.
npx claudepluginhub joelhooks/swarm-toolsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill guides multi-agent coordination for OpenCode swarm workflows.
Avoid swarming for 1–2 file changes or tightly sequential work.
This skill is configured with tools: ["*"] per user choice. If you need curated access later, replace the wildcard with explicit tool lists.
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS enabled) have independent context and messaging.swarmmail_*, swarm_*, hive_*, and MCP calls.Claude Code auto-launches MCP servers from mcpServers configuration. Do not require manual swarm mcp-serve except for debugging.
Agent teams spawn separate instances with their own MCP connections. Each teammate has independent tool access.
swarmmail_init).hivemind_find).swarm_plan_prompt + swarm_validate_decomposition).TeammateTool for real-time coordination.swarm_review for persistence.swarm_complete).swarmmail_init).hivemind_find).swarm_plan_prompt + swarm_validate_decomposition).Task(subagent_type="swarm-worker", prompt="...").swarm_review + swarm_review_feedback).swarm_complete).session-start hook.swarmmail_reserve) — native teams have NO file locking.TaskUpdate for UI spinners + swarm_progress for persistent tracking.swarm_complete (auto-releases reservations).swarmmail_init).swarmmail_reserve).swarm_progress).swarm_complete.Workers must reserve files before editing and release via swarm_complete.
Coordinators never reserve files.
Use TaskUpdate for UI spinners (shows instant feedback in Claude Code) and swarm_progress at 25%, 50%, and 75% completion for persistent tracking and auto-checkpoints.
const spawnResult = await swarm_spawn_subtask({
bead_id: "cell-abc123", // The hive cell ID for this subtask
epic_id: "epic-xyz789", // Parent epic ID
subtask_title: "Add logging utilities",
subtask_description: "Create a logger module with structured logging support",
files: ["src/utils/logger.ts", "src/utils/logger.test.ts"], // Array of strings, NOT a JSON string
shared_context: "This epic is adding observability. Other workers are adding metrics and tracing.",
project_path: "/absolute/path/to/project" // Required for tracking
});
// Parse the result to get the prompt
const { prompt, recommended_model } = JSON.parse(spawnResult);
// Spawn the worker
await Task({
subagent_type: "swarm:worker",
prompt: prompt,
model: recommended_model // Optional: use the auto-selected model
});
WRONG - files as JSON string:
files: '["src/auth.ts"]' // DON'T do this
CORRECT - files as array:
files: ["src/auth.ts", "src/auth.test.ts"] // Do this
WRONG - missing project_path:
swarm_spawn_subtask({
bead_id: "...",
epic_id: "...",
// No project_path - worker can't initialize tracking!
})
CORRECT - include project_path:
swarm_spawn_subtask({
bead_id: "...",
epic_id: "...",
project_path: "/Users/joel/myproject" // Required!
})
Send multiple Task calls in a single message:
// All in one message - runs in parallel
Task({ subagent_type: "swarm:worker", prompt: prompt1 })
Task({ subagent_type: "swarm:worker", prompt: prompt2 })
Task({ subagent_type: "swarm:worker", prompt: prompt3 })
Await each before spawning next:
const result1 = await Task({ subagent_type: "swarm:worker", prompt: prompt1 });
// Review result1...
const result2 = await Task({ subagent_type: "swarm:worker", prompt: prompt2 });
Status transitions should flow:
in_progress when spawning workerready_for_reviewpassed or failedWorkers do NOT set final status - that's the coordinator's job after review.
Workers should load skills based on task type:
testing-patternssystem-designcli-builderswarm-coordinationExpert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.