Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/aziontech/webkit/include-iconsgit clone --depth 1 https://github.com/aziontech/webkitWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00057 | $0.01578 |
| Opus 5 | $0.00028 | $0.00789 |
| Sonnet 5 | $0.00011 | $0.00316 |
| Haiku 4.5 | $0.00006 | $0.00158 |
Grade A, and why
include-icons scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are running /include-icons. Bring new icon SVGs into the @aziontech/icons package the right way, then prove they render. Never open a PR here — that is /open-pr's job.
User input: $ARGUMENTS
Source of truth
- Package + workflow:
packages/icons/README.md(§ Adding a new icon / colored icon). - Build orchestrator:
packages/icons/scripts/build.mjs. Font config:packages/icons/fantasticon.config.mjs. - Consumers:
apps/icons-gallery(catalog +color-catalog), StorybookFoundations/Icons.
The one decision that drives everything: monochrome vs colored
An icon font glyph is single-color — it physically cannot carry gradients or multiple fills. So every icon is one of two kinds:
| Kind | When | Goes to | Delivered as | Used as |
|---|---|---|---|---|
| Monochrome | one color, meant to inherit currentColor (UI icons, single-color logos) |
src/svg-raw/ai/ (or pi/) |
woff2 font glyph + catalog.json |
<i class="ai ai-<name>"> (recolorable) |
| Colored | multicolor brand/framework logo (gradients, ≥2 fills) | src/svg-raw/ai-cor/ |
azionicons-color.css (.ai-<name>-cor background-image) + color-catalog.json (inline SVG). Not in the font. |
<i class="ai ai-<name>-cor"> (keeps its palette) or inline via color-catalog |
Detect colored automatically: the SVG has <linearGradient>/<radialGradient>, <clipPath>, or more than one distinct fill="#…" / fill="white" (i.e. a real palette). If it is a single solid shape that should theme with text, it is monochrome. If genuinely unsure which the user wants, ask — the choice is not reversible without redoing the work.
Steps
- Collect the SVGs. From
$ARGUMENTS(file paths, pasted SVG markup, or names) gather each icon's raw SVG. Default set isai(Azion); usepionly if the user says so. - Classify each SVG monochrome vs colored using the rule above.
- Normalize the name → lowercase kebab-case, no spaces, no dots, no capitals. Map to the framework's real name. Examples:
Kotlin→kotlin,next.js→next,svelt→svelte. Monochrome file:ai-<name>.svg. Colored file:ai-<name>-cor.svg. Refuse names that collide with an existing icon of the same kind (pick a distinct name). - Prepare each SVG (rewrite to our conventions — never paste a foreign SVG as-is):
- Square
viewBox(0 0 14 14for the colored set; keep the source's square viewBox otherwise). - Monochrome: strip hardcoded fills/strokes and set
fill="currentColor"; remove<clipPath>/strokes; merge to filled<path>s. It must passvalidate-svg.mjs(nofill="#000", no strokes, has a<path>). - Colored: keep the palette exactly — do not convert to
currentColor. Gradients/clipPathare allowed (they are not run through the font validator).
- Square
- Place the files: monochrome →
packages/icons/src/svg-raw/ai/(orpi/); colored →packages/icons/src/svg-raw/ai-cor/. - Build:
cd packages/icons && npm run build. This regenerates the font,catalog.json,color-catalog.json, andazionicons-color.css. (dist/is gitignored — it is a build artifact; never edit it by hand.) - Verify (state results plainly — counts, not vibes):
- Monochrome: the name is in
dist/catalog.jsonas{ icon: "ai ai-<name>", … }; it is not incolor-catalog.json. - Colored: the name is in
dist/color-catalog.json(well-formed<svg>, nocurrentColor) and has a.ai-<name>-corrule indist/azionicons-color.csswhose data-URI decodes to the colored SVG; it is not incatalog.jsonand not in the woff2 font. - Apps: rebuild the gallery (
apps/icons-gallery) and Storybook (apps/storybook) and confirm the icon appears in the grid /Foundations/Icons. For colored, confirm<i class="ai ai-<name>-cor">paints the logo (theazionicons-color.cssclass is bundled via theindex.cssbarrel).
- Monochrome: the name is in
- Report what you added (names, kind), how to use each (
<i class="ai ai-<name>">or<i class="ai ai-<name>-cor">), and the verification outcome.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 53 lines · 0 tokens per session scan A c6f58bce8462
include-icons is a command published in the GitHub repository aziontech/webkit (2 stars, last pushed 3d ago), licensed MIT. It adds 57 tokens to every session and 1,578 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
speckit.tasks
Generate an actionable, dependency-ordered tasks.md for the feature based on available design artifacts.
diagnose
Run sivtr doctor to check the environment, then investigate any failing checks.
test-changed
Run the full quality gate on only the files changed since branching from main.
route
Route notes from inbox to appropriate vault destinations.
cleanup-transcript
Clean up a video/audio transcript (SRT or plaintext) - identifies structure, fixes transcription errors, asks clarifying questions iteratively.
reflect
Capture learnings from the current conversation through guided reflection.