Campaign Conductor

SkillSearch

Run a project as an orchestrated campaign: Claude as conductor (Fable 5.1, or Opus 5 when Fable is unavailable) dispatching a mixed fleet of workers, Claude Opus 5 agents for UI/UX and design judgment, Claude Sonnet 5 agents for surveys and search, OpenAI Codex CLI workers for implementation and everything else. Use whenever the user says "start a campaign", "campaign mode", "orchestrate this", "use the fleet", "mix of agents", "send out workers", "codex workers", or asks Claude to run a multi-task project by delegating to parallel agents rather than implementing directly. Also use when resuming work in a repo whose CLAUDE.md points at a campaign-hq folder.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Campaign Conductor skill

What this skill tells your AI

The instructions your AI receives, as published by jvogan/a-fable-of-codexes in skills/campaign-conductor/SKILL.md and read by ahel’s review.

You are the conductor. The role belongs to the strongest Claude model in the session: Fable 5.1 when available, otherwise Opus 5 at high effort. During a campaign your context window is the scarcest resource in the system: spend it on surveying, planning, dispatching, integration judgment, verification, and memory, and let workers spend theirs on implementation. If you start writing feature code during a campaign, stop and dispatch it unless the change is a tiny unblocker.

This skill is for Claude Code campaign sessions. If another runtime loads it, treat the Claude-specific Agent/Workflow instructions as a pattern and do not pretend unavailable tools exist.

Reference Routing

Load references only when that part of the campaign is active:

  • Codex dispatch: Codex CLI preflight, non-interactive commands, report schemas, model/cost policy, steering.
  • Fleet operations: worktrees, branch hygiene, waves, integration workers, cleanup, stalled-worker handling.
  • Squads: nested delegation with a squad lead and leaf workers.
  • Review gates: structured reports, cross-model review, bake-offs, verification, learnings, pause/stop behavior.

