Other

/agent-routing

Enforce Cursor=gather, Codex=implement, Claude=orchestrate. Triggers: delegate, worker assignment, routing.

$ golems-cli skills install agent-routing
89% best pass rate
18 assertions
29 evals

Updated today

Fleet law: canon #1 owns Cursor=gather, Codex=implement, Claude=orchestrate. This skill keeps routing mechanics, delegation checks, eval-backed anti-patterns, and prompt templates. Launcher/model law lives in canon #5/#6 plus /repogolem.

Auto-dispatch triggers (canonical in orc/SKILL.md C4): batch reads ≥3, transcription ≥2, web research ≥1, or any "in parallel" / "all of these" phrasing → fan out sub-agents in the SAME message before asking permission.


Launcher Pointer

agent-routing chooses who does the work. /repogolem owns how to launch the worker, including -s, -c, -w, raw CLI escape hatches, and model override bans.

brainlayerCursor -s "one-sentence task prompt here"     # gather / read-only
brainlayerCodex  -s "one-sentence task prompt here"     # implement

Visible cmux pane workers use repoGolem launchers, not raw cursor/codex/claude, copied env vars, manual cd, or --fast. Internal ephemeral subagents are a separate harness: explicit model selection is allowed only through that harness's real model field/-m, never through a --fast alias.


Model & Effort: Decide From the Mission

Effort is a mission choice, not a model personality trait. Default to high so the seat is never accidentally too low, then pass -E explicitly for every repoGolem Codex mission. Inheriting high is allowed only when you can explain why it fits; inheritance must be a choice, not an accident.

Ask these questions in order:

  1. Is the lane bounded, mechanical, and independently verifiable? Exact diff shape, established pattern, focused tests, binary rubric, and trivial rollback all point to medium. This is Etan's settled floor for well-specified implementation lanes; important work does not become xhigh merely because it matters.
  2. Does the lane still contain open-ended implementation or judgment? Novel decomposition, error semantics, or non-trivial review defaults to Sol at high.
  3. Is the reasoning genuinely hard in a way more tokens can help? Nondeterministic debugging, contradictory evidence, adversarial verification, or design under conflicting requirements can justify Sol at xhigh. Do not turn that exception into a fleet default.
  4. Would max materially beat xhigh here? The general answer is NOT KNOWN. Use max only when a mission-specific eval proves the extra spend pays; repoGolem currently rejects max, so never claim it was selected through -E.
  5. Is the model choice measured for this work shape? Luna (gpt-5.6-luna) is a reasonable candidate for bounded mechanical, pattern, and audit work; Sol (gpt-5.6-sol) is the default for open-ended implementation. That Luna direction rests on one qualified head-to-head at medium: Luna scored ACCEPT and tied code taste at roughly 21x lower reported cost, but the inputs were cumulative session totals including cache reads. Treat the ratio as an upper-bound datapoint, measure output tokens and wall-clock as well as token price, and do not generalize it into universal doctrine.

What is NOT KNOWN: a measured Terra task-tier assignment, a broad per-task-class Sol/Luna benchmark, Luna-at-max performance, or a general rule for choosing max over xhigh. Do not fill those gaps with vendor-tier intuition.

Apply the choice, then verify it

  • repoGolem passes effort correctly. Use, for example, brainlayerCodex -s -E medium "<bounded mission>" or brainlayerCodex -s -E high "<open-ended mission>".
  • repoGolem deliberately refuses -m/--model for agent sessions; it does not silently drop the model. When a model pin is required, use an explicitly authorized raw/internal Codex spawn with both model and effort pinned rather than pretending the repoGolem alias honored -m.
  • cmuxlayer spawn_agent.model has separately substituted non-alias model values while reporting them honored. For every pinned run, record the requested and effective model plus effort from the run log/session metadata. The effective values, not the prompt or agent's self-identification, are the routing evidence.

Before dispatch, write one sentence for each field:

Mission shape: bounded/mechanical | open-ended | contradictory/adversarial
Choice: <effective-model target> at <medium|high|xhigh|ultra>
Why: <signals from the mission, not task importance alone>
Dispatch: <launcher/raw internal path and explicit effort pin>
Verification: <where the effective model+effort will be read>
Unknowns: <anything not measured; write NOT KNOWN rather than extrapolating>

Task -> Model Override Table

Use this table after the role matrix chooses the worker type. It is a deliberate override surface, not a quota-saving excuse: defaults are not limits, judge output quality instead of price tag, and apply intelligence > taste > cost. Cost is a tie-breaker only; in this column, a higher score means more economical or more available for the task.

model-pin-gate blocks accidental Fable inheritance. When it blocks, pin one of the exact rows below, or use explicit Fable only from an apex orchestration seat. The gate block message already points here; this table points back to that pin law without duplicating its hook logic.

modelcostintelligencetastedefault work
gpt-5.5 (via codex exec)985Bulk/mechanical work, implementation, refactors, debugging, tests, verification, and an extra review perspective. For visible workers, still use {repo}Codex -s; codex exec is only for an internal harness/thin sonnet wrapper that writes a self-contained Codex prompt and returns a digest.
gpt-5.3-codex-sparkseparate pool; score pendingmeasure-firstmeasure-firstWeekly-pool wall override for implementation-shaped load only. For visible workers, still use repoGolem launcher policy; the explicit example codex exec -m gpt-5.3-codex-spark -c model_reasoning_effort="medium" ... is internal-harness only, as is the equivalent Codex model field. Pin model_reasoning_effort per call, verify the session "model" field, and do NOT route bulk transcript grep-and-cite mining to Spark until an effort-pinned retest clears it.
sonnet5; floor ~$0.03/call57Thin Claude wrappers, low-cost coordination, routine synthesis, and user-facing work that needs taste >=7 but not Opus-level reasoning.
claude-opus-4-8[1m]4; floor ~$0.09/call78Reviews, contested decisions, taste-sensitive writing, long-context synthesis, and reasoning where the extra judgment beats the token cost. Do not use it for token-grinding intake.
haikufloor ~$0.01/call; no policy scoremeasure-firstmeasure-firstRetained only as a measurement candidate. No policy default until benched; "never Haiku" is a hypothesis to test, not dogma.

Fable is apex-orchestration only; post-2026-07-07 Fable usage spends usage credits. Do not add a scored Fable row for general worker routing; current pricing-floor lint uses ~$0.18/call as the Fable floor when it appears in gate configs.

Reasoning effort is per tool call and should follow work shape, not model name. Use the Model & Effort questions above for mission-shaped escalation through xhigh. Act as though nothing right of xhigh exists unless a specific eval proves the extra spend pays for itself; ultracode means high plus more spins, not a blank check for max or ultra effort.

Grounding: Theo Gem-6 table (docs.local/sprint/weave-2026-07-06-drift/sources/theo-fable-video-gems.md), runbook delta notes (docs.local/skills-audit-notes.md:151,177), budget-floor pricing (skill-creator/hooks-lab/gates/budget-floor-lint/SKILL.md), and the paired pin law in skill-creator/hooks-lab/gates/model-pin-gate.