agents/ and the 80/20 Dispatch Budget
Essay 7.6 — The Plugin Kit, Part 6 of 9.
Essay 7.5 opened the docs organ — the per-plugin narrative the historian subagent writes on a drift-count ratchet. Subagents follow the same scoping discipline as the rest of the kit: each one lives inside the plugin that dispatches it. This sub-essay opens the agents/ organ — the per-plugin subagent pool — and the budget that mechanizes the 80/20 split between main-session direct action and delegated investigation.
agents/ — The Subagent Pool
What it is. A directory of subagent definitions the plugin owns. Subagent names are namespace-prefixed to their owning plugin’s concern — historian-* for evolution narration (owned by plugin_integrity), observe-* for research (owned by phase_observe), verify-* for auditing, condense-* for waterfall routing. The prefix is the lock-boundary marker. Per-plugin scoping — every plugin owns the subagents it dispatches. ⓘ
Who reads them. Claude Code, when the agent invokes a subagent by name. The agent itself reads only the subagent’s frontmatter (description + tools) when deciding whether to dispatch.
Who writes them. CONDENSE step 5 (which consumes [AGENT-UPDATE] markers). PLUGIN-LOCK as the underlying gate. ⓘ
What they depend on. The plugin’s own scripts/ (for tools the subagent calls). The shared .claude/plugins/lib/ if the subagent uses common helpers (e.g., voice-helper). The agents in this directory are NOT cross-plugin — each subagent is scoped to its owning plugin’s surface. ⓘ
Why per-plugin scoping. The safe-lock cycle inside plugin_integrity requires that only one plugin be unlocked at a time. A subagent that ranged across multiple plugins would need to coordinate locks across every directory it touches, defeating the unlock discipline. Per-plugin scoping makes the subagent’s surface match the lock boundary exactly. ⓘ
The 80/20 dispatch budget. The architecture insists on the majority of cognitive work happening in subagents (the prototype targets roughly 80/20) and the remainder in the main session. Inside EXECUTE phase, this is mechanized: every execute-* subagent dispatch grants the main session a fixed budget of direct actions (currently three in the prototype, configurable); every non-.claude/ file edit draws against the grant. When the budget hits zero, the EXECUTE guard hard-blocks further edits until the agent earns more capacity by launching another execute-* subagent. The 80/20 is not a guideline; it is a budget the main session must earn through dispatch. ⓘ
The new-plugin lens. When you guide your seed to add a plugin that needs delegated investigation, the seed authors subagent definitions inside the plugin’s own agents/ directory. Not in a global pool. Tell your seed: a subagent that lives outside its owning plugin breaks the lock discipline; keep it local. A plugin that does not delegate investigation skips agents/ entirely — job_core and interaction_summary both ship without one because their concerns are local state machines, not research surfaces. A research lab’s seed could carry the same shape — experiment-* subagents owned by an experiment-tracking plugin, literature-* subagents owned by a lit-review plugin; the lock boundary keeps each pool inside the plugin that mutates its own data. ⓘ
Subagents are per-plugin by design; the 80/20 split is enforced as a budget the main session must earn through dispatch. Investigation delegates; mutation stays local. The next sub-essay opens the smaller cognitive organs that round out the kit — config.conf, tests/, template/, e2e/, LICENSE + README.md — and the brain-root wiring file that makes any of it fire.
Essay 7.6 — The Plugin Kit, Part 6 of 9.
Previous: Essay 7.5 — docs/ and the Historian — evolution.md word-capped + the historian ratchet. Next: Essay 7.7 — Smaller Organs and Brain-Root Wiring — conditional organs + the registry that turns hooks on.
Comments