Hal-9000 magi

Use when brainstorming ideas, features, or directions for a project where independent perspectives from different model families (Claude/Codex/Gemini) would surface blind spots and spark creative options the user hasn't considered — especially "what cool things can I add", "what should I build next", "give me ideas for X"

install
source · Clone the upstream repo
git clone https://github.com/vinta/hal-9000
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/vinta/hal-9000 "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/hal-skills/skills/magi" ~/.claude/skills/vinta-hal-9000-magi && rm -rf "$T"
manifest: plugins/hal-skills/skills/magi/SKILL.md
source content

MAGI

Multi-model brainstorming panel. Three teammates explore a question in parallel, each backed by a different model family, then the lead consolidates their proposals for the user.

  • Scientist: reasons directly as Claude Opus (no external dispatch)
  • Mother: delegates to OpenAI Codex via
    mcp__codex__codex
    MCP tool
  • Woman: delegates to Google Gemini via
    gemini
    CLI

Process

1. Clarify

If the question is underspecified, use

AskUserQuestion
to nail down purpose, constraints, and success criteria. Skip if already clear and actionable.

  • Ask questions one at a time to refine the idea
  • Prefer multiple choice questions when possible, but open-ended is fine too
  • Only one question per message

2. Setup

Read the personality and reference files, then spawn all teammates in parallel.

Files to read:

Create team with

TeamCreate
using name
magi-{topic}
(e.g.,
magi-auth-strategy
).

Spawn all 3 teammates in a single message (3 parallel

Agent
calls with
team_name
set):

Teammate
name
subagent_type
Prompt includes
Scientist
scientist
general-purpose
MAGI-1.md personality + question (reasons directly as Opus)
Mother
mother
general-purpose
MAGI-2.md personality + codex.md (dispatches to Codex MCP) + question
Woman
woman
general-purpose
MAGI-3.md personality + gemini.md (dispatches to Gemini CLI) + question

Include all clarified context in each spawn prompt: teammates have no conversation history.

3. Parallel Exploration

The lead's role is coordination only:

  • Wait for teammates to send proposals via
    SendMessage
  • Forward any teammate clarifying questions to the user via
    AskUserQuestion
    , noting which teammate (and model) asked. Never answer on the user's behalf: only the user answers.

4. Consolidate + Present

Collect all proposals, then:

  1. Deduplicate similar proposals (attribute to all teammates/models that proposed it)
  2. Group by theme if many proposals
  3. Present each option with:
    • Which teammate(s) and model(s) proposed it (e.g., "Scientist [Opus]", "Mother [Codex]")
    • Trade-off analysis from each perspective
    • Who tagged it as their top pick and why
  4. Ask the user to select an option via
    AskUserQuestion
  5. Ask via
    AskUserQuestion
    what to do next:
    • Write a plan: teardown, then handoff to
      writing-plans
    • Debate: another round of critique (see below)
    • Done: teardown, no further action

5. Debate (optional, user-triggered)

Only runs if the user requests it. Can be repeated.

  1. Broadcast the consolidated option list to all 3 teammates via
    SendMessage
  2. Each teammate critiques the proposals through their model (Scientist reasons directly; Mother and Woman follow Debate Mode in their reference files)
  3. Collect updated stances and re-present to the user (back to step 4)

6. Teardown

Tear down only when the user selects Write a plan or Done.

  1. shutdown_request
    to each teammate
  2. Wait for all shutdown approvals
  3. TeamDelete

7. Handoff (write a plan path only)

After teardown, invoke

writing-plans
skill with the chosen option(s) as context.

Gotchas

  • Teammates have no conversation history. Everything they need must be in the spawn prompt — the user's question, clarified context, CLAUDE.md, and their personality/reference files. If you forget context from the Clarify step, the teammate works blind.
  • TeamDelete
    fails if teammates are still active.
    Always send
    shutdown_request
    to all three and wait for approvals before calling
    TeamDelete
    .
  • Save the Codex
    threadId
    .
    Mother's first
    mcp__codex__codex
    call returns a
    threadId
    needed for debate follow-ups via
    mcp__codex__codex-reply
    . If lost, the debate round must re-send full context.
  • Gemini has no persistent thread. Unlike Codex, each Gemini call is stateless. For debate rounds, the full proposal list and persona must be re-sent every time.
  • Teammates may not report back. If a teammate goes silent, send a
    SendMessage
    nudge. After 2 minutes of silence, collect what you have and present partial results.