skills/multi-model/SKILL.md
Multi-model AI collaboration: discover installed LLM CLIs and orchestrate council sessions, cross-model reviews, and diverse perspective gathering. Detects codex, copilot, gemini, opencode, pi, aider, llm, aichat, and goose CLIs at runtime via PATH discovery. Decisions stored in wicked-brain:memory. Transcripts persisted via jam scripts. Use when: running a council session across multiple LLM CLIs, getting a second opinion from a different model on a decision, or doing a cross-model code or architecture review.
npx skillsauth add mikeparcewski/wicked-garden multi-modelInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Orchestrate multi-model AI collaboration using external LLM CLIs. Each council member is a different model provider for genuine perspective diversity.
The multi-model system uses external LLM CLIs discovered at runtime:
which codex copilot gemini opencode pi aider llm aichat goose detects installed CLIs# Council mode — dispatches to external CLIs in parallel
/jam:council "Should we use JWT or sessions for auth?"
# Quick jam — single model, 4 personas, fast
/jam:quick "How should we improve the visual design?"
# Full brainstorm — single model, 4-6 personas, 2-3 rounds
/jam:brainstorm "Architecture for the notification system"
| CLI | Install | Model / Provider |
|-----|---------|------------------|
| codex | brew install codex | OpenAI Codex |
| copilot | brew install copilot-cli | GitHub Copilot |
| gemini | npm i -g @google/gemini-cli | Google Gemini |
| opencode | brew install opencode | Configurable (OpenAI/Anthropic/local) |
| pi | npm i -g @mariozechner/pi-coding-agent | Configurable (Google default, OpenAI/Anthropic/etc.) |
| aider | brew install aider | Configurable — code-editor orientation |
| llm | brew install llm | Multi-provider aggregator (OpenAI, Anthropic, Mistral, local via plugins) |
| aichat | brew install aichat | Multi-provider aggregator |
| goose | brew install block-goose-cli | Block Goose agent (configurable provider) |
Claude always participates as a council member alongside the external CLIs.
┌─────────────────────────────────────────────────────┐
│ /jam:council Command │
│ - Parses topic, options, criteria │
│ - Dispatches to council agent │
├─────────────────────────────────────────────────────┤
│ Council Agent (agents/jam/council.md) │
│ - Detects CLIs via `which` │
│ - Builds question scaffold (4 fixed questions) │
│ - Pipes scaffold to each CLI in parallel │
│ - Claude answers the same scaffold independently │
├─────────────────────────────────────────────────────┤
│ External CLI Dispatch │
│ - cat scaffold.md | codex exec "..." │
│ - cat scaffold.md | gemini "..." │
│ - cat scaffold.md | opencode run "..." │
│ - pi -p "..." @scaffold.md │
│ - aider --message-file scaffold --no-git --yes │
│ - cat scaffold.md | llm "..." │
│ - cat scaffold.md | aichat "..." │
│ - cat scaffold.md | goose run -i - │
├─────────────────────────────────────────────────────┤
│ Synthesis (3-stage) │
│ - Stage 1: Raw responses per model │
│ - Stage 2: Synthesis matrix + risk convergence │
│ - Stage 3: Verdict (consensus or fault lines) │
└─────────────────────────────────────────────────────┘
After gathering perspectives from different models, synthesize using:
| Signal | Meaning | Action | |--------|---------|--------| | Consensus (2+ models agree) | High confidence issue | Address immediately | | Unique insight | One model caught it | Evaluate carefully | | Disagreement | Genuine tradeoff | Human decides | | Silence | No model flagged it | Lower priority |
Council responses are persisted as transcript entries:
persona_type: councilentry_type: synthesiswicked-brain:query for past session contextStore decisions with full attribution:
Skill(skill="wicked-brain:memory", args="store \"Auth: JWT with 15min/7day expiry.\nConsensus: Claude, Gemini, Codex (idempotency critical).\nUnique: Gemini flagged session store scaling concern.\nDissent: none.\" --type decision --tags auth,multi-model-review")
| Situation | Recommendation | |-----------|----------------| | Architecture decisions | Yes — high impact, catch blind spots | | Security review | Yes — different models flag different risks | | Important PRs | Yes — diverse review perspectives | | Visual/UX design | Yes — different aesthetic sensibilities | | Quick bug fix | No — overhead not worth it | | Routine code | No — single AI sufficient |
If no external CLIs are detected, council refuses and suggests
/jam:brainstorm (single-model, multi-persona) as an alternative.
With only 1 CLI, it runs as "brainstorm with external guest" with a warning.
Orchestration:
CLI Providers:
Quality:
development
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".