compare — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited compare (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.
Send the same question to multiple LLM providers and present their responses verbatim, side-by-side. No synthesis, no consensus highlighting, no validation pipeline — just raw outputs so the user can compare directly.
This is the right tool when:
If you want consensus extraction → use /brainstorm instead. If you're reviewing a code diff → use /multi-review instead.
Extract from the user's message:
@path/to/file), preserve the @ syntax in the per-provider promptIf the question is missing or ambiguous, ask the user to clarify before dispatching.
Use the ADR-050 dispatch pattern (direct backgrounding + per-PID wait, NOT subshells, NOT run_in_background: true):
rm -f /tmp/ask-llm-compare-*.out /tmp/ask-llm-compare-*.err
GMCPT_TIMEOUT_MS=480000 node ${CLAUDE_PLUGIN_ROOT}/dist/run.js "$PROMPT" > /tmp/ask-llm-compare-gemini.out 2> /tmp/ask-llm-compare-gemini.err &
gem_pid=$!
GMCPT_TIMEOUT_MS=480000 node ${CLAUDE_PLUGIN_ROOT}/dist/codex-run.js "$PROMPT" > /tmp/ask-llm-compare-codex.out 2> /tmp/ask-llm-compare-codex.err &
codex_pid=$!
GMCPT_TIMEOUT_MS=480000 node ${CLAUDE_PLUGIN_ROOT}/dist/ollama-run.js "$PROMPT" > /tmp/ask-llm-compare-ollama.out 2> /tmp/ask-llm-compare-ollama.err &
ollama_pid=$!
gem_rc=0; wait $gem_pid || gem_rc=$?
codex_rc=0; wait $codex_pid || codex_rc=$?
ollama_rc=0; wait $ollama_pid || ollama_rc=$?
echo "exits: gemini=$gem_rc codex=$codex_rc ollama=$ollama_rc"
echo "bytes: gemini=$(wc -c < /tmp/ask-llm-compare-gemini.out) codex=$(wc -c < /tmp/ask-llm-compare-codex.out) ollama=$(wc -c < /tmp/ask-llm-compare-ollama.out)"Set the Bash tool's timeout parameter to 600000ms (10 minutes, the max). Default 2-minute Bash timeouts will SIGKILL the providers mid-response — this is the same bug class that ADR-050 fixed for the brainstorm-coordinator.
If the user asked for a subset of providers (e.g., "compare gemini and codex"), drop the dispatch lines for the excluded providers and the corresponding wait/echo lines.
After the Bash call returns, Read each /tmp/ask-llm-compare-<provider>.out file. If a provider's output is 0 bytes or its exit code is non-zero, also Read its .err file to surface the failure reason — DO NOT silently drop a provider.
Output structure:
## Comparison: <one-line restatement of the question>
### Gemini
> <verbatim provider response, do NOT paraphrase>
### Codex
> <verbatim provider response>
### Ollama
> <verbatim provider response>
### Where they differ
- One bullet per substantive disagreement (1-2 sentences each)
- If they all agree, say "All providers gave substantively the same answer."
- Do NOT take a position on who's right — present the differences neutrallyIf a provider failed:
### Gemini
**Failed** (exit 1): <first 3 lines of stderr>/compare because they want raw output./compare is intentionally simpler. If the user wanted synthesis they would have asked for it.Sub-agents in Claude Code cannot own background processes that outlive their turn. The ADR-050 lesson applies here exactly as it did for the brainstorm-coordinator:
run_in_background: true on the dispatch Bash call(cmd &) && wait — the subshell detaches the child and wait returns immediatelycmd & pid=$!) and per-PID waittimeout: 600000 on the Bash tool callWithout these, providers that take longer than the surrounding turn will be SIGKILLed mid-response and you will silently get 0-byte outputs.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.