ワンクリックで
dispatching-parallel-agents
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when adding or modifying a hook, gate, denial/permission message, or waiver/exemption/override path; when deciding whether to keep, revise, or retire a rule or gate; or when auditing a gate or triaging a complaint that a gate causes friction. The implementation manual for building gates that are enabling not coercive — escape paths, persistent signal, value-not-presence validation, with audit-validated reference designs and anti-patterns.
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
Use when the user mentions beads, bead, bd, or asks to execute/work on/run/start a bead task or issue (e.g. "execute bead cake-4cq.1.1", "work on task X", "run the beads tasks", "start bead work"). Reads tasks from bd ready, dispatches subagents, writes status back to beads.
| name | dispatching-parallel-agents |
| description | Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies |
This skill provides named-agent dispatch for parallel work. All agents MUST have a name so they can communicate via SendMessage.
You delegate tasks to specialized named agents on a team. By precisely crafting their instructions and context, you ensure they stay focused and succeed at their task. They should never inherit your session's context or history — you construct exactly what they need.
Core principle: Dispatch one named agent per independent problem domain. They work concurrently and communicate via SendMessage.
Named agent teams and beads are complementary — beads tracks what to do, teams handle how agents coordinate while doing it.
.beads/: Use /beads-execution for the dispatch loop (bd ready → claim → dispatch → review → bd close). Agents dispatched by beads-execution MUST still have a name.Use when:
Don't use when:
Group work by what's independent:
MANDATORY: Every agent MUST have a name. The hook will block anonymous agents.
Agent(
name="abort-fixer",
description="Fix abort test failures",
prompt="Fix the 3 failing tests in agent-tool-abort.test.ts. [details...]
If your fix affects batch-fixer or race-fixer's domain, use SendMessage to notify them."
)
Agent(
name="batch-fixer",
description="Fix batch completion failures",
prompt="Fix the 2 failing tests in batch-completion-behavior.test.ts. [details...]
If your fix affects abort-fixer or race-fixer's domain, use SendMessage to notify them."
)
Agent(
name="race-fixer",
description="Fix race condition failures",
prompt="Fix the 1 failing test in tool-approval-race-conditions.test.ts. [details...]
If your fix affects abort-fixer or batch-fixer's domain, use SendMessage to notify them."
)
All three can SendMessage to each other by name.
When agents return:
bd close <task-id> for each completed taskA "roundtable" is a specific use of team agents where expert personas argue and critique each other's positions via SendMessage.
Agent(
name="security-reviewer",
description="Security perspective review",
prompt="Review the auth middleware changes from a security perspective.
After your initial review, use SendMessage to share your findings with ux-reviewer and perf-reviewer.
Read and respond to the other reviewers' findings.
Push back if you disagree — this is a debate, not a rubber stamp."
)
Agent(
name="ux-reviewer",
description="UX perspective review",
prompt="Review the auth middleware changes from a UX perspective.
After your initial review, use SendMessage to share your findings with security-reviewer and perf-reviewer.
Read and respond to the other reviewers' findings.
Push back if you disagree — this is a debate, not a rubber stamp."
)
Agent(
name="perf-reviewer",
description="Performance perspective review",
prompt="Review the auth middleware changes from a performance perspective.
After your initial review, use SendMessage to share your findings with security-reviewer and ux-reviewer.
Read and respond to the other reviewers' findings.
Push back if you disagree — this is a debate, not a rubber stamp."
)
Good agent prompts are:
name parameter on every Agent callMatch depth of work to task type. Do not converge on an answer before reaching the expected effort level:
When you dispatch a review or blinded agent, the prompt field IS that
agent's entire worldview. Any framing you write becomes what the agent
thinks the world looks like. Scan for these patterns before dispatching:
| Pattern | Example | Fix |
|---|---|---|
| Hypothesis smuggling | "I think X is broken because Y" | "Assess X for correctness" |
| Conclusion priming | "Confirm Y is fine" / "Verify Z works" | "Determine whether Y/Z" |
| Conversation leakage | "The user said...", "We've been debugging..." | Remove entirely |
| Pre-curated quotes | Pasting code inline in the prompt | File path + line range |
| Desired verdict | "Find a reason to reject" | "Report BLOCK/CONCERN/NOTE" |
Rule of thumb: your prompt should describe the TASK, not the VERDICT. If you can already state the expected conclusion, you're priming the agent.
Give coordinates, not quotes. Pass file paths and let the agent forage with Read/Grep. Pre-quoted code is pre-interpreted code — interpretation is exactly what you're delegating. Keep quoting for context the agent genuinely cannot discover on its own (spec ID, external ticket, error message text).
Sanity check. Before dispatching, ask yourself: if a teammate read this exact prompt with no other context, would the agent's conclusion be predetermined by your wording? If yes, rewrite.
Reviewer agents whose personas already include a Blinding Discipline section
(e.g. adversarial-reviewer) will actively ignore priming in the prompt,
but that is a second line of defense. The first line is you.
❌ No name: Agent(prompt="Fix tests") — anonymous, unaddressable via SendMessage
✅ Named: Agent(name="test-fixer", prompt="Fix tests") — addressable, can coordinate
❌ Simulated roundtable: Writing persona dialogue in your own output ✅ Real roundtable: Named agents that independently analyze and argue via SendMessage
Canonical, principle-anchored definitions live in
docs/VOCABULARY.md. Local quick-reference below.
| User says | Means |
|---|---|
| "agent team" | 2+ named agents |
| "roundtable" | Named agents arguing via SendMessage |
| "panel of experts" | Named agents with different persona prompts |
| "have them talk to each other" | Named agents using SendMessage |
"Roundtable" NEVER means writing simulated dialogue in your output. It ALWAYS means real named agents that independently analyze and communicate via SendMessage.
Every agent prompt MUST include this block (copy verbatim into the prompt):
CONTINUATION DISCIPLINE: DO NOT wind down prematurely. DO NOT summarize remaining work and stop. If you find additional problems during your work, FIX THEM — do not list them and declare done. If you hit an obstacle, investigate and work around it — do not report it as a reason to stop. You are done when the OUTCOME is verified end-to-end, not when you've made an attempt. Run the actual test/command/workflow and confirm it passes. "I believe this works" is not verification — "the tests pass" is verification.
For the main agent coordinating the team:
DO NOT STOP after collecting agent results. If any agent reports unresolved issues, dispatch a follow-up agent or SendMessage instructions to fix them. If the integrated result fails verification (full test suite, end-to-end check), dispatch agents to fix the failures. Summarizing what agents accomplished is not completion — the verified outcome is completion.
After agents return:
When dispatching implementation agents, pair them with independent QA agents that
work from the success criteria or spec — NOT from the code. The always-on
agent-teams-default.md rule carries one-line summaries of these patterns and
points here for the full write-ups. The fourth pattern — the Completeness
Critic — has its own section immediately below.
For any non-trivial implementation task, dispatch alongside the implementer:
Agent(name="implementer", prompt="Implement the auth flow per spec...")
Agent(name="qa-tester", prompt="Write tests for the auth flow.
Work from the SUCCESS CRITERIA and SPEC — do NOT read the implementation code.
Your tests verify the OUTCOMES, not the implementation details.
Share your test file via SendMessage when ready for the implementer to run.")
The QA agent writes tests that the implementer must pass. The tests catch the gap between what the spec says and what the code does — because the tester never saw the code.
The QA agent must write tests from the success criteria, business outcome, independent oracle, solution constraints, and invalid solution classes. The QA agent should not depend on the implementer's chosen code approach.
The QA agent must produce:
For non-trivial behavior changes, dispatch a mutation-challenger before implementation. The mutation challenger does not write production code.
The mutation challenger must:
Common bad implementation classes:
After implementation and code review, dispatch an outcome-verifier. The outcome-verifier verifies the actual result the user cares about, not just test status or code quality.
Examples:
The outcome-verifier must not accept:
Tests pass only counts as outcome verification when those tests exercise the actual desired outcome and reject known fragile implementations.
A review/critique roundtable that only dispatches per-lens reviewers and then an adversarial verify pass has a structural blind spot. The verify pass refutes overreach — claims that exist and are inflated. It is blind to underreach by construction: a true finding that no lens was pointed at is never generated, so there is nothing for the verifier to refute. A real lean violation can slip every seam between the lenses and be caught only by a human afterward.
The completeness critic closes that gap. It is a generative stage, not a verifying one, and runs as a final agent after the per-lens reviewers report but before you call the review done.
Dispatch it on the same team, blinded to the other reviewers' verdicts (give it the artifact and the list of lenses that ran, not their findings — so it reasons about what they structurally could not have covered, not just what they happened to miss). Its job is three questions:
Feed gaps back as a new round. Each gap the critic surfaces is a new finding with no verdict yet — so it re-enters the loop: dispatch a lens at it, then verify it adversarially like any other. The critic does not get the last word; it restarts the loop with the findings the first pass could never have produced. Run the critic until a round surfaces nothing new (loop-until-dry), not once.
# After the per-lens roundtable reports:
Agent(
name="completeness-critic",
description="Surface coverage gaps and severity under-calibration",
prompt="You are the completeness critic for the review of <artifact>.
The lenses that ran were: security, ux, performance. You are NOT given their
findings — reason about what those three lenses STRUCTURALLY could not cover.
Answer three questions and SendMessage your findings:
1. MISSING: gaps owned by no lens that ran. Name the gap + the absent lens.
2. UNDERSTATED: findings whose severity should be calibrated UP (not just down).
3. MIS-SCOPED: findings attached to the wrong layer or masking a deeper cause.
Each gap you name is a NEW finding with no verdict — it will be dispatched to a
lens and verified. Do not rubber-stamp; if nothing is missing, say so explicitly
and justify why the lens set was exhaustive for this artifact.
[CONTINUATION DISCIPLINE block here]"
)