Orchestrate a configurable, multi-member CLI planning council (Codex, Claude Code, Gemini, OpenCode, or custom) to produce independent implementation plans, anonymize and randomize them, then judge and merge into one final plan. Use when you need a robust, bias-resistant planning workflow, structured JSON outputs, retries, and failure handling across multiple CLI agents.
83
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
$XDG_CONFIG_HOME/llm-council/agents.json or ~/.config/llm-council/agents.json). If none exists, tell the user to run ./setup.sh to configure or update agents.python3 scripts/llm_council.py run --spec /path/to/spec.json to run the council../llm-council/runs/<timestamp> relative to the current working directory.python3 scripts/llm_council.py configure (writes $XDG_CONFIG_HOME/llm-council/agents.json or ~/.config/llm-council/agents.json).judge.md and final-plan.md.final-plan.md are confirmed saved; keep the session open during that interval to avoid closing the interface. If you yield while the Council is running, the session will be terminated and you will FAIL to complete the task. The user will escape out when they are ready or after the 30 minutes have elapsed.
Use agents.planners to define any number of planning agents, and optionally agents.judge to override the judge.
If agents.judge is omitted, the first planner config is reused as the judge.
If agents is omitted in the task spec, the CLI will use the user config file when present, otherwise it falls back to the default council.
Example with multiple OpenCode models:
{
"task": "Describe the change request here.",
"agents": {
"planners": [
{ "name": "codex", "kind": "codex", "model": "gpt-5.2-codex", "reasoning_effort": "xhigh" },
{ "name": "claude-opus", "kind": "claude", "model": "opus" },
{ "name": "opencode-claude", "kind": "opencode", "model": "anthropic/claude-sonnet-4-5" },
{ "name": "opencode-gpt", "kind": "opencode", "model": "openai/gpt-4.1" }
],
"judge": { "name": "codex-judge", "kind": "codex", "model": "gpt-5.2-codex" }
}
}Custom commands (stdin prompt) can be used by setting kind to custom and providing command and prompt_mode (stdin or arg).
Use extra_args to append additional CLI flags for any agent.
See references/task-spec.example.json for a full copy/paste example.
references/architecture.mdreferences/prompts.mdreferences/templates/*.mdreferences/cli-notes.mdfinal-plan.md are saved; keep the session open during that interval to avoid closing the interface.c810917
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.