# Image Handoff

> Hand an image prompt to the user as copy-pasteable text instead of sending it through the Antigravity bridge — for pasting into gemini.google.com (Gemini 3.1 Pro image generation), ChatGPT, Midjourney, or any web image tool. Use this when the user says to give them the prompt, wants to run it themselves, mentions the Gemini website or another web UI, when the Antigravity image quota is exhausted, or when they want to see the prompt text before it gets generated. Outputs the prompt in a copy-ready block plus a manifest of which reference images to attach and which docs the prompt draws on.

- Skill: `presidenteog/image-handoff` (Agent Skill)
- Install (CLI): `npx skillmds@latest add presidenteog/image-handoff`
- Raw SKILL.md: https://api.skillmd.com/api/skills/presidenteog/image-handoff/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: PresidenteOG (https://skillmd.com/u/presidenteog)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/presidenteog/image-handoff

---


# 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.

