Files
trailofbits__skills/plugins
Randy Hanooman 49699bb474 second-opinion: Gemini CLI is EOL — move to Antigravity, and bump Codex to gpt-5.6-sol (#294)
Both documented invocations were broken. Verified against codex-cli
0.149.1, gemini-cli 0.57.0, and agy 1.1.21 by running each command
against a small diff with two planted defects.

Codex: the skill pinned `gpt-5.5`. Current family is gpt-5.6 with
`-sol`, `-luna`, `-terra`, and `-pro` variants; `gpt-5.6-sol` is the
general-purpose choice. Fallback chain is now sol -> 5.6 -> 5.4.
`model_reasoning_effort` gained `max` and `ultra`; `xhigh` is kept as
the default since the higher tiers cost wall time for little gain on a
diff-sized input.

Gemini: the documented path cannot authenticate at all. Google stopped
serving Gemini CLI to individual accounts (free, AI Pro, Ultra) on
2026-06-18; they now fail with

  reasonCode: 'UNSUPPORTED_CLIENT'
  reasonMessage: 'This client is no longer supported for Gemini Code
    Assist for individuals. To continue using Gemini, please migrate to
    the Antigravity suite of products: https://antigravity.google'

The replacement is Antigravity CLI, binary `agy`. Only Code Assist
Standard/Enterprise licenses and paid `GEMINI_API_KEY` still reach
Gemini CLI, so that path is retained as an explicitly-legacy reference
rather than deleted.

Three `agy` behaviours that break a naive port, all found by running it:

- The prompt must be a command-line argument. Print mode does not read
  stdin unless `--input-format stream-json`; piping a diff in fails
  with "empty prompt".
- `-p=<value>` is required. Bare `-p` consumes the next flag as its
  prompt value and silently discards the real one.
- `--mode plan` is unsafe here. It intermittently returns a "created an
  implementation plan artifact ... click Proceed" stub instead of the
  review — same command, full review on one run, stub on the next.

`--json-schema` is also advisory rather than enforced: it nests the
findings as an escaped string inside a `response` field, contradicted
the schema on `code_location`, `confidence_score`, and the
`overall_correctness` enum, emitted the payload twice, and ran ~3x
slower than text. The Antigravity path therefore uses text output and
structured JSON stays Codex-only.

Also in this change:

- `--disable-slash-commands` on the `agy` call, since the prompt embeds
  an untrusted diff.
- The dependency-scanning gate section is dropped from SKILL.md. It
  existed only to gate `/security:scan-deps`, a Gemini security
  extension command with no Antigravity equivalent. It survives in the
  legacy Gemini reference, and the Antigravity reference says to use
  osv-scanner/npm audit/pip-audit instead.
- `--skip-trust` added throughout the legacy Gemini path. `--yolo` is
  silently downgraded to "default" approval mode in an untrusted
  directory, so every headless extension invocation as previously
  documented would stall waiting for approvals that cannot arrive.
- A note on why `codex exec review` is still not used despite gaining
  native `--uncommitted`/`--base`/`--commit` flags: those are mutually
  exclusive with `[PROMPT]`, so it cannot carry project context or a
  focus area.

`make validate`, `make self-test`, and both loadability checks pass.

Co-authored-by: rhanooman12 <randy.hanooman@jasper.ai>
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: kz-tob <kara.zaffarano@trailofbits.com>
2026-09-01 09:04:15 -04:00
..
2026-08-26 13:04:46 -04:00