Three agent definitions that turn Claude Code into a long-running delegation session — a main "delegator" that routes work to subagents instead of grinding solo, with skeptical verification, ask-don't-interpret, research-first, and a no-lazy-shortcuts quality bar baked into the agent instructions themselves.
The whole concept lives in three Markdown files in agents/:
delegator.md— the main session. Routes every task to a subagent, keeps its own context clean, answers gates, owns commits. Launch it withclaude --agent delegator.orchestrator.md— the workhorse type. Runs a substantive multi-step task the way a good main session would: delegates aggressively, invokes skills for real, verifies before "done".worker.md— a lean leaf for bounded mechanical jobs.
That's the product. Install those (or the plugin), and Claude Code delegates properly — no other moving parts, nothing to break, no token cost beyond the prompt itself.
As a plugin:
/plugin marketplace add bbadler/claude-code-delegator
/plugin install delegation-kit@claude-code-delegator
Or classic install:
git clone https://github.com/bbadler/claude-code-delegator && cd claude-code-delegator ./install.sh # copies agents/*.md into ~/.claude/agents/ + the delegator-mode skill
Then, in a workspace:
claude --agent delegator
It asks you interactive vs autonomous once (sticky for the campaign), then routes your work to unnamed orchestrator-type subagents — which have stock completion semantics, so they report back reliably and can't silently stall.
No terminal (desktop / VS Code)? Say activate delegator in any chat — the bundled delegator-mode skill adopts the charter for that session only (zero config writes).
- Zero-pollution. The delegator does only zero-tool work directly — conversation, routing, gates, commits. Every tool-touching job runs in a subagent (or a self-fork) that absorbs the output, so the main context stays clean across a long campaign.
- The mandate lives in the agent type, not in each prompt — so a subagent can't "forget" to delegate.
orchestrator.md's own system prompt makes it fan out. - Unnamed-first. Substantive work runs in unnamed
subagent_type: "orchestrator"agents. They finish with a completion notification (no silent idle), gate mid-task viaSendMessage(to:"main"), and revive from their transcript viaSendMessage(agentId)— all native Claude Code mechanics. - Skeptical-operator doctrine. Subagent reports are claims, not facts: load-bearing ones get spot-checked, irreversible actions require independent verification, and lazy resolutions (stubs, error-swallowing, silent scope cuts) are named and forbidden.
- Amendments ride the native task board. Changing an in-flight task =
TaskUpdateits description/metadata; the agent re-reads viaTaskGetat phase boundaries. No custom machinery.
| pain | what the charter does |
|---|---|
| Subagents that won't delegate — you hand one the Agent tool and a big task; it grinds solo until it's lost | the delegation mandate lives in the type's system prompt (orchestrator.md) — no per-prompt briefing can forget it |
| One session drowning over a long project | the hands rule: the delegator keeps conversation + judgment + small bounded probes; everything exploratory or bulky runs in subagents |
| Agents that confidently do the wrong thing | ask-don't-interpret + fork escalation + a research-first ladder; genuine forks go up with options, not silent guesses |
| Unattended runs that bulldoze with shortcuts | a quality bar that forbids lazy resolutions, plus audited Judgment calls in autonomous mode |
Everything in optional/ is not needed for the core — it's mechanical insurance for long, unattended runs (an event ledger, a stall/loop watchdog, force-continue gates, and a cleanroom test suite). Most of it existed to babysit named teammates, which the default no longer uses. The one piece native signals genuinely can't cover — detecting a child stuck in a silent tool-call loop — lives there too. See optional/README.md.
| path | what it is |
|---|---|
agents/ |
the product — delegator.md · orchestrator.md · worker.md |
skills/ |
delegator-mode — the zero-terminal "activate delegator" switch |
docs/ |
design notes (TH), roadmap, BMAD adapter |
optional/ |
advanced enforcement hooks + test harness (not needed for the core) |
install.sh |
classic installer (--verify / --uninstall / --skill-only) |
gruckion/nested-subagent · the swarm-orchestration SKILL gist by kieranklaassen · claudefa.st's nested subagents guide. This repo's contribution is the mandate-in-the-type fix, the skeptical-operator doctrine, and unnamed-first routing that leans on native completion semantics instead of bolted-on stall machinery.
MIT — see LICENSE.