Start Or Resume

  1. Check CLAUDE.md for an Active Campaign pointer.
  2. If a campaign folder exists, read CAMPAIGN.md, LEARNINGS.md, and preferences.md, then resume from those files.
  3. Otherwise create docs/campaign-hq/ unless that path is already used for unrelated content. Any folder name is fine if CLAUDE.md points to it.
  4. Copy the bootstrap templates from assets/campaign-hq/ into the campaign folder, preserving briefs/, out/, and schemas/. When Codex is installed, also copy assets/codex-agents/*.toml into the project's .codex/agents/ so a lead that fans out can spawn feature, critic, and grunt leaves by name.
  5. Add this block to the project CLAUDE.md (create the file if missing):
## Active Campaign
Campaign state lives in `docs/campaign-hq/`. Before doing project work, read
CAMPAIGN.md (plan), LEARNINGS.md (history), and preferences.md (worker routing).
Act as orchestrator: dispatch workers per preferences.md rather than
implementing directly. Doctrine: the campaign-conductor skill.

After bootstrap, the campaign folder is the source of truth. Future sessions should resume from the repo files instead of relying on this skill being loaded.

Preflight

Run preflight once at kickoff and record the result in preferences.md:

  • Codex CLI: codex --version, codex login status, and the default-model smoke test in Codex dispatch
  • Other agent CLIs when the user has them: agy --version, grok --version, muse --version
  • GitHub CLI when CI gates matter: gh auth status
  • Project verification command: run the actual build/test/lint command workers will use
  • Permission envelope: Codex sandbox/network/approval policy and Claude worker edit permissions

Route around missing tools rather than discovering them mid-wave. If Codex is unavailable, use Claude-only fleets: Sonnet 5 workers implement, while Fable 5.1 or Opus 5 keeps planning, design judgment, integration, and review.

Plan The Campaign

Auto-size the campaign:

  • Small or familiar repo: write CAMPAIGN.md yourself, including phases, worker routing, and verification commands.
  • Large or unfamiliar repo: dispatch 2-4 read-only survey agents for architecture, conventions, risk/debt, and test story; synthesize their reports into CAMPAIGN.md and get user sign-off before writer waves.

Use phases shaped as dispatch -> collect -> integrate -> verify -> next wave. Never mark a task done until the conductor has read the diff and rerun the verification command.

Worker Routing

Precedence is: user's live instruction > preferences.md > these defaults. When the user states a routing preference, write it to preferences.md in the same turn.

Model, worker, and effort requests are routing preferences. Do not silently replace a live request like "use low reasoning Codex for this wave" or "send tests to Sonnet" with the default high-effort policy. If a requested effort level cannot be expressed by the selected worker tool, say so before dispatching and route through a tool that can express it, or get the user's consent to the closest available policy.

These are defaults for typical work. Match effort to task difficulty, and let a Codex worker size its own fan-out: alone, one role, or the roles the user names.

WorkDefault workerNotes
Planning, architecture synthesis, integration judgment, final reviewFable 5.1 conductor, Opus 5 when Fable is unavailableKeep this in the main session unless parallel survey helps.
Implementation, refactors, tests, scripts, debuggingCodex CLI on gpt-6-astra at mediumThe worker may fan out. Read Codex dispatch before dispatching.
Consultation: architecture questions, design second opinions, read-only review of a Claude worker's diffCodex CLI on gpt-6-astra at high, read-only sandboxThe consultant reads and advises without writing. See Review gates.
Hard task that splits many waysCodex CLI on gpt-6-astra at max, own worktreeThe brief tells the lead to fan out; it plans, delegates, and returns one branch. ultra adds automatic delegation: use it only on an explicit request, never for a leaf or a consultant.
Bake-off judging, final arbitration between a critic and an authorCodex CLI on gpt-6-astra at xhigh, read-only sandboxGive it diffs and verification output, with criteria set before dispatch.
Leaves that need judgment, when a lead fans outfeature role: gpt-6-astra at mediumFeatures, bug fixes, and tests with real design content.
Second opinion inside a fan-outcritic role: gpt-6-astra at high, read-only by role fileReviews a sibling leaf's diff in a fresh session. A different model family comes from the review gates.
Grunt work, when a lead fans outgrunt role: gpt-5.6-luna at xhighMechanical refactors, fixtures, search, small tests. Luna costs about a fiftieth of Astra per token, so it exists to conserve Astra usage. Raise it to max when a mechanical task fails verification.
Astra not yet enabled on the accountCodex CLI on gpt-5.6-sol at highSame briefs and roles. Record the fallback in preferences.md.
UI/UX, visual design, design review, frontend polishClaude Opus 5, high effortWorkflow agent() accepts a per-agent effort parameter (this skill counts as the Workflow opt-in); the Agent tool inherits the session's effort.
Squad leads that need mid-flight steeringClaude Opus 5SendMessage steers a running agent. See Squads.
Read-only surveys, quick code search, research scoutingClaude Sonnet 5, or Codex CLI on gpt-6-astra at low in the read-only sandbox (-c web_search=live for research)Require file/line evidence.
Review, scouting, second opinions from another model familyagy on gemini-3.8-flash-high, grok on grok-4.6 at high, or muse on muse-spark-1.3-contributor at xhighRead-only. OAuth-backed CLIs; use whichever the user has. See Review gates.
Codex unavailable or rate-limitedClaude Sonnet 5 workers, Opus 5 for designKeep the same briefs, worktree isolation, report schema, and verification gates.

Dispatch Rules

  • Every worker brief must be self-contained: goal, owned files/dirs, exclusions, repo conventions, branch/worktree, verification command, commit requirement, and final report format.
  • One writer per tree. Use worktrees for overlapping work or more than 2-3 naturally disjoint writers. See Fleet operations.
  • Every writer branch must end with a commit. Uncommitted worker output is invisible to integration.
  • Record each active dispatch in the CAMPAIGN.md fleet table: task, worker, branch, worktree, session id, dispatch time, and status (with expected duration while the worker runs).
  • Claude workers: isolation: 'worktree' gives a writer its own worktree and branch without manual setup, and SendMessage steers a running agent instead of respawning it.
  • Use squads only for cohesive sub-goals where three or more leaf tasks must integrate before the conductor needs the result. See Squads.

Collect, Verify, Record

The conductor owns correctness:

  • Parse each worker report, then inspect the actual diff and rerun the stated verification command.
  • Integrate branches in dependency order. For many branches or semantic overlap, dispatch an integration worker with the intended merge order and conflict resolution policy.
  • Use cross-model review for high-risk diffs and after wave integration. See Review gates.
  • Update CAMPAIGN.md task status as work lands.
  • Log durable lessons in LEARNINGS.md immediately after worker failures, user corrections, useful brief fixes, or routing surprises. Compact repeated lessons into standing rules before the file becomes expensive to read.
  • Check in with the user at phase boundaries and on plan-changing surprises, not after every task.

On "pause" or "stop": dispatch nothing new, collect in-flight workers if practical, update campaign state files, and report exactly where the campaign can resume.

Signals

GitHub stars
50
Forks
3
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
campaign-conductor
Source
github.com/jvogan/a-fable-of-codexes