From claude-commands
Guides developers through gathering multi-model AI analysis (Cerebras, Gemini, Perplexity, GPT-4o) using the /secondo command. Includes authentication and MCP request workflows.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-commands:ai-universe-second-opinion-workflowThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Quick start:** Use `/secondo` or the HTTPie helper script to gather multi-model analysis (Cerebras, Gemini, Perplexity, GPT-4o + synthesis).
Quick start: Use /secondo or the HTTPie helper script to gather multi-model analysis (Cerebras, Gemini, Perplexity, GPT-4o + synthesis).
/secondo runs or HTTPie 401/5xx errors.test -f ~/.claude/scripts/auth-cli.mjs && echo "✅ Installed" || echo "❌ Not found - run /localexportcommands"
node ~/.claude/scripts/auth-cli.mjs status
# Run this outside Claude Code in a regular terminal
node ~/.claude/scripts/auth-cli.mjs login
http (HTTPie), jq, python3, and node (>=20.0.0) are installed in the environment.ℹ️ Seamless Auto-Refresh: The
/secondocommand uses the exact same auth-cli.mjs from AI Universe repo. If your token is valid, it does nothing. If expired, it auto-refreshes using your refresh token (silent, no browser popup). Only prompts for login if refresh token expires (30+ days).
ℹ️ Token Location: All tokens stored in
~/.ai-universe/auth-token.json(same as AI Universe repo)
- ID token: 1-hour expiration
- Refresh token: enables 30+ day sessions
ℹ️ For a dedicated authentication walkthrough see ai-universe-auth.md. Dependency notes live in secondo-dependencies.md.
| Scenario | Command |
|---|---|
| Quick question (when SlashCommand is working) | /secondo "Should I use Redis or in-memory caching?" |
| Build MCP request with PR context | python3 skills/second_opinion_workflow/scripts/build_second_opinion_request.py /tmp/mcp_request.json "QUESTION" 3 origin/main |
| Call MCP via HTTPie | http POST https://ai-universe-backend-dev-114133832173.us-central1.run.app/mcp "Authorization:Bearer $TOKEN" < /tmp/mcp_request.json --timeout=180 --print=b |
| Parse embedded JSON response | jq -r '.result.content[0].text' /tmp/mcp_response.json > /tmp/mcp_parsed.json |
| Summarize models/costs | python3 skills/second_opinion_workflow/scripts/parse_second_opinion.py /tmp/mcp_parsed.json |
| End-to-end helper | skills/second_opinion_workflow/scripts/request_second_opinion.sh "QUESTION" [MAX_OPINIONS] |
python3 skills/second_opinion_workflow/scripts/build_second_opinion_request.py \
/tmp/mcp_request.json \
"YOUR QUESTION HERE" \
3 \
origin/main
Adjust SECOND_OPINION_MAX_FILES, SECOND_OPINION_MAX_DIFF_CHARS, or SECOND_OPINION_MAX_PATCH_CHARS if you need more/less context./tmp/mcp_request.json to refine the natural-language question while keeping the attached git context intact.# Get token (auto-refreshes if expired, does nothing if valid)
TOKEN=$(node ~/.claude/scripts/auth-cli.mjs token)
http POST https://ai-universe-backend-dev-114133832173.us-central1.run.app/mcp \
"Accept:application/json, text/event-stream" \
"Authorization:Bearer $TOKEN" \
< /tmp/mcp_request.json \
--timeout=180 \
--print=b > /tmp/mcp_response.json
jq -r '.result.content[0].text' /tmp/mcp_response.json > /tmp/mcp_parsed.json
python3 <<'PYEOF'
import json
with open('/tmp/mcp_parsed.json', 'r') as f:
data = json.load(f)
print(f"✅ Received responses from {data['summary']['totalModels']} models")
print(f"💰 Total cost: ${data['summary']['totalCost']:.4f}")
print(f"📊 Total tokens: {data['summary']['totalTokens']:,}")
print("\nPrimary response:\n")
print(data['primary']['response'])
PYEOF
Or run:
python3 skills/second_opinion_workflow/scripts/parse_second_opinion.py /tmp/mcp_parsed.json
📌 Need more HTTPie patterns? Use ai-universe-httpie.md as a companion reference.
Use /secondo "QUESTION" for quick prompts only when the command file is healthy. If it fails or hangs, switch to the HTTPie workflow.
Run the bundled script from repo root for a streamlined flow:
skills/second_opinion_workflow/scripts/request_second_opinion.sh "How should I harden our auth endpoints?" 4
The script:
MAX_OPINIONS is a positive integer.build_second_opinion_request.py to embed branch/base metadata, diffstat, recent commits, and per-file patches into the payload./tmp; set KEEP_TEMP_FILES=1 when running the script to keep them after completion.For advanced prompting templates and interactive options, see the existing ~/.claude/scripts/secondo-cli.sh utility.
"What is 2+2?" request first to warm the backend.node scripts/auth-cli.mjs login outside Claude Code..result.content[0].text before loading JSON. Use the helper Python snippet or script for safe parsing./secondo or HTTPie path was used.skills/second_opinion_workflow/scripts/ for helper tooling.npx claudepluginhub jleechanorg/claude-commands --plugin claude-commandsUses HTTPie to call the AI Universe MCP server for multi-model AI analysis, including second opinions, design reviews, code reviews, and bug investigations.
Consults Gemini 2.5 Pro, OpenAI Codex, and Claude for second opinions on debugging failures, architectural decisions, security validation, and fresh perspectives.
Queries AI models via OpenRouter, Gemini, or OpenAI APIs for second opinions on code, architecture, strategy, or prompting. Supports consensus, single opinion, and devil's advocate modes.