Topic and options: $ARGUMENTS
Requirements
- Node >= 22. Run
pnpm installonce in the skill directory (installsplaywright-core). - Google Chrome (playwright-core drives it for screenshots and video render).
- Format 4:
ffmpeg(withffprobe). Voice order: ElevenLabs (ifELEVENLABS_API_KEYis set), local Kokoro viauv, then macOSsay. Kokoro supports Mandarin (zh-TW) and English (en), with no global Python install. First use downloads models to${XDG_CACHE_HOME:-$HOME/.cache}/explain-kokoro/. SetEXPLAIN_TTS=elevenlabs|kokoro|sayto force one engine (errors do not fall back). - Claude Code tools: AskUserQuestion and Artifact. Other agents: ask the same questions in plain text, and write the HTML file to the output dir instead of publishing an Artifact.
1. Pick formats
Args may start with format numbers, e.g. /explain 1,4 how TCP handshakes work.
If no number is given, ask with AskUserQuestion, two questions in one call:
- "Which formats to generate?" multiSelect: true. Options:
1 文字 (STE),2 示意圖,3 互動網頁,4 影片. - "Language?" options:
繁體中文,English. Format 1 is always English (STE is a controlled English); the language applies to formats 2-4.
2. Build each chosen format
Read only the reference for each chosen format, then follow it:
| # | Reference | Output |
|---|---|---|
| 1 | references/text.md |
STE text in the reply, passed by scripts/ste-check.mjs |
| 2 | references/diagram.md |
One-sheet SVG diagram, published as an Artifact |
| 3 | references/web.md |
Interactive explainer page, published as an Artifact |
| 4 | references/video.md |
video.mp4 with narration, verified by ffprobe |
All paths in this skill are relative to the directory that holds this SKILL.md
(run scripts as node <that dir>/scripts/...).
Files for formats 2-4 go to ${EXPLAIN_OUT:-$HOME/Documents/explainers}/<topic-slug>/.
When several formats are chosen, write one outline first (5-7 key points, in order) and build every format from it, so they tell the same story.
3. Report
One line per format: what was made and where (path or Artifact link), plus the
check result (ste-check exit 0, verify: ... OK). If a check failed and
you could not fix it, say so.