App icon gen
Design, generate, package, repair, and verify polished app icons from briefs, brand assets, references, SVGs, existing icons, and generated concepts.
npx -y skills add xzhih/app-icon-skill --skill app-icon-genAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when creating, repairing, converting, packaging, or verifying app icons for any platform from briefs, references, brand marks, SVG/logo/text assets, generated concepts, or existing icons; use the optional Apple adapter when Icon Composer output is requested.
SKILL.md
11.2 KB, as published. Nobody here has run it
App Icon Gen
Create reusable cross-platform icon source assets from a JSON spec. The normal route is semantic layered authoring: a small set of meaningful SVG/base-shape layers or deliberately clean PNG fallback layers, rounded preview assets, unrounded app/source assets, and verification evidence. Apple Icon Composer packaging is an optional adapter, not the default contract.
This skill may export rendered PNGs with Icon Composer's bundled ictool when it is locally available on macOS. It does not prove app integration or final platform rendering beyond those exported PNG files.
Hard Contract
For every new or repaired icon, use one generation root: the user-facing delivery directory.
target_platformsis optional metadata. Accept the user's platform labels without inferring, expanding, or rejecting non-Apple platforms.- Always deliver reusable SVG/PNG source assets first. After reviewing them, ask whether the user wants a native platform export; do not claim a native Android, Windows, Web, tvOS, or visionOS package without its dedicated adapter.
- Request Apple packaging with an Apple target (
iOS,iPadOS,macOS, orwatchOS) or an Appledeliverable_type. Only then create a.iconbundle and optionalapple/renders. - When
watchOSis requested through the Apple adapter, review the circular crop and 1088px Default render separately. - Write the current spec at
<delivery>/tmp/work/spec.jsonbefore generation. - When a user source image/vector or selected generated concept exists, keep exactly one visible source evidence file at
<delivery>/<delivery-name>.origin.pngor<delivery>/<delivery-name>.origin.svg; put unselected candidates under<delivery>/tmp/work/. - Put every intermediate artifact under
<delivery>/tmp/work/as it is created: masks, threshold tests, extracted foregrounds, traced candidates, comparison images, notes, and repair scratch. - Generate with
author-icon --spec <delivery>/tmp/work/spec.json --out <delivery>. - Reruns may overwrite generated root files,
layers/,.icon/,apple/, andtmp/reports/; they must preserve existingtmp/work/except for replacingtmp/work/spec.jsonwith the current spec, and preserve.origin.png/.origin.svgunless the selected source changes. - Do not generate a full package in another directory and reorganize or copy it into the delivery directory.
- Do not patch generated
layers/,.icon/Assets, oricon.json; update the spec and regenerate.
Normal delivery layout:
<delivery>/
<delivery-name>.preview.svg
<delivery-name>.preview.png
<delivery-name>.svg
<delivery-name>.png
<delivery-name>.origin.png or <delivery-name>.origin.svg # when source evidence exists
<Name>.icon/ # optional Apple adapter
apple/ # optional Apple renders
iOS/{Default,Dark,TintedLight,TintedDark,ClearLight,ClearDark}.png
macOS/{Default,Dark,TintedLight,TintedDark,ClearLight,ClearDark}.png
watchOS/Default.png
layers/
tmp/
reports/
work/
spec.json
The visible delivery root must stay limited to .svg, .png, .preview.svg, .preview.png, .origin.png, .origin.svg, .icon, apple/, layers/, and tmp/.
Workflow
- Inspect supplied sources before asking questions: attachments, paths, app metadata, existing assets, screenshots, SVG/logo files,
.iconbundles, and project-local source vectors. - Choose one route: source conversion, generated concept, direct semantic authoring, or existing package refinement. Record target platforms only when they are known.
- Read only the route-specific references below.
- Write or update
<delivery>/tmp/work/spec.json; keep layers in bottom-to-top visual order. If source evidence exists, copy the selected source or concept to<delivery>/<delivery-name>.origin.pngor<delivery>/<delivery-name>.origin.svg. - Generate directly into the delivery directory. The generic SVG/PNG assets are always written. When the Apple adapter is requested and Icon Composer.app's
ictoolis available, it additionally writes Apple renders underapple/. - Run
verify; add--referencewhen a reference image exists. Normalize the reference first only when its canvas/size/mask differs from the preview canvas. - Inspect generated preview/app assets at full size and 64px plus the applicable verification evidence. If an Apple adapter exists, also inspect
.icon/Assets,icon.json, and any requested Apple renders. Recordvisual-review.jsonwhen a human decision is needed; do not treat missing optional platform exports as a generic failure. - If verification or inspection fails, repair the spec, regenerate, and verify again.
Run commands from the skill directory, or use an absolute --prefix to scripts/. Node package metadata lives in scripts/package.json; do not run npm install at the skill root.
npm --prefix scripts ci
delivery="/absolute/path/to/my-icon"
mkdir -p "$delivery/tmp/work"
npm --prefix scripts run author-icon -- \
--spec "$delivery/tmp/work/spec.json" \
--out "$delivery"
npm --prefix scripts run verify -- --out "$delivery"
With a reference:
npm --prefix scripts run verify -- \
--out "$delivery" \
--reference "/absolute/path/to/reference.png"
Use absolute paths for script inputs and outputs.
author-icon refuses to replace a non-empty directory it does not own. It refreshes only leaf files in the previous style report's validated generated_files ownership manifest, fails closed when that manifest disagrees with the safe report-derived file set, removes generated directories only after they become empty, and preserves other files even when they sit inside layers/, .icon/, or apple/. Clean an unowned directory outside this workflow only after inspecting it yourself.
Verification Evidence Ladder
Do not repair or switch routes from side-by-side and mean delta alone. Choose evidence by failure type and use it before changing the spec:
- Whole-icon likeness: inspect
reference-side-by-side.pngfirst for overall style, scale, mass, and obvious drift. - Geometry, placement, proportion, and layer alignment: inspect
reference-overlay.pngbefore deciding a foreground is shifted, too small/large, or the wrong shape. - Color, background, glow, shadow, antialiasing, and material drift: inspect
reference-diff.pngand the verifier diagnostics before changing fills or adding/removing material. - Rounded app-mask/frame drift: treat
frame_or_rounded_mask_residual_dominatedas frame normalization evidence rather than foreground shape failure; inspect the interior diff before repairing the mark. - Severe local mismatch: read
local_sample_gate,local_samples, andtile_heatmap; translate hotspots into a concrete repair hypothesis instead of treating them as another score. - Smooth symbolic marks, mascots, loops, ribbons, and brand-like contours: use overlay/diff plus bbox/centroid or
shape-factswhen the visual error is ambiguous. - Simple SVG primitives: run
geometry-auditon the affected layer after repair; a numeric pass does not excuse wobbly curves, bad tangents, or path noise. - PNG fallback: inspect the isolated PNG asset and
png_layer_hygiene; reference mean success is not enough.
Repair order for reference-driven work: geometry/placement first, then scale/proportion, then color/background, then renderer/material differences. Only choose PNG fallback after the relevant SVG route has failed with evidence from overlay/diff/local diagnostics or isolated asset inspection; for clean separable silhouettes, the relevant SVG route includes component-level traced SVG before PNG fallback.
Reference Routing
references/source-requirements.md: provenance, identity risk, source classification, background route, and PNG fallback risk.references/concept-prompts.md: no source artwork exists and image generation or direct concept authoring is needed.references/semantic-icon-design.md: JSON design contract shared by no-reference image generation and direct semantic authoring.references/style-directions.md: SVG-convertible style directions forsemantic_icon_design.references/semantic-authoring.md: JSON spec structure,semantic_review,source_analysis, layer order, text, and PNG fallback decisions.references/cookbook.md: route is ambiguous or the icon matches a known family such as geometric marks, letterforms, text, material references, or overlapping plates.references/icon-composer.md:.iconstructure, fill formats, Icon Composer material boundaries, asset formats, andicon.json.references/verification.md: verifier behavior, reference comparison, visual-review sidecars, batch summaries, and review gates.references/optimization-methods.md: geometry polish, bitmap extraction, shape diagnostics, localized repair, or foreground cleanup.references/failure-modes.md: dirty PNGs, wrong semantics, preview/fill drift, source-vector needs, path repair, or misleading numeric passes.references/golden-examples.md: small known-good specs and anti-patterns.examples/semantic-image-prompts/README.md: index of no-reference image prompt examples; read only the matching example file after choosing a style direction.
Completion Gate
Complete only when all applicable checks are true:
- Required root assets,
layers/,tmp/reports/style-report.json, andtmp/work/spec.jsonexist..icon/andapple/exist only when the Apple adapter was requested. - When a source/reference/generated concept drove the package,
<delivery-name>.origin.pngor<delivery-name>.origin.svgexists at the delivery root and is not imported into.icon/Assets. - Preview SVG/PNG are the rounded local visual contract; root SVG/PNG are the unrounded app/source canvas.
- An Apple adapter, when requested, contains clean
.icon/Assetsrather than a single flattened app icon unless the accepted route is a documented PNG fallback. svg_material_warningsand packagewarningsare empty. Everypng_layer_hygieneentry passes the edge/residue checks; the array may be non-empty for legitimate clean PNG assets.- For reference matching, side-by-side, overlay, and diff were generated and inspected; overlay/diff/local diagnostics were used to justify any repair or route change; mean delta,
visual_delta_gate, andlocal_sample_gateeither pass the route target or the accepted semantic tradeoff is recorded. - No simple background is duplicated into
.icon/Assets; no preview-only rim, glow, bevel, shadow, highlight, border, or mask artifact is imported as source material.
Do not widen completion into Icon Composer import, app integration, publication, or platform-specific final rendering unless the user explicitly asks for that.
Final response must include the delivery path, generic source assets, target-platform metadata when supplied, optional adapter outputs, source evidence when applicable, and the preview/assets actually inspected. Ask before claiming or attempting a native export not supported by an installed adapter.