packages/opencode-swarm-plugin/claude-plugin/skills/swarm-coordination/SKILL.md
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.
npx skillsauth add joelhooks/swarm-tools swarm-coordinationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill guides multi-agent coordination for OpenCode swarm workflows.
Always swarm when /swarm is invoked. The user's explicit invocation overrides any heuristics.
Swarming serves multiple purposes beyond parallelization:
Even small tasks (1-2 files) benefit from swarming when context is precious.
For sequential work, use dependencies between subtasks rather than refusing to swarm.
This skill is configured with tools: ["*"] per user choice. If you need curated access later, replace the wildcard with explicit tool lists.
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.
swarmmail_init).hivemind_find) - MANDATORY before decomposition.swarm_plan_prompt + swarm_validate_decomposition).swarm_review + swarm_review_feedback).swarm_complete).hivemind_store) - MANDATORY after swarm completion.swarmmail_init).swarmmail_reserve).hivemind_store) - any gotchas, patterns, or decisions made.swarm_complete.Agents MUST use hivemind to build collective memory:
Before work:
hivemind_find({ query: "relevant topic or codebase pattern" })
During work (when discovering something):
hivemind_store({
information: "The auth module requires X before Y",
tags: "auth,gotcha,codebase-name"
})
After work:
hivemind_store({
information: "Completed task X. Key learnings: ...",
tags: "swarm,completion,epic-id"
})
Store liberally. Memory is cheap; re-discovering gotchas is expensive.
Workers must reserve files before editing and release via swarm_complete.
Coordinators never reserve files.
Use swarm_progress at 25%, 50%, and 75% completion to trigger 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 proper 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 - always 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-coordinationdevelopment
Patterns for testing code effectively. Use when breaking dependencies for testability, adding tests to existing code, understanding unfamiliar code through characterization tests, or deciding how to structure tests. Covers seams, dependency injection, test doubles, and safe refactoring techniques from Michael Feathers.
tools
Principles for building reusable coding systems. Use when designing modules, APIs, CLIs, or any code meant to be used by others. Based on "A Philosophy of Software Design" by John Ousterhout. Covers deep modules, complexity management, and design red flags.
development
Multi-agent coordination patterns for OpenCode swarm workflows. Use when working on complex tasks that benefit from parallelization, when coordinating multiple agents, or when managing task decomposition. Do NOT use for simple single-agent tasks.
development
Meta-skill for generating new skills with proper format and structure. Use when creating new skills for the swarm system or when agents need to generate skill scaffolds. Ensures skills follow conventions (frontmatter format, directory structure, bundled resources).