efficient-dispatch
Model-routing orchestration for any expensive frontier model (Fable, Opus, GPT-5.x) - the main model keeps judgment and Q&A review, mechanical subagent…
Skill by Necmttn
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/necmttn-efficient-dispatch
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/efficient-dispatch
What's inside
- Skill name
efficient-dispatch- Description
- Model-routing orchestration for any expensive frontier model (Fable, Opus, GPT-5.x) - the main model keeps judgment and Q&A review, mechanical subagent dispatches carry an explicit cheaper model, and ax measures whether the routing actually worked. Use when orchestrating codebase-heavy or token-heavy work with subagents, when dispatching Agent tasks without a model, when the user says "route to cheaper models", "efficient dispatch", "optimize model spend", or asks where their token spend goes. Pairs with the route-dispatch hook (deterministic backstop) and `ax dispatches` (evidence). Do NOT fire on single-shot questions or tiny tasks with no dispatching.
- License
- AGPL-3.0
- Instructions
- 129 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# efficient-dispatch - routed, measured, verified The main model is the orchestrator and Q&A reviewer. Mechanical work runs on cheaper models - and unlike guidance-only approaches, every claim here is checkable against your own ax graph. ## The split Two axes. First, **main model vs subagent**: the main model orchestrates and reviews; mechanical work goes to subagents. Second, and the one that actually controls spend - **the tier of each subagent dispatch:** - **Implementer subagents** (well-specified plan tasks, mechanical edits, search, bulk transforms) → dispatch with **`model: sonnet`** (or haiku for pure search/locate, per the table). - **Reviewer / judgment subagents** (quality / PR / final / adversarial / code review, design, audit, architect, critique, judge) → **keep the strong model**: inherit the main model, or set `model: opus`/`fable` explicitly. Review is the catch-rate gate; a cheap reviewer misses real bugs. Get this backwards and you pay twice: in one ax session implementers ran on the expensive inherited model while reviewers were sent to a cheap one - ~$130 over, weaker catch rate, three fix rounds (memory `feedback-review-gets-strong-model`). The default-inherit trap is implementers, not reviewers: a forgotten `model:` on an `implement …` dispatch silently runs expensive. Set it. **Main model keeps** (never dispatched at all): decomposition, architecture and product tradeoffs, plan synthesis, judging conflicting subagent reports, final integration, taste-heavy design/copy. ## Isolate heavy context (the second reason to dispatch) Cost-tier is one reason to dispatch. The other is **context isolation** - and it applies even when the work needs the strong model. A large input read into the main thread does not cost once: it sits in the context window and is re-sent as input on every later turn. A 0.5 MB screenshot Read on turn 5 of a 40-turn session is re-billed ~35 times and crowds out earlier reasoning. The biggest offender is **images**. Reading screenshots for visual judgment (does this match the spec? rate this design, find the visual bug) floods the main context with vision tokens that persist for the rest of the session. Route it: - **Dispatch a subagent that returns the judgment as text.** The subagent pays the vision tokens in its own short-lived context and returns a verdict; the main thread keeps the cheap text, never the image bytes. Use the strong model for the subagent if the judgment is hard - the win here is isolation, not tier. - **When to route:** the image (or any large output) would otherwise persist across many later main-thread turns AND the question is a returnable verdict. - **When NOT to:** tightly iterative visual exploration (look, tweak, look again interleaved with main reasoning - the round-trips cost more than they save), read-once-then-done short sessions (no persistence tail), or when you cannot state the judgment criteria up front (the text verdict is lossy). Same logic applies to any bulky tool output you only need a conclusion from: giant logs, large query dumps, full-file reads for one fact. If you need the answer, not the bytes, dispatch for it. ## Routing table Source of truth: `~/.ax/hooks/routing-table.json` (regenerate with `ax dispatches compile-routing`). Consult it when present; these built-ins mirror it: <!-- ax:routing-table --> | class | description pattern | model | |---|---|---| | spec-review | `^spec review` | sonnet | | search-locate | `^(pattern-find\|locate\|find\|map\|sweep\|grep)` | haiku | | research | `^(research\|investigate docs\|study)` | sonnet | | well-specified-impl | `^implement ` | sonnet | | bulk-mechanical | `^(write announcements\|regenerate\|standardize\|merge main)` | sonnet | | task-N-impl | `^Task \d+:` | sonnet | | bug-fix | `^Fix\s` | sonnet | | feature-add | `^Add\s` | sonnet | | agent types | Explore, codebase-locator, codebase-pattern-finder → haiku; codebase-analyzer → sonnet | | <!-- /ax:routing-table --> Anything unmatched: leave the model unset only if the work genuinely needs main-model judgment - otherwise pick sonnet. ## Dispatch discipline 1. Decompose into independent slices BEFORE reading everything yourself; run slices as parallel subagents in isolated worktrees when they edit files. 2. Every brief is self-contained: repo path, exact objective, in/out of scope, evidence format to return (files, line refs, commands, diffs, failures), verification commands, stop conditions. 3. Set `model:` explicitly on every mechanical dispatch. The route-dispatch hook is quota-aware and ADVISORY (Claude Code hooks cannot enforce model on subagent dispatches - they can only inject context via additionalContext): in conserve mode it advises re-dispatching a forgotten mechanical dispatch with `model:<cheaper>`; near a 7d quota reset (splurge) it stays quiet so work runs on the strong inherited model; it advises when judgment work (review/design/audit) is sent on a cheap model. Real enforcement is your discipline + setting `model:` explicitly on every dispatch. Treat the advisory as a re-dispatch signal, not noise. 4. **Workflow scripts** (`.claude/workflows/*.js`) run sandboxed and cannot import ax code. Set `model:` on every `agent(...)` call by hand, per `ax routing show`: mechanical stages → `model: 'sonnet'`; judgment/review stages → keep the strong model. `routing-tune.workflow.js` is the reference. In-tree Effect/axctl code that dispatches should call `resolveDispatchModel` (from `@ax/hooks-sdk`) instead of hardcoding. 5. Treat subagent reports as leads. Before acting on a high-impact finding or declaring done, reopen the cited files and re-run the key verification yourself. Expect to find one real bug per delegated phase. ## Measure (what guidance-only skills can't do) - `ax dispatches --days=7` - your inherit rate (target: explicit model on all mechanical classes) - `ax dispatches --candidates` - missed routings + est savings, repriced from real token buckets - `ax cost split --days=7` - main vs subagent spend by model; the dominant cost is usually main-loop cache reads, so move tool-heavy loops (build/test cycles, browser QA) into subagents entirely - `ax cost images --days=7` - image-read context per session, main vs subagent. High main-thread MB = screenshots persisting in the main window; route that visual judgment to a subagent (see "Isolate heavy context" above) - `ax improve recommend` - surfaces a routing proposal automatically when
From Necmttn/ax, AGPL-3.0.
More from Necmttn/ax
- 0.785score
tune
Necmttn
Retrospective on one coding session that proposes changes to the agent's environment (hooks, checks, steering files, tool access) and files each as an ax…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-repo
Necmttn
Star the ax repo, file an issue / bug report, or fork-and-open-a-PR against github.com/Necmttn/ax on the user's behalf, by shelling out to the `gh` CLI.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
release-announcement
Necmttn
Draft or revise ax release announcements and website changelog pages.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro
Necmttn
Guided experiment-loop retrospective over the ax agent-experience graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro-meta
Necmttn
Deep retro of retros - investigation pass that surfaces improvements across older retros and the current ax setup.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
setup
Necmttn
Install + verify ax (the agent experience layer).
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ship-checklist
Necmttn
Definition-of-done checklist for shipping a new write, signal, table, edge, or query to the ax graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
dojo
Necmttn
Surplus-quota training loop over the ax graph - the agent burns the remaining 5h/7d plan-quota window on self-improvement: locking pending verdicts, filling…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-extract-workflow
Necmttn
Reconstruct the workflow behind a past artifact - "what made X work" / "extract workflow from <date|sha>" / "how did we ship Y".
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-add-ingest-stage
Necmttn
Use when adding a new ingest stage or a new SurrealDB table to the ax graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.775score
ax-narrate
Necmttn
Write the agent-generated narration of the current session - the reviewable story of what changed, including what never reaches a PR (user corrections…
SkillAFreshness: A★ 122Claude Code +9
Signals
- Stars
- 122
- Forks
- 15
- Open issues
- 39
- Last commit (this folder)
- Jun 17, 2026 (4 months ago)
- Last release
- Oct 2, 2026 (26 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/Necmttn/ax
- Website
- ax.necmttn.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Necmttn
- 0.785score
tune
Necmttn
Retrospective on one coding session that proposes changes to the agent's environment (hooks, checks, steering files, tool access) and files each as an ax…
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
ax-repo
Necmttn
Star the ax repo, file an issue / bug report, or fork-and-open-a-PR against github.com/Necmttn/ax on the user's behalf, by shelling out to the `gh` CLI.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
release-announcement
Necmttn
Draft or revise ax release announcements and website changelog pages.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro
Necmttn
Guided experiment-loop retrospective over the ax agent-experience graph.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
retro-meta
Necmttn
Deep retro of retros - investigation pass that surfaces improvements across older retros and the current ax setup.
SkillAFreshness: A★ 122Claude Code +9 - 0.779score
setup
Necmttn
Install + verify ax (the agent experience layer).
SkillAFreshness: A★ 122Claude Code +9
Cite this page
efficient-dispatch skill. Agent Mart. https://agentmart.dev/skills/necmttn-efficient-dispatch (last updated 2026-10-24)