swarm-orchestration
Orchestrator workflow for coordinating a team of subagents via task board delegation. Covers the workflow (understand, delegate, wait, review, report), visualization guidelines, citation protocol, tas
SKILL.mdarcticswarm/skills/swarm-orchestration/SKILL.md
GitHubSwarm Orchestration Skill
Core Principles
- Comprehensive Information Gathering: Collect information from multiple reliable sources and data systems.
- Document Everything: Preserve detailed facts, evidence, reasoning steps, and intermediate findings.
- Flag Uncertainties: Clearly note any conflicts, ambiguities, or alternative interpretations.
- Straightforward Interpretation: Use common-sense interpretation; don't overthink edge cases.
- Maximum Transparency: Enable users to make informed decisions with complete information.
Your Tools
Planning Tools
- read_bbs: Read the shared Bulletin Board System to see what subagents have found.
- post_to_bbs: Post your own observations or instructions to the BBS.
Orchestration Tools (delegate work)
- create_task: Post a task to the shared task board. A subagent will
claim it automatically. Provide a specific name, detailed prompt, and a
profileparameter selecting the tool profile. - list_tasks: Check the current status of all tasks (pending/running/completed/failed).
- wait_for_tasks: Block until specific tasks finish (up to a timeout, default 5 min). Returns each task's final status and summary.
Reporting (deliver the final answer)
- prepare_report: Call this when you believe all tasks have been
delegated and subagents are finishing up. It blocks until every task
reaches a terminal state and all subagents are idle, then unlocks the
send_user_markdown_reporttool. - send_user_markdown_report: Available ONLY after
prepare_reportsucceeds. Deliver a complete, well-formatted markdown report. This is the ONLY way to deliver your final answer — do NOT write the answer as plain text.
IMPORTANT: You do NOT have task-execution tools. All execution MUST
be delegated to subagents via create_task with the appropriate profile.
Workflow
Understand the question. Read the user's question carefully. Break complex questions into sub-questions.
Post tasks to the board. Use
create_taskto post tasks. Subagents will claim them autonomously. Each task MUST describe a specific sub-question to answer, which BBS channel to post results to, and whichprofileto use. When a question is ambiguous or involves aggregation/filtering, consider creating duplicate tasks for the same sub-question with distinct names (e.g.,"credits-1"and"credits-2") so that two independent subagents investigate it separately.Wait for results. Use
wait_for_tasksto block until tasks finish. You will receive BBS updates automatically between tool calls.Review and verify (MANDATORY). After
wait_for_tasksreturns: a. Callread_bbsto review ALL channels — especially #discussion where idle subagents post verification results and disagreements. b. If ANY #discussion post flags an issue, discrepancy, or disagreement: create a follow-up task to investigate and resolve it. c. If results look surprising, create a verification task. d. If duplicate tasks returned the same answer using the same methodology and approach, consider whether a shared methodological assumption may be wrong. If so, create a follow-up task requesting an alternative approach. e. Only proceed to step 5 when you are confident the findings are sound.Verify before reporting (MANDATORY). Review all BBS findings, intermediate results, and the original question. Check for correctness, hidden assumptions, and conflicting data before proceeding.
Prepare and deliver your report. Call
prepare_report, thensend_user_markdown_reportwith a complete markdown report including the answer, key data, visualizations, and caveats.
Visualization Guidelines
Use Vega-Lite v5 in ```vega-lite code fences. Include "$schema",
"title", and "tooltip" in every spec.
Chart quality rules:
- One metric per axis. Never mix different metrics on one axis.
- Comparable magnitudes. NEVER chart values that differ dramatically in scale. Use a table instead.
- Legends required. Never hardcode colors via
"color": {"value": ...}. Use"color"encoding with a named field. - Charts must earn their place. Only use charts for trends, distributions, or rankings. For 2-3 numbers, use a table.
- Axis ordering. For temporal axes use
"type": "temporal". For ordinal categories, provide a"sort"array. - Line chart color. Never map
"color"to a field with a unique value per point — use it only for 2-5 named series. - Chart placement. Place each chart right after the text that discusses it.
Citing Sources in Your Report
After prepare_report returns, you will receive a numbered reference list.
- Inline citations: Place
[N]after any claim backed by a reference. - Multiple sources: Use separate brackets:
[1] [3]. - No References section: Do NOT write a
## Referencessection — it will be generated automatically. Just use [N] inline. - Only cite references that actually support a claim.
Task Creation Best Practices
When calling create_task, always provide:
- name: Short unique identifier (e.g. "revenue-analysis", "user-growth").
- prompt: Instructions describing the analytical goal, not the execution mechanics. Ask the subagent to include key numbers and any caveats in their completion summary.
- profile: Select the appropriate subagent tool profile.
- depends_on (optional): List of task names that must complete first.
Parallelism rule (IMPORTANT)
Default to parallel tasks. Only use depends_on when truly required.
Avoid long dependency chains — they cause idle subagents.
Rules
- You MUST delegate all execution to subagents.
- Each task's prompt MUST describe a unique sub-question.
- Subagents communicate via the shared BBS and any additional messaging tools available to them.
- You MUST call
prepare_reportbeforesend_user_markdown_report. - You MUST call
send_user_markdown_reportbefore ending the conversation. - Use
[N]inline citations. Do NOT write a## Referencessection.