Banana Claude — Gemini Image Creative Director
Plan, generate, edit, compare, and review Google Gemini images from Claude Code, with a disclosed plan and your explicit approval before every paid call.
SKILL.md declares non-negotiable boundaries: full plan shown with a single-use 30-minute approval ID before every paid call, no automatic retry, API key injected only via environment and never on the command line or in files, explicit rights authority required for uploads, references treated as untrusted data, and invisible Unicode controls rejected. Data flows to Google (30-day Search retention, 55-day storage default) are disclosed pre-approval, with legacy cleanup and key-rotation migration paths. Deductions: paid external calls are irreversible side effects; the plugin boundary depends on host Claude Code behavior; the standalone approval gate rests only on self-described script behavior, unverifiable statically.
Docs are highly self-consistent: an error-class table, approval fingerprint binding, tri-state ledger accounting (recorded/not_recorded/unknown), and interrupt-recovery paths are all defined; failures report provider_called: false without silent retry. Deductions: static review cannot execute key paths; the scripts and test suite are not present in this evidence set; error behavior is asserted rather than reproducible, capping the score below 10 per anchors.
Routes are clear (generate/edit/continue/portfolio/typeset/preset/cost/doctor) with explicit inputs, outputs, and non-fit boundaries (Lite lacks video and continuation; 2.5 deprecated); trigger semantics match the argument-hint. Deductions: core function depends entirely on the Google Gemini API, unreachable from mainland-China networks; a billing-enabled project is a precondition; the 2026-08-29 catalog verification date drifts quickly, a structural environment risk.
Version 3.0.0, MIT license, progressive disclosure (references read on demand), a claim ledger separating official documentation from local policy fields, and fingerprint-confirmed migration with backups for 1.4.1 legacy data are high-quality governance. Deductions: no changelog file or explicit maintenance-ownership/update path appears in this evidence set; author identity is unverified; the very large doc surface hides assumptions (e.g. $CLAUDE_SKILL_DIR environment) on the reader.
The goal is clear: turn intent into a controlled brief, compile the prompt, approve, execute via Gemini, and pixel-review. Marginal value over manual prompting lies in routing, cost estimation, and review workflow. Deductions: static review cannot confirm outputs are directly usable; usability depends on Gemini output quality and a paid API project; claimed capabilities and probe results carry no independent execution evidence.
The claim ledger is a standout: each volatile claim maps to source URLs, retrieval date, and refresh due, honestly marking not_captured digests and reported probes as unauditable, with facts and local policy separated. Deductions: no evidence digests are packaged; both live probes are unreproducible; pricing and capability claims cannot be independently verified from this package, and coverage relies on users rechecking Google's docs.
- Core function depends entirely on the Google Gemini API, which may be unreachable from mainland-China networks and requires a billing-enabled paid project; every call incurs real cost.
- Publisher identity is unverified by FollowSkills; maintenance ownership and update path are not confirmed in the evidence, and the model/pricing catalog (verified 2026-08-29) will go stale quickly — recheck before use.
- Static review executed nothing: approval, ledger, and atomic-publication safety claims are self-described only; review the scripts source and validate with a minimal-cost request before real paid use.
- The documentation is very large and complex; standalone (non-plugin) installs lack the Claude Code host interaction boundary — never globally pre-approve the paid tools, or cost and data-transmission risk follows.
What does this skill do, and when should you use it?
Banana Claude is a Claude Code skill that turns a plain-language creative request into a planned, reviewable Gemini image workflow. Offline it freezes a versioned visual brief, compiles the exact prompt, and shows the model, size, references, and nominal cost estimate before any paid request. Execution requires a single-use approval ID, and every returned image must pass pixel-level review against the frozen brief. It routes across three current Gemini image models and supports stored continuation, bounded multi-model portfolios, and local exact-copy typesetting.
The skill converts intent into a banana.visual-brief.v1 brief, computes brief_sha256, and compiles the exact prompt. It plans through plugin MCP tools (banana_plan, banana_generate, banana_edit, banana_portfolio_plan, banana_typeset) or standalone Python scripts (generate.py, edit.py, portfolio.py, typeset.py, batch.py, presets.py, cost_tracker.py, legacy_cleanup.py, doctor.py); paid execution requires --execute --confirm APPROVAL_ID. It routes to gemini-3.1-flash-lite-image, gemini-3.1-flash-image, or gemini-3-pro-image using a dated model reference, shows an approval_summary with cost and privacy settings, saves the image plus a privacy-conscious metadata sidecar, and reviews every output as Pass / Targeted fix / Regenerate / Blocked against the brief. typeset.py layers approved copy onto trusted rasters and exports a self-contained SVG plus a rendered PNG preview.
- Content creators in Claude Code who need campaign visuals, covers, product scenes, or social assets and want to see the prompt and cost before spending.
- Designers making one clear edit to an existing image while protecting identity, geometry, or brand details.
- Brand or creative leads comparing up to three prompts across three Gemini model routes in one bounded portfolio and picking a winner against a shared brief.
- Marketing teams that need legal copy, exact fonts, or logos placed via deterministic local layers rather than generated text.
- Illustrators and concept artists iterating on character or product consistency through stored Flash or Pro sessions.
- Existing users upgrading from public 1.4.1 or 2.1.0 installs who need legacy-state scans, cleanup, and key rotation.
What are this skill's strengths and limitations?
- Every paid call shows the full plan (prompt, model, cost, privacy) and requires a single-use approval ID that expires in 30 minutes; never silently auto-retries.
- API keys never appear on command lines, in URLs, metadata, or public CI.
- Transport success is never treated as completion — every image gets pixel review until visual_review_status clears.
- Uploaded assets require explicit authority statements for rights, likeness, use, and provider transmission; unresolved authority blocks planning.
- Bounded multi-model portfolios (max 3 models, 9 paid requests, 3 concurrent) and deterministic local typesetting for exact copy.
- Ships operational tooling: cost tracking, legacy-install scan/cleanup, migrations, and a doctor diagnostic.
- Depends on the paid Google Gemini API with a billing-enabled project; nominal estimates are not a cap or final invoice since billing is per actual output.
- Output is probabilistic: consistency, spelling, geometry, policy acceptance, and rights clearance are review conditions, not guarantees.
- Deeply tied to Claude Code plugin mechanisms (/banana-claude:banana and plugin MCP tools); other platforms are limited to standalone scripts with no plugin agents.
- The batch utility only produces an offline variation plan CSV and does not submit Google's asynchronous Batch API.
- Stored continuation cannot guarantee consistency, and the Lite route does not accept stored interaction continuation.
- The source shows no standalone test suite or third-party evaluation, only a GitHub Actions validation badge.
How do you install this skill?
Requirements: Claude Code 2.1.199 or newer, Python 3.11+ with python3 on PATH, and a Gemini API key on a billing-enabled Google AI project. Run in Claude Code: /plugin marketplace add AgriciDaniel/banana-claude, then /plugin install banana-claude@banana-claude-marketplace, /plugin enable banana-claude@banana-claude-marketplace, then /reload-plugins. The plugin installs disabled because generation is a paid service. API keys are supplied via plugin configuration as sensitive user configuration; standalone scripts read only the GEMINI_API_KEY environment variable. Upgrading from public 1.4.1 or 2.1.0 requires the scan/migration guide in docs/guide.md and rotation of any previously stored key.
How do you use this skill?
The plugin command is /banana-claude:banana; standalone installs use /banana. Example: /banana-claude:banana generate an urban 16:9 GitHub hero with clean left-side copy space. Arguments follow [generate|edit|continue|portfolio|typeset|preset|cost|doctor] <request>. Workflow: describe the outcome → the skill plans offline and shows approval_summary → you approve that one paid call → it executes and saves the image and sidecar → you review the actual pixels, then fix, regenerate, or ship. Standalone usage looks like python3 "$CLAUDE_SKILL_DIR/scripts/generate.py" --prompt "..." (plans by default; add --execute --confirm APPROVAL_ID to spend). Any retry, fix, or continuation is a new paid attempt needing a new approval.
How does this skill compare with similar options?
The README explicitly references earlier public 1.4.1 and 2.1.0 installs as upgrade paths (unpinned MCP entries, raw keys on disk); no other competitors are named in the source.