image-poster
nexu-io/open-design · Agent Skill
為海報、關鍵藝術和插圖生成圖像,並利用各種可選模型。
前往安裝 ↓安裝選項
預設為含檢閱步驟的提示。您可以切換到直接指令。
複製提示,貼入 Claude、Codex 或其他助手,它會檢視技能頁面並安裝。
I'd like to install this Claude Code skill: https://github.com/nexu-io/open-design/tree/main/design-templates/image-poster Please review the SKILL.md file, verify the skill is legitimate, then copy the skill folder into .claude/skills/ of my project.
直接指令會跳過檢閱 — 請先檢查原始碼。
npx skills add https://github.com/nexu-io/open-design/tree/main/design-templates/image-poster
安裝前請先檢視 SKILL.md 與相關檔案。點擊檔案即可預覽。
SKILL.md 內容
作者原文 · 唯讀Image 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. When a value is not provided, infer a safe default from the brief and
media contract. Ask only when the choice would materially change the requested
result and no safe default can be inferred.
Step 1 — Compose the prompt
Plan in this exact order before calling any tool:
1. Subject + composition — what is in the frame, where, at what
scale; eye-line and crop.
2. Lighting + mood — natural / studio / moody; warm / cool; key
plus rim plus fill; time of day if outdoor.
3. Palette + textures — hex anchors when the user gave a brand
palette; otherwise a 3-word mood tag (e.g. "muted ochre + ink").
4. Camera / lens — only if the user wants photographic realism
("85mm portrait, shallow DOF") or a specific film stock.
5. 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:
"$OD_NODE_BIN" "$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.