Second Opinion
Trail of BitsOfficialPublished by Trail of Bits
- Skill
- Review and audit
- Software development
- CC-BY-SA-4.0
- Low risk
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The second-opinion skill facilitates external code reviews by leveraging Codex or Antigravity CLI tools. It allows users to obtain a second perspective on their code changes, whether they are uncommitted, part of a branch diff, or specific commits. The skill handles input preparation, executes the requested provider commands, and synthesizes the findings into a clear report. It is designed to provide objective feedback on correctness and maintainability, or specific areas like security and performance, without applying changes or interacting with remote review services.
What it does
- Performs independent code reviews using Codex or Antigravity CLI tools.
- Supports reviews for uncommitted changes, branch diffs, and specific commits.
- Allows for comparative reviews by running both providers on the same input.
- Processes findings from multiple providers and summarizes agreements and disagreements.
- Handles provider-specific diagnostics and failure reporting.
- Maintains user-defined focus areas such as security or performance.
When to use it
- When you need an external, independent review of your current code changes.
- When you want to compare feedback between Codex and Antigravity.
- When you need to audit a specific commit or branch diff for potential issues.
- When you require a second opinion on code quality, security, or performance.
Advantages
- Provides objective, multi-source feedback on code changes.
- Supports flexible scopes including uncommitted work and historical commits.
- Enables comparative analysis between different AI-powered review providers.
- Maintains a clear separation between external findings and agent-added assessments.
Usage examples
- “/second-opinion:second-opinion use Codex to review my uncommitted changes for bugs”
- The agent captures all staged, unstaged, and untracked changes and runs a Codex review, presenting findings categorized by severity.
- “/second-opinion:second-opinion compare Codex and Antigravity on this branch against origin/main”
- The agent generates a patch for the branch diff, runs both providers, and provides a summary comparing their respective findings.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/trailofbits/second-opinion/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip second-opinion.zip -d .agents/skills
Documentation by Trail of Bits
Second Opinion
Run an external CLI review of the user's selected changes. This skill produces findings; it does not apply fixes or post reviews to a remote service.
Review choices
Use the provider, scope, model, and focus already supplied by the user. Ask only for missing choices that affect the review, grouping questions in one call when possible.
Provider: Codex, Antigravity, or both. Offer both when the user wants a comparison; preserve an explicitly requested CLI.
Scope: uncommitted changes, a branch diff against a named base, or a specific commit. Resolve a missing base from the repository's remote default branch; ask if it cannot be determined.
Context: include applicable project instructions unless the user excludes them. Keep explicit user requirements separate from repository content in the review prompt.
Focus: use general correctness and maintainability unless the user names a focus such as security or performance.
For an unspecified Google CLI, prefer Antigravity (agy). An explicit
Gemini CLI request uses the Gemini reference below. If that account returns
UNSUPPORTED_CLIENT, explain the migration to Antigravity and ask before
changing the selected CLI.
A missing executable or account setup is a failed review attempt. Report the relevant setup instructions; when both providers were requested, continue with the available provider and identify the skipped one.
Input preparation
Read review-input.md for the shared prompt and diff recipes. Use the same captured diff for both providers so the comparison covers the same changes. Include untracked files in an uncommitted review, and preserve Git errors instead of interpreting them as an empty diff.
Show the selected scope and a brief change summary. If there are no changes, stop before calling a provider. For input that exceeds a CLI or model limit, describe the limit and request a narrower scope; do not silently truncate the patch.
Create prompt, output, and diagnostic files with mktemp outside the
checkout. Use separate output and diagnostic files for each provider.
Define shell variables in the same Bash invocation that uses them.
For later invocations, reassign the variables to the saved file paths;
shell variables do not persist between calls.
Write repository content as literal data, without shell expansion.
Provider references
Read only the reference for each selected provider:
| Provider | Invocation and result |
|---|---|
| Codex | codex-invocation.md: codex exec with the review schema |
| Antigravity | antigravity-invocation.md: agy print mode with prose output |
| Gemini CLI | gemini-invocation.md: headless gemini for accounts that still support it |
The Codex path needs no MCP server. Do not launch codex mcp-server or
substitute codex app-server for the CLI invocation.
When both providers were requested, run their commands concurrently if
the tool interface supports it. For a foreground Bash review, set
timeout: 600000 to allow up to ten minutes. Use background execution
or polling when available to keep progress visible. Do not enable
automatic approval of writes to make a review run.
Results and failures
Present findings with the provider and actual model used, severity, file and line, impact, and suggested correction. Keep low-severity defects visible. For Codex, the existing schema uses 0 for informational, 1 for low, 2 for medium, and 3 for high; sort descending.
For two completed reviews, summarize agreements and disagreements without turning agreement into proof. Distinguish the external findings from any assessment you add.
Read the captured output and diagnostics. A nonzero exit, missing output, invalid JSON, permission denial that prevents inspection, or a request to approve a plan is incomplete work, not a clean review. Report the failure and any partial results. Retry only for a diagnosed, recoverable cause; do not cycle through providers after authentication or quota failures.
Examples
/second-opinion:second-opinion use Codex to review my uncommitted changes for bugsselects Codex and includes staged, unstaged, and untracked changes./second-opinion:second-opinion compare Codex and Antigravity on this branch against origin/mainsends the same branch patch to both and compares their findings./second-opinion:second-opinion use Gemini CLI to review commit abc1234 for security issuespreserves the requested CLI and reviews that commit.
Files
- ATTRIBUTION.mdAdded by AutoGineer936 B
- LICENSELicence file added by AutoGineer19.7 KiB
- SKILL.md4.9 KiB
- agents/openai.yaml226 B
- assets/trail-of-bits-mark.svg3.0 KiB
- references/antigravity-invocation.md2.2 KiB
- references/codex-invocation.md2.9 KiB
- references/codex-review-schema.json2.2 KiB
- references/gemini-invocation.md2.3 KiB
- references/review-input.md4.2 KiB
references/codex-invocation.md
Codex Invocation
Use codex exec with the prepared prompt on stdin. It supports a
custom focus and project context alongside a manually captured diff.
The built-in codex exec review scope flags cannot be combined with
its positional prompt, so they do not replace this invocation.
The default remains gpt-5.6-sol with xhigh reasoning. Preserve an
explicit model or effort supplied by the user. The flags below were
checked with Codex CLI 0.154.0 --help on 2026-09-14.
Command
With prompt_file, output_file, and stderr_log already created
outside the checkout, run from the repository root:
codex exec \
-c model='"gpt-5.6-sol"' \
-c model_reasoning_effort='"xhigh"' \
--sandbox read-only \
--ephemeral \
--output-schema "{baseDir}/references/codex-review-schema.json" \
-o "$output_file" \
- < "$prompt_file" \
> /dev/null 2> "$stderr_log"-o saves the final response while diagnostics remain in
stderr_log. --output-schema requests structured findings.
--ephemeral avoids persisting a review session.
These options are documented in OpenAI's
non-interactive mode guide.
No MCP server is involved. The
Codex changelog records removal
of codex mcp-server in CLI 0.154.0.
Result handling
Parse output_file as JSON. Use the returned findings, explanation,
and confidence rather than CLI progress messages. An empty findings
array is meaningful only after the invocation completed and returned a
valid review.
The shipped schema uses higher numbers for higher severity: 0 informational, 1 low, 2 medium, 3 high. This is not the P0-critical convention used by some other review formats. Do not invert it when presenting findings.
Failure handling
| Failure | Response |
|---|---|
| Executable missing | Report that Codex must be installed and authenticated; installation command: npm i -g @openai/codex |
| Authentication or quota error | Report the error and stop this provider; changing models does not repair missing credentials or exhausted quota |
| Default model unavailable | If the user did not pin a model, retry once with gpt-5.6 and disclose the substitution |
| Explicit model unavailable | Report the failure and ask for a replacement |
| Nonzero exit, empty file, or invalid JSON | Read diagnostics and report an incomplete review |
| Sandbox denied a needed read or command | Report the coverage gap; do not ignore it or remove the sandbox |
| Timeout | Preserve partial output and report the timeout; suggest a narrower scope |
A model reported as "not supported when using Codex with a ChatGPT account" is a model-entitlement failure. Use the model-unavailable response above: retry only when the user did not pin a model. This differs from missing or invalid credentials and exhausted quota, which stop the provider.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Names Codex tools, Needs an MCP server
Security
What our scanner noticed· Low risk
- Instructions that use the network
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Published by
- Trail of Bits
- Publisher
- Trail of Bits (Official)
- Source
- trailofbits/skills · plugins/second-opinion/skills/second-opinion · commit e4dd0bb
- Licence
- Creative Commons Attribution-ShareAlike 4.0 International (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Trail of Bits.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download second-opinion.zip