Delegation skill map
Snapshot 2026-10-14 of /mnt/skills/user/ (115 directories), plus the agent types, tools and docs that sit beside them. Frontmatter fields, lengths and versions are read from the files; the groupings and the overlap verdicts are my judgment.
Summary
Fourteen skills touch agents or delegation. They answer six different questions, and most of the apparent overlap is two pairs of near-duplicates plus one shim:
- Where does the work run?
dispatching-subagents(Claude Code: Agent tool vs Workflow vs headlessclaude -p),orchestrating-chat-agents(claude.ai, no subagent tools),swarming-failing-tests(hours-long swarm),create_session(outlives the container; documented indocs/delegation.md, not a skill). - What does the child know?
delegating-with-context(hook appends transcript chunks to the prompt). - Which model and effort?
agent-routing. - What shape is the task?
flowing(fixed DAG, no model between steps),tiling-tree(MECE exploration),convening-experts(panel),challenging(adversarial review),deciding-with-confidence(classification). - Which other vendor's agent?
invoking-gemini,invoking-antigravity. - Legacy:
orchestrating-agents(deprecated alias),orchestrating-skills(claude.ai-only in practice).
The four skills Oskar originally meant (dispatching-subagents, agent-routing, delegating-with-context, orchestrating-*) are distinct once you fix the surface and the question. They look alike because all four descriptions open with "subagent" vocabulary. Descriptions already route them well: 173 of 174 correct picks in subagent-skill-choice, against 55–85% on names alone.
Decision path
Take the first yes.
- Are you in claude.ai chat or the bare API, with no
Agent/Workflowtool? → orchestrating-chat-agents (Claude fan-out over httpx) or invoking-gemini (cheaper, any surface). - Is the procedure a fixed sequence with no model judgment between steps? → flowing. No agents involved.
- Is it one classify / route / yes-no / score call per item? → Muninn
decide(Jev), then deciding-with-confidence, then thedecideragent. Per-item subagents cost ~32.5K tokens of overhead each. - Must the work outlive this container, or run a different main-loop model with hooks? →
create_session, perdocs/delegation.md(no skill). - Hundreds of failing tests, hours of runtime, merge gate needed? → swarming-failing-tests.
- Fan-out in Claude Code? → dispatching-subagents picks the mechanism (Agent tool, Workflow, headless). Then write the prompt with delegating-with-context when using Agent or
create_session, and choose model and effort with agent-routing. - Want a particular thinking method rather than throughput? → tiling-tree (exhaustive partition), convening-experts (named perspectives), challenging (attack a finished deliverable).
- Want a non-Claude agent? → invoking-antigravity (
agyCLI).
Axes that separate them
Surface
claude.ai chat: orchestrating-chat-agents. Claude Code / CCotw: everything else. orchestrating-skills and tiling-tree run through the chat-agents path and say to use the native runtime in Claude Code.
Decision type
Mechanism (dispatching), model/effort (agent-routing), prompt content (delegating-with-context), method (tiling-tree, convening-experts, challenging).
Scale
One question: Agent tool directly, no skill. Under 10: Agent tool. 10+: headless. Hundreds for hours with a gate: swarming-failing-tests.
Determinism
No model between steps: flowing. Model judgment between steps: Agent tool or Workflow.
Inventory
Frontmatter keys are name, description, metadata.version for every skill below; only agent-routing adds compatibility, and only tiling-tree (and orchestrating-skills, as an empty list) sets metadata.depends_on. "Desc" is description length in characters; "Lines" is SKILL.md length.
| Skill | Ver | Desc | Lines | Question it answers | Surface | Its own "not this, use that" pointers |
|---|---|---|---|---|---|---|
| dispatching-subagents | 0.2.1 | 727 | 200 | Agent tool, Workflow or headless claude -p for this fan-out? Runs the headless runner, with a cost ledger and resume. | Claude Code | model/effort → agent-routing; chat → orchestrating-chat-agents; per-item volume → invoking-gemini; fixed pipeline → flowing; outlives session → create_session; test swarm → swarming-failing-tests |
| delegating-with-context | 0.2.2 | 397 | 188 | How do I write the Agent or create_session prompt? Write only the task; a PreToolUse hook appends transcript chunks selected through Jev. | Claude Code hook | no context needed → [no-context]; whole session → fork; per-item labels → Jev/Gemini; model choice → agent-routing; chat → orchestrating-chat-agents; running tally across relays → state file |
| agent-routing | 2.7.1 | 885 | 509 | Which model, effort and escalation cascade? Routes on measured cost per completed task, not per-token price. | Claude Code (compatibility field) | Not applicable to claude.ai chat. Cascades need a verifier. |
| swarming-failing-tests | 0.5.1 | 1010 | 321 | Drive hundreds or thousands of failing tests green with a long Haiku swarm, clustered fixes, worktrees, serial no-regression merge gate, federation across containers. | Claude Code | <10 tasks → Agent tool; one-off fan-out → dispatching-subagents; model choice → agent-routing; fixed pipeline → flowing |
| orchestrating-chat-agents | 1.0.0 | 510 | 487 | Parallel Claude calls over the API with shared cached context, streaming, threads and agent pools. Also Gemini via the Cloudflare gateway. | claude.ai any (Gemini) | Has a "SURFACE ROUTING" block: with native subagents, use those. |
| orchestrating-agents | 0.9.0 | 314 | 32 | Nothing. Deprecated alias of orchestrating-chat-agents; its modules re-export the new ones. | — | Names both replacements in its description. |
| orchestrating-skills | 0.4.1 | 456 | 227 | Decompose a task into skill-typed subtasks, give each a context subset, run in parallel, synthesize. Self-answers trivial lookups. | claude.ai (own routing block says use native runtime in Claude Code) | Single-skill tasks; tool use or code execution; streaming. Description mentions orchestrating-chat-agents as the thing it improves on. |
| flowing | 1.5.0 | 993 | 118 | Enforce ordering, branching and retries for a 3+ step procedure as a Python DAG (depends_on, when=, validate=, retry_until=, detached=, journal_path=). | any | Single call; steps needing reasoning; async/distributed; check audit → gating; many-agent fan-out → dynamic workflow |
| tiling-tree | 1.1.1 | 481 | 83 | Exhaustive MECE partition of a solution space by recursive parallel subagents, then leaf scoring. | claude.ai (depends_on: orchestrating-chat-agents) | Carries the same "use the native runtime" block as orchestrating-skills. |
| convening-experts | 1.2.1 | 281 | 223 | Panel of 3–5 expert personas (MECE, DMAIC, RAPID, Socratic…), single- or multi-round, ending in a synthesis with attribution. | any | Same routing block; "give a direct answer instead of manufacturing perspectives." |
| challenging | 0.13.0 | 299 | 220 | Adversarial review of a finished deliverable: subagent (Claude Code), API (Gemini/Claude), or self path. Includes a 5-Whys drill. | any, three paths | — |
| deciding-with-confidence | 0.1.1 | 718 | 181 | Route, triage, flag or rate text with a probability per option, in OpenAI Decisions API shapes, run on Haiku. | any | Muninn decide (Jev) is faster, cheaper and more accurate when present. |
| invoking-gemini | 0.9.0 | 316 | 382 | Gemini for structured output, images, TTS, multimodal, cheap parallel processing. | any | — |
| invoking-antigravity | 0.1.1 | 264 | 70 | Drive Google's agy CLI as a non-interactive sub-agent. | any with agy | Interactive local use → run agy directly. |
Beyond skills
| Item | Kind | Frontmatter / interface | Role |
|---|---|---|---|
Agent tool | tool | subagent_type, model, prompt, isolation | Sets the subagent's model. Cannot set effort. Each launch and completion is a parent turn. |
Workflow tool | tool | script with meta, agent(), parallel(), pipeline() | Sets per-agent effort. Needs explicit user opt-in. Load workflow-authoring first. |
headless claude -p | mechanism | headless_fanout.py, scripts/fanout.py | Volume without parent turns; no MCP connectors or transcript hook. |
create_session | tool | source_url, prompt, model | Outlives the container. Always pass source_url or the child starts bare. |
| auditor | agent type | tools: Bash, Read, Grep, Glob, Write, model: haiku | Read-only checker; Bash gated by guard_readonly_agent.py; writes only the OUTPUT: path. |
| decider | agent type | tools: Read, model: claude-haiku-5-5 | Fallback for decide; JSON probabilities, no prose. |
| team-member | agent type | tools: Bash, Read, Edit, Write, Glob, Grep, model: haiku, maxTurns: 80 | Agent-mail team experiments only. |
docs/delegation.md | doc (claude-workspace) | — | The ladder: driver script → subagents → headless → sibling session. Duplicates part of dispatching-subagents's decision rule. |
Pairs people confuse
dispatching-subagents vs agent-routing
dispatching decides how to launch (mechanism, concurrency, ledger). agent-routing decides what each child runs on (model, effort, cascade). You typically need both, in that order. The one misrouted request in the earlier test, "fan out 300 tests, which model?", contains both questions.
dispatching-subagents vs delegating-with-context
One chooses the launcher; the other writes the prompt. delegating-with-context only applies to the Agent tool and create_session, because headless children have no hook and need their context written into the task file.
dispatching-subagents vs swarming-failing-tests
One-off independent tasks with no merging vs a multi-hour loop with clustering, worktrees and a merge gate. The swarm reuses the dispatcher's headless runner per worker.
orchestrating-chat-agents vs orchestrating-agents vs orchestrating-skills
Same job (httpx fan-out for surfaces without subagents), three directories. orchestrating-agents is a redirect. orchestrating-skills adds skill-typed planning and context slicing but has its own text telling Claude Code users to go native.
tiling-tree vs convening-experts vs challenging
Tiling tree spawns real parallel agents to cover a space exhaustively. Convening experts runs a persona panel toward one synthesized recommendation. Challenging attacks one finished artifact from a fresh context. Different outputs: an option map, a recommendation, a verdict with severities.
flowing vs a Workflow script
flowing enforces a fixed DAG of plain functions and cannot reason between steps. A Workflow script orchestrates agents and needs user opt-in. Both give phases, retries and resume; the difference is whether a model sits inside the steps.
deciding-with-confidence vs decider vs Jev
One capability, three implementations, in preference order: Muninn decide, then the skill's script, then the decider agent. Each says the others are slower or less accurate.
invoking-gemini vs invoking-antigravity
API calls to a model vs a full agent harness (agy) that can use tools in its own sandbox.
Where the nuance can be cut
- Delete
orchestrating-agents. A 32-line redirect whose description starts "DEPRECATED". It still costs a catalogue slot and was the most misleading name in the earlier test (10 of 45 dispatch picks). It also exists in the plugin copy underplugins/ai-and-reasoning/. The condition for deleting: nothing imports its scripts. Check withxrfirst. - Fold
orchestrating-skillsandtiling-treebehindorchestrating-chat-agents. Both carry a block telling Claude Code users to use something else, so they only apply in claude.ai, where this inventory's other skills mostly don't. Keep them, but mark the surface in the first words of the description ("claude.ai only:") so a Claude Code session never loads them. - Make
docs/delegation.mdpoint atdispatching-subagentsinstead of restating its rule 4–5. Two places hold the Agent-vs-headless threshold; they will drift. The doc keeps thecreate_sessionrules, which no skill covers. - Descriptions run 264–1010 characters with no common shape. Only
flowing,dispatching-subagents,swarming-failing-testsandagent-routinglist quoted trigger phrases and negative cases in the description itself. A fixed template (verb phrase, "Use for", "Not for → X") would let the pairs above separate on the first line. - Surface is the cheapest discriminator and is inconsistent. Only
agent-routinghas thecompatibilityfield; the rest encode surface in prose. Settingcompatibilityon all fourteen would make "claude.ai vs Claude Code" machine-readable. - Leave alone:
flowing,challenging,convening-experts,invoking-*,deciding-with-confidence. They answer questions no other skill does; they sit near the delegation cluster by vocabulary, not by function.
Not measured here: whether people (rather than a model reading skill bodies) pick correctly. The earlier experiment left that open too.