Agent skill
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 this agent skill to your Project
npx add-skill https://github.com/vinta/hal-9000/tree/main/plugins/hal-skills/skills/magi
SKILL.md
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__codexMCP tool - Woman -- delegates to Google Gemini via
geminiCLI
User Question
<user_question> $ARGUMENTS </user_question>
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:
- Personalities: MAGI-1.md, MAGI-2.md, MAGI-3.md
- References: codex.md, gemini.md
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:
- Deduplicate similar proposals (attribute to all teammates/models that proposed it)
- Group by theme if many proposals
- 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
- Ask the user to select an option via
AskUserQuestion - Ask via
AskUserQuestionwhat to do next:- Write a plan -- teardown, then handoff to
writing-plans - Debate -- another round of critique (see below)
- Done -- teardown, no further action
- Write a plan -- teardown, then handoff to
5. Debate (optional, user-triggered)
Only runs if the user requests it. Can be repeated.
- Broadcast the consolidated option list to all 3 teammates via
SendMessage - Each teammate critiques the proposals through their model (Scientist reasons directly; Mother and Woman follow Debate Mode in their reference files)
- 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.
shutdown_requestto each teammate- Wait for all shutdown approvals
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.
TeamDeletefails if teammates are still active. Always sendshutdown_requestto all three and wait for approvals before callingTeamDelete.- Save the Codex
threadId. Mother's firstmcp__codex__codexcall returns athreadIdneeded for debate follow-ups viamcp__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
SendMessagenudge. After 2 minutes of silence, collect what you have and present partial results.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
bump-plugin-version
(project) Use when editing any file under plugins/hal-skills/ or plugins/hal-voice/ to bump the plugin version before committing
commit
Use when making any git commit. All git add and commit operations must go through this skill, including from subagents and other skills. Always pass a brief description of what changed as the argument
update-allowed-tools
Use when creating or editing a skill that uses Bash commands, external tools, or skill invocations and the allowed-tools frontmatter may be incomplete
second-opinions
Use when wanting independent perspectives from external models (Codex, Gemini) on code, plans, docs, or any task — or when the user asks for a second opinion, codex review, or gemini review
verl-rl-training
Provides guidance for training LLMs with reinforcement learning using verl (Volcano Engine RL). Use when implementing RLHF, GRPO, PPO, or other RL algorithms for LLM post-training at scale with flexible infrastructure backends.
openrlhf-training
High-performance RLHF framework with Ray+vLLM acceleration. Use for PPO, GRPO, RLOO, DPO training of large models (7B-70B+). Built on Ray, vLLM, ZeRO-3. 2× faster than DeepSpeedChat with distributed architecture and GPU resource sharing.
Didn't find tool you were looking for?