AgentStack
SKILL verified MIT Self-run

Icon Export

skill-paldom-icon-designer-skills-icon-export · by Paldom

Exports an approved master icon SVG into platform assets - favicon.ico + SVG favicon, apple-touch-icon, PWA 192/512 + maskable, App/Play Store PNGs, macOS icns, GitHub social preview, plus HTML/manifest snippets. Use when the user asks to export, generate, or ship favicons, app icon files, or store icons, or to wire the exported set into a repo. Not for designing, ideating, or critiquing icons.

No reviews yet
0 installs
3 views
0.0% view→install

Install

$ agentstack add skill-paldom-icon-designer-skills-icon-export

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Icon Export? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

icon-export

Deterministically fan the approved master (icon-design/icon.svg) out into every platform asset, with the one rule that prevents the classic shipping bug: platform-masked targets get the full-square variant; self-rendered surfaces keep the rounded rectangle. iOS, Play, apple-touch-icon and PWA-maskable apply their own mask — feeding them a pre-rounded icon double-masks it and leaves transparent corner slivers.

When NOT to use

  • No approved master yet → icon-draw then icon-critique produce and gate

icon-design/icon.svg; don't promote a random SVG yourself.

  • Concepting (icon-brief), drawing (icon-draw), reviewing (icon-critique).
  • Arbitrary SVG→PNG conversion, photo resizing, og:images for articles.

Workflow

  1. Locate the master. Default icon-design/icon.svg. If it doesn't exist,

stop and route to icon-draw/icon-critique (or ask which file the user considers approved). Never silently pick a candidate.

  1. Run the exporter (deterministic; does everything below itself):

``bash python3 "${CLAUDE_SKILL_DIR}/scripts/export_icons.py" icon-design/icon.svg \ [--out DIR] [--targets web,apple,android,github] [--name icon] [--force] ``

  • Autodetects a renderer (rsvg-convert → resvg → cairosvg → inkscape →

ImageMagick → macOS qlmanage+sips); exits 2 with install hints if none.

  • Derives the square variant (background rx=0) and the **1280×640

social banner** internally.

  • Refuses to overwrite existing files (exit 3) unless --force — list

the collisions to the user and get an explicit go-ahead first.

  • Validates every PNG's real dimensions and the ICO structure; exit 1 on

any failure. Relay failures verbatim; don't hand-render around them.

  1. Wire into the repo if asked. --out public/ (or the site's static

dir) plus the head tags from snippet.html and the icons array from manifest.webmanifest. For README use, reference the SVG master directly.

  1. Report. The WROTE table (file, size), where the snippets go, and the

platform caveats from the gotchas below that apply.

Output spec (default icon-design/export/)

| Target | Files | Source variant | | --- | --- | --- | | web | favicon.ico (16+32+48), icon.svg, apple-touch-icon.png (180), icon-192.png, icon-512.png, icon-mask-512.png, snippet.html, manifest.webmanifest | rounded; square for touch-icon + maskable | | apple | appstore-1024.png, icon.iconset/ (10 files, iconutil naming), icon.icns (macOS only) | square for store; rounded for icns | | android | play-store-512.png | square | | github | social-preview-1280x640.png, avatar-512.png | banner / square |

Everything size-validated; exporter exit code 0 is the done signal.

Gotchas

  • Never round the store assets. If a platform shows rounded corners it

applies them itself. The exporter's square variant exists for exactly this (the GitHub avatar also ships square — GitHub masks avatars).

  • App Store uploads want a fully opaque, flattened 1024 PNG. The exporter

detects an alpha channel on store PNGs and flattens automatically when ImageMagick is present; otherwise it prints the exact magick … -alpha remove command — relay that warning, don't drop it.

  • The exporter renders only house-subset masters (it security-scans the SVG

first and fails closed on scripts/external refs/embedded raster) — "run it on this random SVG I found" is out of contract.

  • The maskable icon's glyph must sit in the centered 40%-radius safe circle —

icon-draw's linter warned about this at draw time; if the mask crops the glyph, fix the master, not the export.

  • qlmanage fallback is fine for previews/dev; for a real release install

librsvg (brew install librsvg) and re-run — antialiasing quality differs.

  • iOS 26+ layered "Liquid Glass" icons are built in Apple's Icon Composer from

the flat 1024 master; that last mile happens in Apple tooling, not here.

  • Android adaptive icons (launcher, layered 108dp) need foreground/

background layers in the app project; this skill ships the Play Store 512 and the maskable web icon — flag adaptive-icon work as app-project work.

  • SVGO is optional and not required for the master (hand-authored subset SVG

is already lean); if you run it, keep the viewBox and re-render afterwards to confirm nothing visually changed.

  • Details and citations for every size: references/platform-targets.md.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.