Delegate Setup
When to Use
- You want to configure which implementer CLI handles which kind of work (fleet lanes).
- You need to discover installed implementers and write lane config after user approval.
You are the orchestrator in setup mode. Discover installed implementer CLIs, propose a fleet of lanes, and write configuration only after the user approves.
This skill does not dispatch coding work. It only authors the lane map.
One concept: lanes. Never say “routes.”
Example lane: feature → implementer opencode, model opencode/grok, variant high
(OpenCode uses variant for reasoning intensity, not effort).
When NOT to use this
- The user wants a task implemented — use the matching
*-delegateskill instead. - A one-off model change on a single dispatch — pass
--model/--effort/--varianton that relay.
Hard rules
- Every lane must include
implementer. - Put dials on the same object (
model,effortorvariant, …) only if that implementer supports them — see references/schema.md. - Show a human-readable lane table and the full JSON before every write; re-show after every tweak.
- Write only after an explicit approval (“yes”, “approve”, “write it”).
- Ask scope unless already clear: global (all projects) vs this repo only. Never create a project file just because cwd is a git repo. If there is no git repo, default to global and say so.
- Do not invent model identifiers.
- In interview or usage-scan mode, never write any dial the user did not give you and the schema does not require — omit it, so the CLI’s or relay’s own default applies.
- Prefer 3–5 useful lanes over a kitchen-sink map.
- Never edit
AGENTS.md,CLAUDE.md, or other user agent-instruction files. - Never run a
*-delegaterelay from this skill.
(<skill-dir> is this skill’s install directory — the folder that contains this SKILL.md.)
Flow
discover → load → grounding menu → propose (with Basis) → scope → approve → write
1. Discover
node "<skill-dir>/scripts/discover.mjs"
Summarize installed vs missing, auth (true / false / null = unknown), and whether models were
reported, aliases (curated aliases in the registry, not live discovery — full model names also
work), unsupported, or failed.
2. Load existing (effective map)
node "<skill-dir>/scripts/config.mjs" load --cwd "$PWD"
- Neither present → “No lanes configured yet.”
- Otherwise → table of effective lanes with a Source column (
global/project). Do not paste both raw files unless asked. - If
projectPresentis true andprojectTrustedis false, label the project lanes untrusted. They cannot dispatch until the user reviews and approves a project write.
3. Propose
Discovery reports capability, never task fit. So ask one grounding question before proposing anything — one question, three options, not a wizard:
How should I pick the lanes? (1) Quick defaults — I decide, no questions. (2) Interview — about four questions on how you want work allocated. (3) Usage scan — I re-read your CLIs’ local session folders (counts and dates only, never the conversations) and let the numbers place your lanes — if one CLI dominates, expect one question about its role. Happy to do 2 and 3 together.
- Quick defaults → propose immediately.
- Interview → the four questions (allocation policy, never model rankings) and how to ask them (one medium per round) live in references/setup-dialogue.md — read it before you ask.
- Usage scan →
node "<skill-dir>/scripts/discover.mjs" --usage. Tell the user it is metadata only before running it. Each discovered CLI gainsusage: { sessions, lastUsed };nullmeans no probe is wired — unknown, not unused. - Both → run the scan first, then ask only what the numbers cannot answer.
- Inside a git repo, repo signals (languages, test weight, frontend share) are a fourth source of
evidence. They do not change the menu; they feed the proposal and the
repobasis.
That menu is also the consent surface — the option chosen sets how much of the map is yours to decide:
- Quick defaults — the user hired your opinion. A full map is legitimate, dials included; label
every lane
my opinion, say plainly that the map is your opinion, and keep it cheap to revise. - Interview / usage scan — evidence modes, so every dial is gated (rule 7): set one only from
the user’s answer, or where the schema requires it (opencode lanes require
model). Omitting is always safe — every dial has a default the user already lives with, and a CLI’s configured default is their standing choice, better evidence than your priors. Choosing which installed implementer gets a lane is still yours — Basismy opinion— but a dial that raises spend is not: offer your dial picks only as an add