{"id":"eb725785-2832-4004-822d-77e01b3e5dc9","shortId":"9TQbAZ","kind":"skill","title":"image-poster","tagline":"Single-image generation skill for posters, key art, and editorial\nillustrations. Defaults to gpt-image-2 but is provider-agnostic — the\nsame workflow drives Flux, Imagen, or Midjourney via the active\nupstream tooling. Output is one or more PNG/JPEG files saved to the\nproject fold","description":"# Image Poster Skill\n\nProduce **one** finished image asset per turn unless the user asks for\nvariations. Image generation rewards a tight, structured prompt — your\njob is to assemble that prompt from the user's brief, then dispatch.\n\n## Resource map\n\n```\nimage-poster/\n├── SKILL.md         ← you're reading this\n└── example.html     ← what the resulting card looks like in Examples\n```\n\n## Workflow\n\n### Step 0 — Read the project metadata\n\nThe active project carries `imageModel`, `imageAspect`, and (optional)\n`imageStyle` notes. Use them as the upstream model + canvas + style\nanchor; only ask the user to fill them in if they're marked `(unknown\n— ask)`.\n\n### Step 1 — Compose the prompt\n\nPlan in this exact order before calling any tool:\n\n1. **Subject + composition** — what is in the frame, where, at what\n   scale; eye-line and crop.\n2. **Lighting + mood** — natural / studio / moody; warm / cool; key\n   plus rim plus fill; time of day if outdoor.\n3. **Palette + textures** — hex anchors when the user gave a brand\n   palette; otherwise a 3-word mood tag (e.g. \"muted ochre + ink\").\n4. **Camera / lens** — only if the user wants photographic realism\n   (\"85mm portrait, shallow DOF\") or a specific film stock.\n5. **What to avoid** — common AI-slop patterns (\"no extra fingers, no\n   warped text, no logo placeholders\").\n\n### Step 2 — Dispatch via the media contract\n\nUse the unified dispatcher — do **not** call upstream provider APIs by\nhand. Run from your shell tool:\n\n```bash\n\"$OD_NODE_BIN\" \"$OD_BIN\" media generate \\\n  --project \"$OD_PROJECT_ID\" \\\n  --surface image \\\n  --model \"<imageModel from metadata>\" \\\n  --aspect \"<imageAspect from metadata>\" \\\n  --output \"<short-descriptive-name>.png\" \\\n  --prompt \"<the full assembled prompt from Step 1>\"\n```\n\nThe command prints one line of JSON: `{\"file\": {\"name\": \"...\", ...}}`.\nThe daemon writes the bytes into the project folder; the FileViewer\npicks it up automatically.\n\n### Step 3 — Hand off\n\nReply with a one-paragraph summary of the prompt you used and the\nfilename returned by the dispatcher (e.g. *I generated `hero-poster.png`\nwith `gpt-image-2` at 1:1.*). Do **not** emit an `<artifact>` tag.\n\n## Hard rules\n\n- One image per turn unless asked for variations.\n- Honor `imageAspect` exactly — the upstream cost is the same; matching\n  the aspect avoids a re-render.\n- No filler typography in the image itself unless the user asked for\n  in-frame text. Real copy beats lorem.\n- Save every render — never describe an image without producing the\n  file. The user expects something to open in the file viewer.","tags":["image","poster","open","design","nexu-io","agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design"],"capabilities":["skill","source-nexu-io","skill-image-poster","topic-agent-skills","topic-ai-agents","topic-ai-design","topic-byok","topic-claude","topic-claude-code-for-design","topic-claude-design","topic-coding-agents","topic-design-systems","topic-design-tools","topic-desktop-app","topic-figma-alternative"],"categories":["open-design"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/nexu-io/open-design/image-poster","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add nexu-io/open-design","source_repo":"https://github.com/nexu-io/open-design","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 36607 github stars · SKILL.md body (2,571 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-11T06:52:24.613Z","embedding":null,"createdAt":"2026-05-01T18:52:32.815Z","updatedAt":"2026-05-11T06:52:24.613Z","lastSeenAt":"2026-05-11T06:52:24.613Z","tsv":"'0':110 '1':149,162,356,357 '2':21,179,257,354 '3':197,211,324 '4':219 '5':238 '85mm':229 'activ':37,116 'agnost':26 'ai':244 'ai-slop':243 'anchor':133,201 'api':272 'art':12 'ask':65,135,147,370,400 'aspect':295,384 'assembl':79 'asset':59 'automat':322 'avoid':241,385 'bash':280 'beat':408 'bin':283,285 'brand':207 'brief':86 'byte':312 'call':159,269 'camera':220 'canva':131 'card':103 'carri':118 'command':300 'common':242 'compos':150 'composit':164 'contract':262 'cool':186 'copi':407 'cost':378 'crop':178 'daemon':309 'day':194 'default':16 'describ':414 'dispatch':88,258,266,345 'dof':232 'drive':30 'e.g':215,346 'editori':14 'emit':360 'everi':411 'exact':156,375 'exampl':107 'example.html':99 'expect':423 'extra':248 'eye':175 'eye-lin':174 'file':46,306,420,429 'filenam':341 'fileview':318 'fill':139,191 'filler':391 'film':236 'finger':249 'finish':57 'flux':31 'fold':51 'folder':316 'frame':169,404 'gave':205 'generat':7,69,287,348 'gpt':19,352 'gpt-imag':18,351 'hand':274,325 'hard':363 'hero-poster.png':349 'hex':200 'honor':373 'id':291 'illustr':15 'imag':2,6,20,52,58,68,92,293,353,366,395,416 'image-post':1,91 'imageaspect':120,374 'imagemodel':119 'imagen':32 'imagestyl':123 'in-fram':402 'ink':218 'job':76 'json':305 'key':11,187 'len':221 'light':180 'like':105 'line':176,303 'logo':254 'look':104 'lorem':409 'map':90 'mark':145 'match':382 'media':261,286 'metadata':114 'midjourney':34 'model':130,294 'mood':181,213 'moodi':184 'mute':216 'name':307 'natur':182 'never':413 'node':282 'note':124 'ochr':217 'od':281,284,289 'one':42,56,302,331,365 'one-paragraph':330 'open':426 'option':122 'order':157 'otherwis':209 'outdoor':196 'output':40,296 'palett':198,208 'paragraph':332 'pattern':246 'per':60,367 'photograph':227 'pick':319 'placehold':255 'plan':153 'plus':188,190 'png':297 'png/jpeg':45 'portrait':230 'poster':3,10,53,93 'print':301 'produc':55,418 'project':50,113,117,288,290,315 'prompt':74,81,152,298,336 'provid':25,271 'provider-agnost':24 're':96,144,388 're-rend':387 'read':97,111 'real':406 'realism':228 'render':389,412 'repli':327 'resourc':89 'result':102 'return':342 'reward':70 'rim':189 'rule':364 'run':275 'save':47,410 'scale':173 'shallow':231 'shell':278 'singl':5 'single-imag':4 'skill':8,54 'skill-image-poster' 'skill.md':94 'slop':245 'someth':424 'source-nexu-io' 'specif':235 'step':109,148,256,323 'stock':237 'structur':73 'studio':183 'style':132 'subject':163 'summari':333 'surfac':292 'tag':214,362 'text':252,405 'textur':199 'tight':72 'time':192 'tool':39,161,279 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-design' 'topic-byok' 'topic-claude' 'topic-claude-code-for-design' 'topic-claude-design' 'topic-coding-agents' 'topic-design-systems' 'topic-design-tools' 'topic-desktop-app' 'topic-figma-alternative' 'turn':61,368 'typographi':392 'unifi':265 'unknown':146 'unless':62,369,397 'upstream':38,129,270,377 'use':125,263,338 'user':64,84,137,204,225,399,422 'variat':67,372 'via':35,259 'viewer':430 'want':226 'warm':185 'warp':251 'without':417 'word':212 'workflow':29,108 'write':310","prices":[{"id":"6d4844ef-c062-4e47-8946-f1be4b9b4eca","listingId":"eb725785-2832-4004-822d-77e01b3e5dc9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"nexu-io","category":"open-design","install_from":"skills.sh"},"createdAt":"2026-05-01T18:52:32.815Z"}],"sources":[{"listingId":"eb725785-2832-4004-822d-77e01b3e5dc9","source":"github","sourceId":"nexu-io/open-design/image-poster","sourceUrl":"https://github.com/nexu-io/open-design/tree/main/skills/image-poster","isPrimary":false,"firstSeenAt":"2026-05-01T18:52:32.815Z","lastSeenAt":"2026-05-11T06:52:24.613Z"},{"listingId":"eb725785-2832-4004-822d-77e01b3e5dc9","source":"skills_sh","sourceId":"nexu-io/open-design/image-poster","sourceUrl":"https://skills.sh/nexu-io/open-design/image-poster","isPrimary":true,"firstSeenAt":"2026-05-07T20:43:01.212Z","lastSeenAt":"2026-05-07T22:41:56.007Z"}],"details":{"listingId":"eb725785-2832-4004-822d-77e01b3e5dc9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"nexu-io","slug":"image-poster","github":{"repo":"nexu-io/open-design","stars":36607,"topics":["agent-skills","ai-agents","ai-design","byok","claude","claude-code-for-design","claude-design","coding-agents","design-systems","design-tools","desktop-app","figma-alternative","generative-ai","hermes-agent","local-first","nextjs","no-code","prototyping","ui-generator","vibe-coding"],"license":"apache-2.0","html_url":"https://github.com/nexu-io/open-design","pushed_at":"2026-05-11T06:48:43Z","description":"🎨 Local-first, open-source alternative to Anthropic's Claude Design. ⚡ 19 Skills · ✨ 71 brand-grade Design Systems 🖼 Generate web · desktop · mobile prototypes · slides · images · videos · HyperFrames 📦 Sandboxed preview · HTML/PDF/PPTX/MP4 export 🤖 Runs on Claude Code / Codex / Cursor / Gemini / OpenCode / Qwen / Copilot / Hermes / Kimi CLI.","skill_md_sha":"7d93f618068fccb309941d6b875e8c4d3bf75a6f","skill_md_path":"skills/image-poster/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/nexu-io/open-design/tree/main/skills/image-poster"},"layout":"multi","source":"github","category":"open-design","frontmatter":{"name":"image-poster","description":"Single-image generation skill for posters, key art, and editorial\nillustrations. Defaults to gpt-image-2 but is provider-agnostic — the\nsame workflow drives Flux, Imagen, or Midjourney via the active\nupstream tooling. Output is one or more PNG/JPEG files saved to the\nproject folder."},"skills_sh_url":"https://skills.sh/nexu-io/open-design/image-poster"},"updatedAt":"2026-05-11T06:52:24.613Z"}}