Multi-AI Consultant — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Multi-AI Consultant (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Consult external AIs for second opinions when Claude Code is stuck or making critical decisions.
This skill enables future Claude Code sessions to consult other AIs when:
Key innovation: Uses existing CLI tools (gemini, codex) instead of building MCP servers - much simpler and more maintainable.
Claude Code should automatically suggest using this skill when:
User can explicitly request consultation with:
/consult-gemini [question] - Gemini 2.5 Pro with thinking, search, grounding/consult-codex [question] - OpenAI GPT-4 via Codex CLI (repo-aware)/consult-claude [question] - Fresh Claude subagent (free, fast)/consult-ai [question] - Router that asks which AI to use| AI | Tool | When to Use | Special Features | Cost |
|---|---|---|---|---|
| Gemini 2.5 Pro | gemini CLI | Web research, latest docs, thinking | Google Search, extended reasoning, grounding | ~$0.10-0.50 |
| OpenAI GPT-4 | codex CLI | Repo-aware analysis, code review | Auto-scans directory, OpenAI reasoning | ~$0.05-0.30 |
| Fresh Claude | Task tool | Quick second opinion, budget-friendly | Same capabilities, fresh perspective | Free |
Claude Code encounters bug/decision
↓
Suggests consultation (or user requests)
↓
User approves
↓
Execute appropriate slash command
↓
CLI command calls external AI
↓
Parse response
↓
Synthesize: Claude's analysis + External AI's analysis
↓
Present 5-part comparison
↓
Ask permission to implementEvery consultation must follow this format (prevents parroting):
End with: "Should I proceed with this approach?"
Gemini CLI (required):
npm install -g @google/generative-ai-cli
export GEMINI_API_KEY="your-key"Get API key: https://aistudio.google.com/apikey
Codex CLI (optional):
npm install -g codex
export OPENAI_API_KEY="sk-..."Get API key: https://platform.openai.com/api-keys
Fresh Claude: Built-in (uses Task tool, no setup)
cd ~/.claude/skills
git clone [this-repo] multi-ai-consultant
# OR symlink from development location# Copy to project root
cp ~/.claude/skills/multi-ai-consultant/templates/GEMINI.md ./
cp ~/.claude/skills/multi-ai-consultant/templates/codex.md ./
cp ~/.claude/skills/multi-ai-consultant/templates/.geminiignore ./
# Copy log parser (optional)
cp ~/.claude/skills/multi-ai-consultant/templates/consultation-log-parser.sh ~/bin/
chmod +x ~/bin/consultation-log-parser.sh# Test Gemini CLI
gemini -p "test" && echo "✅ Gemini working"
# Test Codex CLI (if installed)
codex exec "test" --yolo && echo "✅ Codex working"
# Test skill discovery
# Ask Claude Code: "I'm stuck on this bug, can you help?"
# Claude should suggest consultationScenario: JWT authentication failing after one attempt
Claude's process:
1. Try initial fix (token expiry check)
2. Still failing (now "invalid signature" error)
3. → Automatically suggest consultation
4. User approves
5. Execute /consult-gemini with:
- Problem: 401 error details
- What was tried: token expiry fix
- Current status: invalid signature error
- Context: @src/auth/session.ts @src/middleware/jwt.ts
6. Gemini finds: Using process.env instead of env binding (Cloudflare)
7. Synthesize both perspectives
8. Ask permission to implement Gemini's fixResult: Bug fixed with second opinion, avoided 2-3 more trial-and-error attempts
Scenario: Choosing state management for new feature
Claude's process:
1. User asks: "How should we handle state for this feature?"
2. → Auto-consult Gemini (architectural decision)
3. Execute /consult-gemini with:
- Problem: State management choice
- Options considered: Redux, Zustand, Context
- Context: @src/ (existing patterns)
4. Gemini searches for latest React state management best practices
5. Synthesize Claude's + Gemini's analysis
6. Present recommendation with trade-offsResult: Informed decision with latest best practices
User: "I want a second opinion on this refactoring"
Claude's process:
1. User explicitly requests consultation
2. Ask which AI: Gemini, Codex, or Fresh Claude?
3. User chooses Codex (wants repo-aware analysis)
4. Execute /consult-codex with:
- Problem: Refactoring proposal
- Context: (Codex scans repo automatically)
5. Codex checks consistency with existing code
6. Synthesize both perspectives
7. Present recommendationResult: Validation of refactoring approach + consistency check
/consult-gemini [question]Use when: Need web research, latest docs, extended thinking
What it does:
gemini-2.5-pro --thinking --google-search --grounding~/.claude/ai-consultations/consultations.logExample:
/consult-gemini Is this JWT validation secure by 2025 standards?Context: Uses @<path> syntax for selective context
System instructions: Auto-loads GEMINI.md from project root
Privacy: Respects .gitignore + .geminiignore
/consult-codex [question]Use when: Need repo-aware analysis, code review, OpenAI reasoning
What it does:
cd to project directory (Codex scans automatically)--yolo flag: codex exec - -m gpt-4-turbo --yoloExample:
/consult-codex Review this codebase for performance issuesContext: Repo-aware (automatically reads all non-gitignored files)
System instructions: Auto-loads codex.md from project root or ~/.codex/instructions.md
Privacy: Respects .gitignore, warns if not in Git repo
/consult-claude [question]Use when: Quick second opinion, free, fresh perspective
What it does:
Example:
/consult-claude Am I missing something obvious in this state management bug?Context: You manually read relevant files and pass inline
Advantages: Free, same capabilities, fast, fresh perspective
Limitations: No web search, no extended thinking, same knowledge cutoff
/consult-ai [question]Use when: Unsure which AI to use
What it does:
Example:
/consult-ai How should we structure this microservices architecture?
→ Recommends Gemini (needs web research for latest patterns)
→ User approves
→ Executes /consult-gemini internallyDecision factors:
GEMINI.md (Project Root)System instructions for Gemini consultations. Enforces:
Auto-loaded: Place in project root, Gemini CLI reads automatically
codex.md (Project Root or ~/.codex/instructions.md)System instructions for Codex consultations. Enforces:
Auto-loaded: Codex CLI reads from project root or global config
.geminiignore (Project Root)Extra privacy exclusions beyond .gitignore. Excludes:
.env* files*secret*, *credentials*Auto-loaded: Gemini CLI respects this file
consultation-log-parser.shView consultation history:
consultation-log-parser.sh # Last 10
consultation-log-parser.sh --all # All consultations
consultation-log-parser.sh --summary # Stats only
consultation-log-parser.sh --ai gemini # Filter by AILog format: timestamp,ai,model,input_tokens,output_tokens,cost,project_path
Every consultation is logged to ~/.claude/ai-consultations/consultations.log
Format:
2025-11-07T14:23:45-05:00,gemini,gemini-2.5-pro,15420,850,0.1834,/home/user/project
2025-11-07T15:10:22-05:00,codex,gpt-4-turbo,8230,430,0.0952,/home/user/project
2025-11-07T16:05:11-05:00,claude-subagent,claude-sonnet-4-5,0,0,0.00,/home/user/projectView logs:
consultation-log-parser.sh --summary
# Total consultations: 47
# Gemini: 23, Codex: 12, Fresh Claude: 12
# Total cost: $8.45Pricing (verify current rates):
Both CLIs respect .gitignore automatically. Files in .gitignore are never sent.
.geminiignore)Create .geminiignore in project root for extra exclusions:
*.env*
*secret*
*credentials*
.dev.vars
wrangler.tomlClaude Code should warn if:
Ask permission: "About to send context to [AI]. Files include: [list]. Proceed?"
Before consultation, user can check:
# What will be sent to Gemini
ls -la @src/
# Check gitignore is working
git status --ignoredError: gemini: command not found or codex: command not found
Fix:
npm install -g @google/generative-ai-cli
npm install -g codexPrevention: Pre-flight checks in slash commands
Error: "API key invalid" or authentication failures
Fix:
export GEMINI_API_KEY="your-key"
export OPENAI_API_KEY="sk-..."
# Or add to ~/.bashrc
echo 'export GEMINI_API_KEY="your-key"' >> ~/.bashrc
source ~/.bashrcPrevention: Pre-flight checks test API before consultation
Error: Token limit exceeded or very expensive consultation
Fix: Use smart context selection
@path/to/specific/file.ts not @.Prevention: Slash commands guide smart context selection
Risk: Accidentally sending .env or secrets
Fix:
.gitignore (automatic).geminiignore for extra protectionPrevention: Always check .gitignore is configured
Issue: Expensive consultations accumulating
Fix:
consultation-log-parser.sh --summaryPrevention: Cost tracking + warnings for large context
Error: codex exec hangs waiting for approval
Fix: Always use --yolo flag
Prevention: Slash command includes --yolo by default (hard to miss)
Error: jq: parse error
Fix: Check exit code before parsing, fall back to plain text
Prevention: Slash command checks exit code first
Warning: Codex warns if not in Git repo (safety feature)
Fix: Add --skip-git-repo-check flag if appropriate
Prevention: Slash command includes flag
Typical scenario (stuck on bug):
Total: ~20k tokens, 30-45 minutes
Same scenario:
/consult-gemini (~1k tokens to execute)Total: ~8k tokens, 5-10 minutes
Savings: ~60% tokens, ~75% time
Value: Gemini's web search finds issue Claude couldn't
GEMINI.md/codex.md| Aspect | MCP Server | CLI Approach |
|---|---|---|
| Setup time | 4-6 hours | 60-75 minutes |
| Complexity | High (MCP protocol) | Low (bash + CLIs) |
| Maintenance | Update MCP SDK | Update CLI (rare) |
| Flexibility | Locked to AIs | Any AI with CLI |
| Debugging | MCP protocol | Standard bash |
| Dependencies | MCP SDK, npm | Just CLIs |
Winner: CLI approach - 80% less effort, same functionality
# Check CLI installed
which gemini
# Check API key set
echo $GEMINI_API_KEY
# Test manually
gemini -p "test"
# Check API key valid
curl -H "Content-Type: application/json" \
-d '{"contents":[{"parts":[{"text":"test"}]}]}' \
"https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=$GEMINI_API_KEY"# Check CLI installed
which codex
# Check API key set (if using API key auth)
echo $OPENAI_API_KEY
# Test manually
echo "test" | codex exec - --yolo
# Check OpenAI API (if installed)
openai api models.list# Fresh Claude uses Task tool (built-in)
# If Task tool fails, check Claude Code CLI status
claude --version# Check skill installed
ls -la ~/.claude/skills/multi-ai-consultant
# Check SKILL.md has YAML frontmatter
head -20 ~/.claude/skills/multi-ai-consultant/SKILL.md
# Ask Claude Code to list skills
# It should mention multi-ai-consultantFound an issue?
Adding new AI?
commands/consult-newai.mdcommands/consult-ai.mdtemplates/newai.md (if CLI supports system instructions)Improving synthesis?
templates/GEMINI.md, templates/codex.mdplanning/multi-ai-consultant-*.mdcommands/*.mdtemplates/*scripts/*MIT License - See LICENSE file
Last Updated: 2025-11-07 Status: Production Ready Maintainer: Jeremy Dawes | [email protected] | https://jezweb.com.au
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.