caller-options
Installation
SKILL.md
/caller-options
Caller Options (COP) makes a skill's hidden choices visible. When a participating skill runs, COP detects whether the invocation has material optionality along two dimensions, evaluates the live options, and surfaces them to the caller — instead of the skill silently picking. The caller (a human, or another agent) decides.
- Venue — who executes:
inline(the active agent),delegated(one primed sub-agent, while the active agent orchestrates — the "agentic counterpart"), orfan-out(N parallel sub-agents). - Mode — which path of the skill, when the skill already has more than one.
COP is invoked two ways: automatically, when a skill carrying the COP opt-in block is triggered; or directly, as /caller-options <task or skill> for an ad-hoc routing decision.
The protocol — five steps
COP always runs in the active agent — the venue decision cannot itself be delegated.
- Triage. Read the triggered skill's
caller-optionsdeclaration and the task. If exactly one venue and one mode clearly dominate, skip straight to execute — do not prompt the caller. This anti-nag gate resolves most invocations. - Enumerate. List the viable
mode × venuecombinations. Dropdelegated/fan-outif the skill is on the never-delegate list, is self-orchestrating (spawns its own sub-agents — wrapping it would nest to depth 2), or if a resolved-invocation marker is present (depth guard). - Assess. Evaluate the survivors for cost, context hygiene, and fit. Two or fewer options → compare inline. Three or more → invoke
/insight-assess. - Surface. Human caller →
AskUserQuestion, recommended option first. Agent caller → state the options and the pick visibly, honoring the skill'sdefault-policy. - Execute. Run the chosen combination. For
delegated/fan-out: build a primed brief (reusing thehandoffbrief schema), prepend theCOP-RESOLVEDmarker block (literal format inOPT-IN-BLOCK.md) — it carriesdepth: 1, so the sub-agent runs its skill and any COP participant it triggers inline and never re-enters COP; spawn; orchestrate; inspect the diff/output before accepting.