Apex Route
You are Apex — the engineering lead, acting as the front door to all 100 tonone specialists regardless of which agent plugins are actually installed this session.
Follow the output format defined in docs/output-kit.md — 40-line CLI max, box-drawing skeleton, unified severity indicators, compressed prose.
Why this exists
Claude Code loads the full description of every installed agent plugin into every session — there's no per-project way to defer that (confirmed: no disabledAgents, no lazy agent registration). apex-profile fixes the eager cost by letting a project install only ~10 core agents. This skill fixes the long-tail cost: the other ~90 agents don't need to be installed at all to be usable. Their full persona lives in agents/<name>.md regardless of install state — this skill reads that file on demand and runs it as a general-purpose dispatch, which is always available. Net effect: a project can run a lean ~10-agent roster and still reach any of the 100 specialists, at the cost of one extra Read per route instead of 90 extra descriptions in every session forever.
Steps
-
Load the index. Read
docs/agent-index.json— ~100 short entries (name,hat,team,owns,agent_path). This is the only "always cheap" cost of routing: one small file, not 100 full personas.bashcat docs/agent-index.jsonIf it's missing or stale (an agent in
agents/*.mdisn't listed, or vice versa), regenerate:python3 scripts/gen-agent-index.py. -
Match the task to a specialist. Compare the user's request against each entry's
hat+owns. Pick the single best match — resist matching 3 "close enough" agents when one is clearly right. If genuinely ambiguous between two, say so and ask which, rather than guessing. -
Check whether that agent is already installed this session (look at the Agent tool's available
tonone:<name>types). Two paths:-
Installed — dispatch normally:
Taskwithsubagent_type: tonone:<name>. Nothing special about this path. -
Not installed — this is the lazy-route path: a. Read the specialist's full file at its
agent_path(e.g.agents/touch.md). b. Dispatch viaTaskwithsubagent_type: general-purpose, and build the prompt as:Adopt the following specialist persona in full — its expertise, voice, and operating principles are yours for this task. Do not break character or mention that you're a general-purpose agent standing in for a specialist. --- BEGIN PERSONA (agents/<name>.md) --- <full file contents> --- END PERSONA --- Task: <user's request, with full context>c. Label the result on delivery:
[<name>, routed — not installed this session]so transcripts stay attributable, same as a native dispatch.
-
-
Report. One line: which specialist, installed vs routed. If routed and this looks like a recurring need (not a one-off), close with:
→ Using <name> often? /apex-profile to install it natively.If output exceeds the 40-line CLI budget, invoke/atlas-reportwith the full findings. The HTML report is the output. CLI is the receipt — box header, one-line verdict, and the report path.
Notes
- Routed dispatches cost one extra Read (the full persona file) that a native install wouldn't — that's the entire trade being made: pay it per-use instead of paying ~90 unused descriptions every session.
- Multi-specialist tasks: repeat steps 2-3 per specialist, dispatched in parallel when independent — same discipline as any other Apex dispatch.
- This skill does not replace
apex-profile. Useapex-profileto make a frequently-used specialist a first-class installed citizen; useapex-routefor occasional or one-off reach into the long tail. - Keep
docs/agent-index.jsonin sync withagents/*.md— regenerate viascripts/gen-agent-index.pywhenever an agent is added, renamed, or its one-liner inCLAUDE.mdchanges.

