Skip to content
Automation
Skill

/skill-council

Run a configurable multi-LLM council with personas, budget caps, synthesis, veto gates, and optional implementation handoff.

From plugin
octo
4.1k70 skills49 agents53 commands18 hooks
Install
$ npx -y skills add nyldn/claude-octopus --skill skill-council --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/skill-council

Context preview

The summary Claude sees to decide when to auto-load this skill.

Run a configurable multi-LLM council with personas, budget caps, synthesis, veto gates, and optional implementation handoff.

SKILL.md

skill-council.SKILL.md
name: skill-council
disable-model-invocation: true
description: "Run a configurable multi-LLM council with personas, budget caps, synthesis, veto gates, and optional implementation handoff."

Council

Use this skill for `/octo:council` and council-style requests.

EXECUTION CONTRACT: MANDATORY

`/octo:council` is a runner-backed workflow. Execute the real shell runner by default:

"${CLAUDE_PLUGIN_ROOT:-$HOME/.claude-octopus/plugin}/scripts/orchestrate.sh" council <user arguments>

**Sandbox-safe invocation (required under Claude Code's sandbox).** `orchestrate.sh` must be the FIRST token of the command. The sandbox's unsandboxed-command allowlist is a leading-anchored prefix match, so a command that begins with `cd …`, an inline `VAR=… ` env-assignment, or any other prefix will NOT match an `…/orchestrate.sh *` entry — the runner then executes sandboxed and its `codex`/`agy` seat children fail to write temp files (`Operation not permitted`, agy `mkstemp` in `/var/folders`), so the council abandons the runner and falls back to direct single-provider dispatch. To run against a worktree, pass `--dir <path>` (the runner already honors `-d/--dir`) instead of wrapping in `cd <path> && …`; set any environment in a separate prior step or via a leading `env VAR=… /abs/path/orchestrate.sh council …` so the resolvable binary path is still first. Never prefix the runner with `cd`.

Do not simulate a council, role-play all members inside the current model, or answer directly in place of the runner. A single-model simulation must be explicitly requested with `--simulate` or `--single-model`; when used, label the output as `single-model simulation` and keep the generated `summary.json` path visible. Otherwise, missing provider quorum is a partial/failed council, not permission to silently downgrade.

Phase 0A: Interactive Clarification

If the user invokes `/octo:council` with an ambiguous task, missing goal/depth intent, uncertain implementation permission, or unclear research/corpus expectations, use `AskUserQuestion` before running the council runner. If the prompt already includes clear flags and a clear task, skip this phase and execute immediately.

Use 2-4 mutually exclusive choices per question, put the recommended option first, and map the answers to runner flags before execution. Do not end with a free-form question or a set of questions; present the choice interaction and wait for the answer.

Default council clarification:

AskUserQuestion({
  questions: [
    {
      question: "How should the council handle this request?",
      header: "Council Goal",
      multiSelect: false,
      options: [
        {label: "Advice (Recommended)", description: "Return a structured recommendation without implementation"},
        {label: "Decision", description: "Optimize for choosing between specific options"},
        {label: "Implementation plan", description: "Produce a plan but do not edit files"},
        {label: "Review", description: "Critique existing code, docs, or strategy"}
      ]
    },
    {
      question: "How deep should the council go?",
      header: "Depth",
      multiSelect: false,
      options: [
        {label: "Standard (Recommended)", description: "Balanced cost and coverage"},
        {label: "Quick", description: "Faster, lower-cost pass"},
        {label: "Deep", description: "More critique and revision, higher cost"}
      ]
    },
    {
      question: "Should the council use project research or corpus storage?",
      header: "Context",
      multiSelect: false,
      options: [
        {label: "No corpus (Recommended)", description: "Run with the provided prompt and write normal run artifacts"},
        {label: "Research first", description: "Add --research-first before provider fanout"},
        {label: "Append corpus", description: "Use --corpus-mode append for durable project notes"},
        {label: "Require corpus", description: "Use --corpus-mode require and stop if no corpus workspace exists"}
      ]
    }
  ]
})

Translate answers as follows:

  • Advice, Decision, Implementation plan, or Review -> `--goal advice|decision|plan|review`
  • Quick, Standard, or Deep -> `--depth quick|standard|deep`
  • Research first -> `--research-first`
  • Append corpus or Require corpus -> `--corpus-mode append|require`

Phase 0: Preflight

Collect or infer:

  • goal: `advice`, `decision`, `plan`, `implement`, or `review`
  • domain: `auto`, `architecture`, `product`, `security`, `business`, `research`, or `docs`
  • style: `balanced`, `adversarial`, `implementation`, `executive`, or `red-team`
  • depth: `quick`, `standard`, or `deep`
  • members: `auto`, `3`, `5`, or `7`
  • budget cap in USD
  • providers and provider availability
  • pinned personas
  • implementation permission and worktree isolation
  • whether research must happen before council fanout (`--research-first`)
  • whether findings, research, synthesis, and plans must be appended to the project corpus (`--corpus-mode append|require`)

Show the selected council, provider availability, benchmark freshness, quorum requirement, and cost estimate before provider fanout. Re-check the budget before critique, revision, synthesis, and implementation planning so the run stops before the next phase would exceed `--max-cost`. If the run is a dry run, stop after this preflight and write `summary.json`.

If `--research-first` is set, gather local corpus evidence first, then current external sources when allowed. Store concise findings as run artifacts before provider fanout. If `--corpus-mode append` or `--corpus-mode require` is set, append the research notes, findings, synthesis, and implementation plan to the project's durable corpus conventions before claiming completion; `require` must stop when no corpus workspace is available.

Quorum

  • quick requires at least one non-chair response plus a synthesis-capable chair
  • standard and deep require at least two non-chair responses plus a synthesis-
Read more
Ships withocto

Every AI model has blind spots. Claude Octopus supports twelve external provider integrations — Codex, Antigravity CLI, Copilot, Qwen, Ollama, Perplexity, OpenRouter, OrcaRouter, OpenCode, Cursor CLI, Grok, and Kimi Code — alongside the built-in Claude Code

Get the whole plugin

Other skills on octo.