What problem does it solve? Hand-authoring SVG icons ad hoc is error-prone and risky: SVG is executable XML in a browser context, and unreviewed assets can carry scripts or external references. This Skill provides a deterministic, security-reviewed pipeline for producing small graphic assets (icons, favicons, simple marks) that are sanitized, rendered for visual inspection, and only applied after explicit human approval. ## Core Features & Use Cases - Reuse-or-constrained-primitive routing: Reuses an existing repo icon when one fits, or hand-authors a small reviewable SVG from basic shapes; text content uses real <text> elements with a fixed safe font list. - Mandatory SVG allowlist and SVGO normalization: Every candidate passes scripts/svg_allowlist.py, which rejects <script>, <foreignObject>, <image>, external hrefs, and non-allowlisted attributes outright rather than stripping them. - Multi-size contact-sheet rendering: Renders each candidate at 16/32/48/128px on light and dark backgrounds via @resvg/resvg-js, with a manifest, so legibility at small sizes is verified before selection. - Hard human gate and provenance receipt: Never auto-applies a candidate; a human picks one, then the asset is packaged as a favicon and a provenance entry is logged. - Use Case: You need a 32px monochrome favicon for an open-source project. The Skill inspects existing assets, authors a constrained SVG, sanitizes and renders it at all favicon sizes, and waits for your pick before wiring a <link rel="icon"> tag. ## Quick Start Ask the agent to run the graphic skill to create a 32px monochrome favicon for your project and review the rendered contact sheet before choosing one.