About image-poster
An image-generation skill that turns a brief into a structured prompt and dispatches it through a unified media command. It is intended for producing a single finished image per turn unless variations are requested.
Key features
- 01Structure prompts from a brief
- 02Use project model, aspect, and style notes
- 03Dispatch through the media command
- 04Save generated images to the project
- 05Return prompt summary and filename
Use cases
- 01Create a finished image asset from a short brief
- 02Generate an image at the project's specified aspect ratio
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ mphinance/ alpha-skills --skill image-posterAfter installing, type/image-posterin Claude Code to confirm it loaded.
Bundled filesexample.htmlREADME.md
Details
From the project READMEImage Poster Skill
Produce one finished image asset per turn unless the user asks for variations. Image generation rewards a tight, structured prompt — your job is to assemble that prompt from the user's brief, then dispatch.
Resource map
image-poster/
├── SKILL.md ← you're reading this
└── example.html ← what the resulting card looks like in Examples
Workflow
Step 0 — Read the project metadata
The active project carries imageModel, imageAspect, and (optional)
imageStyle notes. Use them as the upstream model + canvas + style
anchor; only ask the user to fill them in if they're marked (unknown — ask).
Step 1 — Compose the prompt
Plan in this exact order before calling any tool:
- Subject + composition — what is in the frame, where, at what scale; eye-line and crop.
- Lighting + mood — natural / studio / moody; warm / cool; key plus rim plus fill; time of day if outdoor.
- Palette + textures — hex anchors when the user gave a brand palette; otherwise a 3-word mood tag (e.g. "muted ochre + ink").
- Camera / lens — only if the user wants photographic realism ("85mm portrait, shallow DOF") or a specific film stock.
- What to avoid — common AI-slop patterns ("no extra fingers, no warped text, no logo placeholders").
Step 2 — Dispatch via the media contract
Use the unified dispatcher — do not call upstream provider APIs by hand. Run from your shell tool:
node "$OD_BIN" media generate \
--project "$OD_PROJECT_ID" \
--surface image \
--model "<imageModel from metadata>" \
--aspect "<imageAspect from metadata>" \
--output "<short-descriptive-name>.png" \
--prompt "<the full assembled prompt from Step 1>"
The command prints one line of JSON: {"file": {"name": "...", ...}}.
The daemon writes the bytes into the project folder; the FileViewer
picks it up automatically.
Step 3 — Hand off
Reply with a one-paragraph summary of the prompt you used and the
filename returned by the dispatcher (e.g. I generated hero-poster.png
with gpt-image-2 at 1:1.). Do not emit an <artifact> tag.
Hard rules
- One image per turn unless asked for variations.
- Honor
imageAspectexactly — the upstream cost is the same; matching the aspect avoids a re-render. - No filler typography in the image itself unless the user asked for in-frame text. Real copy beats lorem.
- Save every render — never describe an image without producing the file. The user expects something to open in the file viewer.