| name | gemini-critic |
| description | Ask Gemini's most powerful model for an independent second opinion - critique code with fresh eyes, evaluate an article, challenge a plan. The calling agent controls the exact question and material; this skill just executes the call and returns Gemini's answer verbatim. |
| allowed-tools | Read, Glob, Bash, Write, mcp__aistudio__generate_content |
| user-invocable | true |
| argument-hint | <question or critique instruction> [file paths...] [model=<gemini-model>] |
| requires | {"env":["GEMINI_API_KEY"],"binaries":["python3"]} |
| metadata | {"version":"1.3","created":"2026-07-27T00:00:00.000Z","updated":"2026-08-04T00:00:00.000Z","author":"Ability.ai","changelog":["1.3: Library port — env-only credentials (key-file fallback removed), requires: contract declared","1.2: Default model -> gemini-pro-latest (alias auto-tracking Google's newest flagship pro; resolved to gemini-3.1-pro-preview as of 2026-07-27 - 2.5-pro was two generations stale); verified thinkingBudget -1 works on 3.1-pro","1.1: Self-contained - bundled scripts/ask_gemini.py calls the Gemini REST API directly using the local gemini_api_key file (chmod 600, sourced from Corbin's aistudio MCP config); script is now the primary transport, MCP the fallback; smoke-tested end-to-end","1.0: Initial version - thin executor: caller-framed question + material -> Gemini flagship (default gemini-2.5-pro, unlimited thinking) -> verbatim reply, no editorializing"]} |
| category | research-and-analysis |
Gemini Critic
ℹ️ First, set expectations: before anything else, print one short line with this skill's version and its most recent change - the top entry of metadata.changelog above - e.g. gemini-critic vX.Y — recent: <summary>. Then proceed.
Purpose
Get a genuinely independent second opinion from a different frontier model. The caller (Eugene or another agent/skill) decides what to ask and what material to send - review this diff, tear apart this article, find holes in this plan. This skill is a pure executor: assemble the payload, call Gemini, return the answer verbatim. It never answers the question itself, never softens or summarizes the critique, and never acts on the critique's suggestions.
State Dependencies
| Source | Location | Read | Write |
|---|
| Gemini API (primary) | bundled scripts/ask_gemini.py (direct REST call) | - | sends prompt + material |
| API key | GEMINI_API_KEY env var | yes | never |
| Gemini API (fallback) | mcp__aistudio__generate_content MCP tool, if connected | - | sends prompt + material |
| Input material | file paths supplied by the caller | yes | never |
The skill is self-contained: the bundled script + key file work in any project on this machine, with no MCP server configured. Only transient prompt files are written (to the session scratchpad). No state persists between invocations.
The Executor Contract
These rules are what make the second opinion worth having - breaking them defeats the skill's purpose:
- The caller's framing wins. Send the caller's question/instruction as given. Do not rephrase it, add your own concerns to it, or narrow its scope.
- Return the answer verbatim. No summarizing, no filtering, no "Gemini mostly agrees with me". The calling agent judges the critique, not you.
- Do not act on the critique. No edits, no fixes, no follow-up calls. Deliver the answer; your job ends there.
- Fail loud, never degrade silently. If the MCP tool is unavailable, a file is missing, or the material is too large - stop and say exactly what's wrong. Never send a partial payload without flagging it.