extract-skill
Reverse-engineer design systems, tokens, and components from live products or screenshots
Run a configurable multi-LLM council with personas, budget caps, synthesis, veto gates, and optional implementation handoff.
$ npx -y skills add nyldn/claude-octopus --skill skill-council --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/skill-councilContext 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.
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."
Use this skill for `/octo:council` and council-style requests.
`/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.
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:
Collect or infer:
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.
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
Repo: nyldn/claude-octopus
Reverse-engineer design systems, tokens, and components from live products or screenshots
Multi-AI requirements scoping using available external providers (Double Diamond Define phase). Priority triggers: octo define, octo scope, co-define,…
Multi-AI validation, scoring, and review using available external providers (Double Diamond Deliver phase)
Multi-AI implementation using available external providers (Double Diamond Develop phase). DO NOT use for simple code edits, reading/reviewing code, built-in…
Multi-AI research using available external providers (Double Diamond Discover phase)
Decompose and execute large changes, migrations, or multi-issue fixes in parallel with quality gates