Image prompt handoff
Sometimes the right move is to hand the prompt to the user rather than fire it through a pipeline. Web UIs like gemini.google.com run a different (often better) image model than the headless bridge, they let the user attach reference images directly, and they work when a local quota is exhausted.
This skill packages a prompt for that handoff: the text to paste, the images to attach, and where the prompt came from.
agy now does a rougher version of this automatically when its own image quota runs out —
it prints a gemini.google.com / ChatGPT / Midjourney block and writes the prompt to
~/.gemini/antigravity-cli/brain/<uuid>/scratch/. This skill still owns the deliberate
handoff (reference-image manifest, source-doc list, GFX rule folding).
Craft the prompt first
This skill is delivery only. If the prompt doesn't exist yet, write it with the gfx-prompt
skill first — that's where the render-language method, the GFX rule set, and the correction loop
live. Come back here to package the result.
Note on the standing "don't show the prompt" rule
There's a standing preference in this workspace that image prompts aren't shown in chat — only the resulting image. This skill is the explicit exception, because showing the text is the deliverable. Don't suppress it here.
Output format
Use this structure. It's built so the user can act on it without scrolling back or asking follow-ups.
1. The prompt
A single fenced code block containing only the prompt text — nothing else inside the fence, so a one-click copy grabs exactly what should be pasted.
Keep the prompt engine-appropriate:
- Gemini web / ChatGPT: prose paragraphs work well. Reference images get attached, so the "STEP 1 — study the reference" framing still applies and should stay.
- Midjourney / SD-style: comma-separated descriptor phrases, aspect ratio as a flag if the engine takes one.
If unsure which engine, ask — the phrasing differs enough to matter.
2. Images to attach
A short list naming each reference image, its full path, and what the engine should take from it. Paths matter because the user has to find the file to upload.
Attach these 2 images:
1. refs/starnix-avatar.png — character identity: hair, face decal, outfit
2. refs/triller15-avatar.png — second character: hair and face only, outfit is overridden
If a needed reference doesn't exist on disk yet, fetch it first (Roblox avatars come from the
public thumbnail API — see the gfx-prompt skill) and say where you saved it.
3. Related files
Which docs the prompt draws on, so the user can trace or amend it. Typically:
- the planning/spec file holding the acceptance criteria
- any knowledge doc whose rules the prompt encodes
- prior versions, if this is a revision
Skip this section entirely if there's nothing meaningful to link — don't pad it.
4. What to watch for
Two or three specific things to check in the result, drawn from what has actually gone wrong before on this kind of image. Not a generic checklist — the live failure modes.
Example: "Check the face renders as a flat drawn decal, not sculpted 3D. Check both feet are planted, not mid-air. Check the grade is a single blue duotone, not neutral grey."
This is what turns a returned image into an actionable next round instead of "hmm, something's off".
After they generate
When the user brings back a result, switch to the correction loop in
gfx-prompt/references/correction-loop.md: name the specific deviation, write a delta that
restates what was correct, add the failure to the DO NOT INCLUDE block, and hand back a revised
prompt in the same format.
Saving the prompt
Write the prompt to a file as well as showing it, so it survives the conversation and can be
diffed against the next revision. In this workspace that's ClaudeFX/Planning/<initiative>/
alongside the spec. Mention the path when you hand it over.