brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
One-time setup and health check for fable-baton. Use when the user asks to set up, configure, verify, or troubleshoot fable-baton - sets the default model to "best" (Fable 5 with Opus fallback) in ~/.claude/settings.json and verifies the plugin is fully installed.
Claude Code
$ npx -y skills add realgarit/fable-baton --skill baton-setup --agent claude-code
Codex
$ npx skills add realgarit/fable-baton --skill baton-setup -a codex -y
Cursor
$ npx skills add realgarit/fable-baton --skill baton-setup -a cursor -y
Gemini CLI
$ npx skills add realgarit/fable-baton --skill baton-setup -a gemini-cli -y
GitHub Copilot
$ npx skills add realgarit/fable-baton --skill baton-setup -a github-copilot -y
OpenCode
$ npx skills add realgarit/fable-baton --skill baton-setup -a opencode -y
Windsurf
$ npx skills add realgarit/fable-baton --skill baton-setup -a windsurf -y
name: baton-setup description: One-time setup and health check for fable-baton. Use when the user asks to set up, configure, verify, or troubleshoot fable-baton - sets the default model to "best" (Fable 5 with Opus fallback) in ~/.claude/settings.json and verifies the plugin is fully installed.
One-time setup for fable-baton. Run each step in order. Never rewrite `~/.claude/settings.json` wholesale - edit only the named keys and preserve everything else.
1. Read `~/.claude/settings.json` (if missing, you will create a minimal one). 2. Check `echo "$CLAUDE_CODE_SUBAGENT_MODEL"`. If set, warn the user: this variable silently overrides every agent's `model` frontmatter and defeats the tiering. Recommend unsetting it, but do not unset it yourself without approval.
Show the user exactly what you will change before writing anything:
| Key | Rule | |---|---| | `model` | If absent → set `"best"`. If present with a different value → ask: keep theirs, or switch to `"best"`? (`best` resolves to Fable 5 when the account has access, otherwise the latest Opus.) If already `"best"` → no change. | | `fallbackModel` | If absent → add `["opus", "sonnet"]` (covers overload/unavailability). If present → leave it. | | `availableModels` | Only if the key already exists (it is an allowlist): ensure it contains `"opus"`, `"sonnet"`, `"haiku"`, and the chosen main-model value. If absent → do not add it. |
Back up the file first: copy it to `~/.claude/settings.json.baton-backup-<YYYYMMDD-HHMMSS>` (skip if the file didn't exist).
Apply the approved edits, then validate: `jq empty ~/.claude/settings.json` must exit 0 (or parse the JSON yourself if `jq` is unavailable).
If Claude Code rejects the `best` alias at startup (older versions), fall back to `"opus"` and suggest updating Claude Code.
1. Confirm the four agents are available: scout, executor, architect, verifier (ask "which subagent types are available?" or check the Agent tool's list). 2. Confirm the orchestration policy is present in context (it is injected at session start; in a session started before install it won't be - that's expected). 3. Tell the user to restart their Claude Code session: agents and the model setting load at session start.
Summarize: what changed, what was skipped, where the backup is, and that a restart is needed.
1. `/plugin uninstall fable-baton` removes the agents, hook, and this skill. 2. In `~/.claude/settings.json`: restore `model` from the oldest `settings.json.baton-backup-*` file, or remove the key if the backup has none. Remove `fallbackModel` if the user doesn't want it.
Fable 5 holds the baton. The orchestra plays. A Claude Code plugin that makes Fable 5 the orchestrator. Fable keeps the judgment, tiered subagents on Opus, Sonnet and Haiku do the labor. Install once and every new session in every repo starts this way.
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.