From e09ff5dc9b4156c6ad03533b6bc4fa2668143205 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Tue, 16 Jun 2026 19:23:13 -0700 Subject: [PATCH] =?UTF-8?q?agy(gemini):=20RTFM=20audit=20=E2=80=94=20confi?= =?UTF-8?q?rmed=20healthy,=20version=20+=20verified-date=20refresh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audited the Gemini wrapper against the CLI's bundled help/README (gemini 0.45.2), same pass as the grok skill. Unlike grok, found NO functional bug: - All flags correct and real: -p, --skip-trust, -o json, --approval-mode plan|yolo, --include-directories, -m (verified against `gemini --help`). - JSON schema {session_id, response, stats} -> .response confirmed via live probe. - Pinned model gemini-3.1-pro-preview STILL VALID (live PONG); the GA-looking gemini-3.1-pro and gemini-3-pro both ModelNotFoundError -> keep the -preview suffix. - Default text model is gemini-3.1-flash-lite (by design; verify/review/search/image pin pro). No thought-suppression flag exists in the CLI, so the gresponse() reasoning -leak scrub stays (justified, signature-gated, byte-exact otherwise). - Live `search` re-validated end-to-end through the wrapper (58s, grounded sources). Only change: version 0.45.1 -> 0.45.2 in SKILL.md + wrapper header, and refreshed the verified-date notes with the 2026-06-17 re-validation findings. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/skills/agy/SKILL.md | 15 +++++++++------ .claude/skills/agy/scripts/ask-gemini.sh | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.claude/skills/agy/SKILL.md b/.claude/skills/agy/SKILL.md index 95f2e57..0d305e4 100644 --- a/.claude/skills/agy/SKILL.md +++ b/.claude/skills/agy/SKILL.md @@ -14,12 +14,14 @@ description: > # AGY — Gemini capability router Claude shells out to the locally-installed **Google Gemini CLI** (`gemini`, npm -global, v0.45.1) for a genuinely independent, different-vendor second model. +global, v0.45.2) for a genuinely independent, different-vendor second model. AGY is the sibling of [`grok`](../grok/SKILL.md): both are second-opinion / review routers. Use whichever you want a second model from (or both, to triangulate). -Verified working on this machine (2026-06-05): text, verify, review (single -file / file set / git diff), image-analyze (vision input), search (live Google -web search). All KEYLESS — they work on Google OAuth, no API key. +Verified working on this machine (2026-06-05; re-validated 2026-06-17 against the +CLI's bundled help/README — JSON schema, all flags, pinned model, and live search +all confirmed): text, verify, review (single file / file set / git diff), +image-analyze (vision input), search (live Google web search). All KEYLESS — they +work on Google OAuth, no API key. **Auth:** Gemini uses **Google login (OAuth)** — **no API key**. Creds live at `~/.gemini/oauth_creds.json`. If calls fail with an auth error, run `gemini` @@ -63,7 +65,8 @@ never corrupts the parse. - `text` uses Gemini's **default routing** (currently a flash-tier model) — fast, cheap. - `verify` / `review*` pin a **strong** model — `gemini-3.1-pro-preview` (verified - available on this account 2026-06-05; the CLI's own pro tier). + available 2026-06-05, still valid 2026-06-17; the GA-looking `gemini-3.1-pro` and + `gemini-3-pro` both `ModelNotFoundError`, so keep the `-preview` suffix). - Override either with `GEMINI_MODEL=` (e.g. `GEMINI_MODEL=gemini-2.5-pro`). - `image-analyze` and `search` also pin the strong model (`GEMINI_MODEL` still honored). @@ -149,7 +152,7 @@ run both and compare — disagreement between them is a strong signal to slow do ## Reference - Binary: npm global `gemini` (`C:/Users/guru/AppData/Roaming/npm/gemini` on the host; the npm global dir is on PATH). The wrapper auto-locates it or honors `GEMINI=`. -- Version 0.45.1. Auth: Google OAuth (`~/.gemini/oauth_creds.json`), no API key. +- Version 0.45.2. Auth: Google OAuth (`~/.gemini/oauth_creds.json`), no API key. - Headless contract: `gemini -p "" -o json --skip-trust {session_id, response, stats}. # The answer text is `.response`. stdout may carry two cosmetic warning lines # ("True color..." / "Ripgrep is not available...") before the JSON; we extract