/article-icons
Illustrate an article (Markdown, HTML, etc.) with animated-style icons from itshover.com/icons. Fetches icons as clean inline SVG and places them at section headings, key concepts, lists, and callouts. Triggers on: /article-icons, 配图, 给文章配图标, add icons to article, illustrate
$ npx -y skills add smallnest/goal-workflow --skill article-icons --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/article-icons
Context preview
The summary Claude sees to decide when to auto-load this skill.
Illustrate an article (Markdown, HTML, etc.) with animated-style icons from itshover.com/icons. Fetches icons as clean inline SVG and places them at section headings, key concepts, lists, and callouts. Triggers on: /article-icons, 配图, 给文章配图标, add icons to article, illustrate
SKILL.md
article-icons.SKILL.mdname: article-icons
description: "Illustrate an article (Markdown, HTML, etc.) with animated-style icons from itshover.com/icons. Fetches icons as clean inline SVG and places them at section headings, key concepts, lists, and callouts. Triggers on: /article-icons, 配图, 给文章配图标, add icons to article, illustrate with icons."
user-invocable: true
Article Icons (itshover)
Add tasteful icons to an article using the [itshover](https://www.itshover.com/icons) icon set. itshover publishes 263 icons as shadcn registry components; this skill downloads them and converts each into a clean, static, inline **SVG** that drops straight into Markdown or HTML — no React, no `motion`, no build step.
Triggers
Use when the user wants to illustrate a document with icons:
- `/article-icons <file>`
- "给这篇文章配图标", "给文章配图", "add icons to this article", "illustrate with icons"
Inputs
- **Target file** — the article to illustrate (`.md`, `.html`, `.mdx`, ...). If not given, ask.
- **Style preferences** (optional) — color, size, where icons go. Otherwise use sensible defaults below.
The Tool
`scripts/fetch_icon.py` is the only moving part. It fetches an icon and prints static SVG to stdout.
# Get one icon (defaults: size 24, color currentColor, stroke-width 2)
python3 scripts/fetch_icon.py heart-icon
# Customize
python3 scripts/fetch_icon.py rocket-icon --size 32 --color "#d97757" --stroke-width 1.5
# Discover names (do this FIRST — names must match exactly)
python3 scripts/fetch_icon.py --list
python3 scripts/fetch_icon.py --search arrow
python3 scripts/fetch_icon.py --search brand
`scripts/icon_names.json` is a cached list of all 263 names for offline reference.
Most icon names end in `-icon` (e.g. `heart-icon`, `rocket-icon`, `database-icon`), and brands use `brand-<name>-icon` (e.g. `brand-anthropic-icon`). But the convention is **not** universal — real names include `shield-check`, `credit-card`, `down-chevron`, `apple-brand-logo`, `skull-emoji`. **Never guess a name. Always resolve it with `--search` first** — a wrong guess just wastes a 404.
Workflow
1. **Read the article.** Identify its structure: title, section headings (`#`/`##`/`<h1>`/`<h2>`), key concepts, list groups, callouts/warnings, and any tech/brand mentions (React, GitHub, AI tools...).
2. **Plan the icon map.** For each placement, choose a semantically matching icon. Match meaning, not just keywords — a "performance" section → `rocket-icon` or `zap-icon`; a "security" section → `shield-icon` or `lock-icon`; a warning callout → `alert-triangle-icon`. Prefer **one consistent icon family** (all outline, one color) so the article looks designed, not decorated. Resolve every name with `--search`.
3. **Confirm the plan** with the user before editing — show the heading→icon mapping. This is cheap and avoids reworking a whole document.
4. **Fetch and embed.** Run `fetch_icon.py` for each chosen icon (parallelize independent fetches) and inline the SVG at its placement. See embedding rules below.
5. **Verify.** Re-read the edited file; for HTML, open it / screenshot to confirm icons render and align. Report the mapping you applied.
Embedding Rules
**HTML** — inline the SVG directly. Wrap heading icons so they align with text:
<h2 style="display:flex;align-items:center;gap:.5rem;">
<svg ...>...</svg> Performance
</h2>
**Markdown** — GitHub-flavored Markdown renders inline HTML, so embed the raw SVG. Keep it on one line and size it small (16–20px) for inline use, 24–28px beside headings:
## <svg ... width="22" height="22" ...>...</svg> Getting Started
If the target renderer strips inline SVG (some strict Markdown engines do), fall back to saving each SVG into an `assets/icons/` folder next to the article and referencing it: ``. Ask which the user prefers if unsure.
Defaults
- **Size:** 24px beside `h1`, 20–22px beside `h2`/`h3`, 16px inline in text.
- **Color:** `currentColor` so icons inherit text color. Override with `--color` only when the user wants accent colors.
- **Density:** one icon per heading + a few for genuinely key concepts. Do **not** icon every bullet or sentence — restraint reads as polish.
- **Alignment:** always `display:flex;align-items:center;gap:.4–.5rem` for heading icons in HTML.
Icon Selection Cheatsheet
These names are verified to exist, but the set changes — always reconfirm with `--search` before fetching.
| Theme | Real icon names | |-------|------| | intro / overview | `book-icon`, `home-icon`, `globe-icon`, `map-pin-icon` | | performance / speed | `rocket-icon`, `gauge-icon`, `clock-icon` | | security | `shield-check`, `lock-icon` | | data / charts | `database`-family via `--search`, `chart-bar-icon`, `chart-line-icon`, `chart-pie-icon`, `cloud-1-icon` | | settings / config | `gear-icon`, `sliders-horizontal-icon` | | warning / note | `triangle-alert-icon`, `info-circle-icon`, `filled-bell-icon` | | success / done | `checked-icon`, `double-check-icon`, `simple-checked-icon` | | ideas | `brain-circuit-icon`, `sparkles-icon`, `star-icon`, `bulb-svg` | | AI / brands | `brand-anthropic-icon`, `brand-gemini-icon`, ... (`--search brand`) | | navigation | `arrow-narrow-*-icon`, `down-chevron`, `right-chevron` |
Edge Cases
| Scenario | Handling | |----------|----------| | Icon name not found (404) | Run `--search <term>`; pick the closest real name. Never invent names. | | Icon won't convert (rare; ~2/263 use a JS map for paths) | Script prints a clear error. Pick an alternative icon with similar meaning. | | No network access | Cannot fetch SVGs; tell the user the skill needs network access to itshover.com. | | Markdown renderer strips inline SVG | Fall back to `assets/icons/*.svg` + image references. | | Article already has icons | Ask whether to replace, supplement, or skip those sections. | | Very long article | Confirm the mapping for the first few sections, then apply the same family consiste
Read more
name: article-icons description: "Illustrate an article (Markdown, HTML, etc.) with animated-style icons from itshover.com/icons. Fetches icons as clean inline SVG and places them at section headings, key concepts, lists, and callouts. Triggers on: /article-icons, 配图, 给文章配图标, add icons to article, illustrate with icons." user-invocable: true
Article Icons (itshover)
Add tasteful icons to an article using the [itshover](https://www.itshover.com/icons) icon set. itshover publishes 263 icons as shadcn registry components; this skill downloads them and converts each into a clean, static, inline **SVG** that drops straight into Markdown or HTML — no React, no `motion`, no build step.
Triggers
Use when the user wants to illustrate a document with icons:
- `/article-icons <file>`
- "给这篇文章配图标", "给文章配图", "add icons to this article", "illustrate with icons"
Inputs
- **Target file** — the article to illustrate (`.md`, `.html`, `.mdx`, ...). If not given, ask.
- **Style preferences** (optional) — color, size, where icons go. Otherwise use sensible defaults below.
The Tool
`scripts/fetch_icon.py` is the only moving part. It fetches an icon and prints static SVG to stdout.
# Get one icon (defaults: size 24, color currentColor, stroke-width 2) python3 scripts/fetch_icon.py heart-icon # Customize python3 scripts/fetch_icon.py rocket-icon --size 32 --color "#d97757" --stroke-width 1.5 # Discover names (do this FIRST — names must match exactly) python3 scripts/fetch_icon.py --list python3 scripts/fetch_icon.py --search arrow python3 scripts/fetch_icon.py --search brand
`scripts/icon_names.json` is a cached list of all 263 names for offline reference.
Most icon names end in `-icon` (e.g. `heart-icon`, `rocket-icon`, `database-icon`), and brands use `brand-<name>-icon` (e.g. `brand-anthropic-icon`). But the convention is **not** universal — real names include `shield-check`, `credit-card`, `down-chevron`, `apple-brand-logo`, `skull-emoji`. **Never guess a name. Always resolve it with `--search` first** — a wrong guess just wastes a 404.
Workflow
1. **Read the article.** Identify its structure: title, section headings (`#`/`##`/`<h1>`/`<h2>`), key concepts, list groups, callouts/warnings, and any tech/brand mentions (React, GitHub, AI tools...).
2. **Plan the icon map.** For each placement, choose a semantically matching icon. Match meaning, not just keywords — a "performance" section → `rocket-icon` or `zap-icon`; a "security" section → `shield-icon` or `lock-icon`; a warning callout → `alert-triangle-icon`. Prefer **one consistent icon family** (all outline, one color) so the article looks designed, not decorated. Resolve every name with `--search`.
3. **Confirm the plan** with the user before editing — show the heading→icon mapping. This is cheap and avoids reworking a whole document.
4. **Fetch and embed.** Run `fetch_icon.py` for each chosen icon (parallelize independent fetches) and inline the SVG at its placement. See embedding rules below.
5. **Verify.** Re-read the edited file; for HTML, open it / screenshot to confirm icons render and align. Report the mapping you applied.
Embedding Rules
**HTML** — inline the SVG directly. Wrap heading icons so they align with text:
<h2 style="display:flex;align-items:center;gap:.5rem;"> <svg ...>...</svg> Performance </h2>
**Markdown** — GitHub-flavored Markdown renders inline HTML, so embed the raw SVG. Keep it on one line and size it small (16–20px) for inline use, 24–28px beside headings:
## <svg ... width="22" height="22" ...>...</svg> Getting Started
If the target renderer strips inline SVG (some strict Markdown engines do), fall back to saving each SVG into an `assets/icons/` folder next to the article and referencing it: ``. Ask which the user prefers if unsure.
Defaults
- **Size:** 24px beside `h1`, 20–22px beside `h2`/`h3`, 16px inline in text.
- **Color:** `currentColor` so icons inherit text color. Override with `--color` only when the user wants accent colors.
- **Density:** one icon per heading + a few for genuinely key concepts. Do **not** icon every bullet or sentence — restraint reads as polish.
- **Alignment:** always `display:flex;align-items:center;gap:.4–.5rem` for heading icons in HTML.
Icon Selection Cheatsheet
These names are verified to exist, but the set changes — always reconfirm with `--search` before fetching.
| Theme | Real icon names | |-------|------| | intro / overview | `book-icon`, `home-icon`, `globe-icon`, `map-pin-icon` | | performance / speed | `rocket-icon`, `gauge-icon`, `clock-icon` | | security | `shield-check`, `lock-icon` | | data / charts | `database`-family via `--search`, `chart-bar-icon`, `chart-line-icon`, `chart-pie-icon`, `cloud-1-icon` | | settings / config | `gear-icon`, `sliders-horizontal-icon` | | warning / note | `triangle-alert-icon`, `info-circle-icon`, `filled-bell-icon` | | success / done | `checked-icon`, `double-check-icon`, `simple-checked-icon` | | ideas | `brain-circuit-icon`, `sparkles-icon`, `star-icon`, `bulb-svg` | | AI / brands | `brand-anthropic-icon`, `brand-gemini-icon`, ... (`--search brand`) | | navigation | `arrow-narrow-*-icon`, `down-chevron`, `right-chevron` |
Edge Cases
| Scenario | Handling | |----------|----------| | Icon name not found (404) | Run `--search <term>`; pick the closest real name. Never invent names. | | Icon won't convert (rare; ~2/263 use a JS map for paths) | Script prints a clear error. Pick an alternative icon with similar meaning. | | No network access | Cannot fetch SVGs; tell the user the skill needs network access to itshover.com. | | Markdown renderer strips inline SVG | Fall back to `assets/icons/*.svg` + image references. | | Article already has icons | Ask whether to replace, supplement, or skip those sections. | | Very long article | Confirm the mapping for the first few sections, then apply the same family consiste
An AI-driven development workflow — from PRD to shipped code, all within Claude Code.
Other skills on goal-workflow-skills.
- /code-to-spec
Reverse-engineer a SPEC document from an existing project. Analyzes code, config, tests, and structure to produce a comprehensive specification. Triggers on: code-to-spec, reverse spec, generate spec, 逆向规格, 生成规格文档, 生成设计文档, 生成设计方案, extract spec, document this project, what does
Open skill - /graph
Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with subagents — each node runs /goal → /review-it → /ship-it in an isolated git
Open skill - /humanize-it
对指定文档进行去 AI 味的改写。自动选择最合适的人性化策略(humanizer-zh / humanize-chinese / technical-writing), 迭代改写直到效果达标或迭代 42 次为止。适用于中文文本的去 AI 化处理,包括通用文章、技术文档、学术论文等。 Use when user says: "humanize this", "去AI味", "降AIGC", "人性化改写", "改成人话", "去除AI痕迹", "humanize document", "make text human-like", "去机器味",
Open skill - /insight-diagram
为任意项目生成 UML 图、架构图和流程图。分析代码库后让用户选择要生成的图表类型,使用 architecture-diagram skill 渲染为 HTML+SVG,保存到 docs/ 目录。适用于任何软件项目的文档可视化。
Open skill - /listenhub-tts
使用 ListenHub API 将文本转换为语音(TTS)。支持三种模式:快速合成(/v1/tts)、 多角色脚本(/v1/speech)、长文本流式合成(/v1/flow-speech/episodes)。 音色未指定时自动获取音色列表供用户选择,默认使用 chat-girl-105-cn(晓曼)。 Use when user says: "tts", "text to speech", "语音合成", "文字转语音", "朗读", "生成语音", "生成音频", "转音频", "text to audio"
Open skill - /loop-it
Automated issue loop with checkpoint/resume: fetch open GitHub issues → dependency-aware topological sort → implement each issue end-to-end → review with /review-it → ship with /ship-it → repeat. Persists state to .loop-state.json for crash recovery. Triggers on: loop-it, loop
Open skill

