asset-set
Skill248 starsChanged 3 months agoMITView on GitHub
Generate a complete, style-consistent set of image assets for a web or app project in one pass — favicons, app icons, OG/social cards, hero images, empty-state illustrations, or a matching icon family. Use when the user asks for "icons for", "assets for", "favicon", "og image", "app icon", "a set of illustrations", or is setting up branding for a new project.
In this repository5 other files it gives its agents.
- ask-codexSkill
- codex-delegateSkill
- codex-reviewSkill
- edit-imageSkill
- generate-imageSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Before generating anything, write one style sentence you will paste verbatim into every prompt in the set.
- Distinctive: line 75
Verify visually: Read every generated PNG and check the set actually looks coherent side by side — not just each image on its own.
- Distinctive: line 82
Use a Bash timeout of at least 300000 ms per generation.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Generate a consistent asset set
Individual images are the generate-image skill. This is for families of assets
that must look like they came from the same designer — which requires a shared
style contract, correct sizes, and correct filenames.
Step 1 — lock the style contract
Before generating anything, write one style sentence you will paste verbatim into every prompt in the set. It must pin down: art style, palette (hex codes), stroke weight, corner treatment, background, and perspective. For example:
Flat vector, 2px uniform stroke, palette #2563EB on #FFFFFF with #94A3B8 accents, 4px rounded corners, centered, generous padding, no gradients, no shadows, front-on view.
Pull the palette from the project when one exists — check tailwind.config.*,
CSS custom properties, a design tokens file, or an existing logo. Ask the user only
if nothing is discoverable.
Step 2 — generate
One call per asset, style sentence repeated in each:
codex-imagegen "<subject>. <style contract>" <path>.png --size <WxH>Generate the most important asset first (the logo mark or the hero), show it to the user, and only continue once they're happy. Regenerating a whole set after the fact wastes their quota.
For assets that must match one already generated, pass it as a reference so the model has the style in front of it, not just described:
codex-imagegen "a settings gear icon, same style as the reference" ./icons/settings.png --ref ./icons/home.pngStep 3 — derive the size variants locally
Do not regenerate for each size. Generate one large master and resample it with
ImageMagick (or sips on macOS) — it's instant, free, and pixel-consistent:
magick master.png -resize 512x512 icon-512.png
magick master.png -define icon:auto-resize=16,32,48,64 favicon.icoStandard recipes
Web favicon set — master at 1024x1024, then derive favicon.ico (16/32/48),
favicon-32x32.png, apple-touch-icon.png (180x180), icon-192.png, icon-512.png.
Social / OG card — generate at 1536x1024, resample to 1200x630 (1200x630 isn't directly generatable: 630 is not a multiple of 16). Leave the centre clear if a title will be overlaid; ask whether text should be baked in — text renders reliably, but baked text can't be localised later.
iOS / Android app icon — master at 1024x1024, no transparency, no rounded corners (the OS masks them), subject centred with ~10% safe margin.
Icon family — all at 1024x1024 with the identical style sentence, downscaled to the size the UI actually uses.
Empty states / illustrations — 1536x1024, same palette as the product, generous whitespace so copy can sit alongside.
Rules
- Verify visually. Read every generated PNG and check the set actually looks coherent side by side — not just each image on its own.
- Name and place files conventionally:
public/orassets/for web, kebab-case, size in the filename where a variant exists. - Budget honestly. A full favicon + OG + icon-family run is 8–12 generations and spends real ChatGPT quota. Say the expected count before you start and let the user trim the list.
- Use a Bash timeout of at least 300000 ms per generation.
- Only certain sizes are generatable: longest edge ≤ 3840, both edges multiples of 16, ratio ≤ 3:1, total pixels 655,360–8,294,400. Every standard icon size (16, 32, 180, 192, 512) is below that floor — which is exactly why you generate one large master and resample.
- Use the path the wrapper prints. Codex avoids overwriting existing files and
may write a versioned sibling (
icon-v2.png); the wrapper detects that and reports the real path.
For sets larger than about four images, hand the whole brief to the codex-artist
subagent so the generation loop stays out of the main conversation.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

