orchestrate — pick a recipe, fill its args, launch it
SkillProductivityApply the deterministic route-vs-solo cost preflight to an opted-in orchestration task. Default to one agent with the fixed lens menu; launch a Workflow recipe only when its multi-agent cost floor allows it. Pulled on demand; not always-on.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the orchestrate — pick a recipe, fill its args, launch it skill
What this skill tells your AI
The instructions your AI receives, as published by elon-choo/fablever in skill/optin/orchestrate/SKILL.md and read by ahel’s review.
This skill turns Fable's orchestration edge into something a non-Fable worker can
reuse: a small menu of executable Workflow recipes. Your job is the part that
transplants — recognize the task shape and select the recipe — not to author an
agent graph from scratch. The recipes live in orchestration/recipes/*.mjs and are
self-contained Workflow scripts; launch one with the Workflow tool by scriptPath.
Read orchestration/README.md and docs/ORCHESTRATION-RESEARCH.md for the why.
When NOT to use this
- A trivial or single-step task → answer inline. Fan-out on a one-liner is over-building, and every recipe has a complexity floor that will no-op anyway.
- The user has not opted into multi-agent orchestration → don't spend the agents.
- You only need a fact you can look up directly → just look it up.
Decision table
| If the task is… | use recipe | launch with args |
|---|---|---|
| "is this artifact / plan / diff / answer sound?" | adversarial-verify.mjs | { artifact } |
| "what are the possible approaches / designs / causes?" | divergent-explore.mjs | { question, lenses? } |
| "do this big multi-part task" | decompose-first.mjs | { task } |
| "process each of these N items through stages" | pipeline-map.mjs | { items, extract, transform, verify } |
| "produce this ONE high-stakes artifact really well" | judge-panel.mjs | { task, angles?, rubric? } |
If two apply, compose: e.g. decompose-first for the build, then
adversarial-verify on its output before delivering.
How to select lenses (recognition, not invention)
For adversarial-verify and divergent-explore, pick lenses from the fixed menu in
orchestration/lenses.md — choose the ~5 whose descriptions actually fit this task,
drop overlapping ones. Do not invent a full lens set from scratch; classifying
against the menu is the part a weaker worker does reliably.
Cross-model verification (optional, off by default)
Before launching adversarial-verify (or judge-panel), check whether cross-model
verification is enabled — it reduces the correlated blind spots a same-family Claude
panel shares by adding a genuinely different-weights reviewer (GPT/Gemini).
- Read
~/.claude/fable-profile/xverify.json(it may not exist → treat as off). It carries apresetplus a compatiblemode. The user picks the preset vianode orchestration/lib/xverify-preset.mjs set <preset>(it persists as the default). - Resolve by
mode:"off"(preset claude-only) or file absent → pass nothing; Claude-only, zero overhead."codex"(preset gpt-oauth) →args.crossModel = { provider: "codex", models }— the GPT reviewer runs through the codex MCP on the user's ChatGPT login (no API key)."openrouter"(preset gpt-api+gemini-api) →args.crossModel = { provider: "openrouter", models }."codex+gemini"(preset gpt-oauth+gemini-api) → run both legs: the GPT verdict via the codex MCP, and a Gemini verdict via the Gemini API (GEMINI_API_KEY). Fold both into findings.
- Before using a key-based leg, confirm the key is present with
node orchestration/lib/xverify-preset.mjs doctor(it reports presence only, never the value). If a required key/login is missing, skip that leg and tell the user what to provide — never block.
Do not enable it yourself or hard-code a provider; the file is the single switch (set by the
preset command, ./install.sh --with-xverify=..., or edited by the user; export FABLE_XVERIFY=off
force-disables).
The cross-model arm is bonus coverage — it never gates delivery, and it never becomes the
A/B eval judge (that would leak the treatment; see eval/README.md).
Binding guardrails (do not break these)
- Never set a count quota. Let
decompose-firstkey width to the sub-problems it actually finds; letdivergent-explorestop on its dry-streak. Quotas reward-hack. - Verifiers must be fresh-context. The recipes already spawn skeptics in their own contexts — never paste the original answer into a "review this" prompt in the same thread; that rubber-stamps.
- Agent count is cost, not success. Report what a recipe found, not how many agents it ran.
- Don't claim a magnitude. These recipes are validated for direction by
mechanism, not yet for size of gain. Say "ran independent adversarial review,"
not "caught 30% more bugs," until
eval/says otherwise. - The RED gate proves verification ran, not that it was deep. Treat a passing gate as "someone independent looked," not "this is certainly correct."
After a recipe runs
Relay what it found (confirmed defects, distinct approaches, the integrated answer) — the recipe's return value is data for you, not a user-facing message. Lead with the outcome; keep the agent-count and cost out of the headline.
Signals
- GitHub stars
- 33
- Forks
- 8
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
orchestrate-elon-choo- Source
- github.com/elon-choo/fablever