kramme-cc-workflow/skills/kramme:visual:generate-image/SKILL.md
Generate and edit images using Google's Gemini 3 Pro Image API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
npx skillsauth add abildtoft/kramme-cc-workflow kramme:visual:generate-imageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
4 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate new images or edit existing ones using Google's Gemini 3 Pro Image API.
Arguments: "$ARGUMENTS"
Side effects: Calls Google's paid Gemini API over the network and writes a PNG to disk. Every run consumes API quota, and higher resolutions cost more.
Not for: generating diagrams, charts, or data visualizations from structured input, and not for analyzing or describing an existing image — this skill only writes image files.
Requires: uv, network access, and a Gemini API key (see the API Key section below).
Run the script by absolute path from the user's current working directory, so images save where the user is working — do not cd into the skill directory first.
Set plugin root once (works in both Claude Code and Codex):
export PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-$CODEX_HOME}"
If your environment does not set either variable, replace ${PLUGIN_ROOT} in the commands below with your plugin root path manually.
Generate new image:
uv run ${PLUGIN_ROOT}/skills/kramme:visual:generate-image/scripts/generate_image.py --prompt "your image description" --filename "output-name.png" [--resolution 1K | 2K | 4K]
Edit existing image:
uv run ${PLUGIN_ROOT}/skills/kramme:visual:generate-image/scripts/generate_image.py --prompt "editing instructions" --filename "output-name.png" --input-image "path/to/input.png" [--resolution 1K | 2K | 4K]
The Gemini 3 Pro Image API supports three resolutions (uppercase K required):
Map user requests to API parameters:
1K1K2K4KEditing: when no resolution is specified, the script matches the output to the input image's dimensions (≥3000px → 4K, ≥1500px → 2K, otherwise 1K). Pass --resolution explicitly to override this and control cost.
The script reads the key from the --api-key argument first, then the GEMINI_API_KEY environment variable. Prefer the environment variable — values passed as command arguments are visible in process listings, shell history, and logs.
Set it inline for a single command so it is not stored as a named flag or persisted in the session:
GEMINI_API_KEY="<key>" uv run ${PLUGIN_ROOT}/skills/kramme:visual:generate-image/scripts/generate_image.py --prompt "..." --filename "..."
Use --api-key only when the environment variable cannot be set. If the user pastes a key in chat, prefer the inline prefix above.
If no key is available, the script exits with an error.
Generate filenames with the pattern: yyyy-mm-dd-hh-mm-ss-name.png
Format: {timestamp}-{descriptive-name}.png
yyyy-mm-dd-hh-mm-ss (24-hour format)x9k2, a7b3)Examples:
2025-11-23-14-23-05-japanese-garden.png2025-11-23-15-30-12-sunset-mountains.png2025-11-23-16-45-33-robot.png2025-11-23-17-12-48-x9k2.pngWhen the user wants to modify an existing image:
--input-image parameter with the path to the imageFor generation: Pass user's image description as-is to --prompt. Only rework if clearly insufficient.
For editing: Pass editing instructions in --prompt (e.g., "add a rainbow in the sky", "make it look like a watercolor painting")
Preserve user's creative intent in both cases.
development
Compare an existing PR's title and body against the actual branch diff and report drift — false claims, missing major changes, stale scope, missing risk callouts. Use after pushing changes to a branch with an open PR, or before requesting review. Read-only by default; add --fix to delegate to kramme:pr:generate-description for an updated description. Complements kramme:pr:code-review (which checks description accuracy as one signal among many code-quality checks) by being a fast, focused, single-purpose check that runs in seconds.
tools
Reviews plugin skills for focused scope, progressive disclosure, portability, safety, retry behavior, and documentation quality. Use when auditing a SKILL.md, skill directory, or proposed skill text against skill-authoring standards. Not for creating new skills, editing skills, or reviewing ordinary application code.
tools
Reviews recent agent session transcripts to find repeated manual workflows or repeated user asks, then proposes and optionally scaffolds only useful new skills or custom subagents. Use when the user asks to inspect recent sessions, find automation opportunities, or create reusable workflows from repeated work. Not for summarizing one session, general retrospectives, or codebase refactoring.
data-ai
Remove all DONE issues and renumber remaining issues within each prefix group. Not for editing live issue content, archiving still-open issues, or moving issues between prefix groups.