$npx -y skills add enjalot/moonshine --skill shineCreate a self-contained interactive technical explanation (single HTML file with D3 v7, no build tools) inspired by Distill.pub. Use when the user wants to author, draft, or scaffold an explainer, interactive article, or visual essay about a technical concept. Invoked as $shine
| 1 | # Shine — Create an Interactive Explanation |
| 2 | |
| 3 | Use this skill to start a new moonshine explanation. The user invokes it as `$shine` or `$shine <topic>` (anything after `$shine` is the starting topic; treat an empty topic as "start from scratch"). |
| 4 | |
| 5 | ## Workflow |
| 6 | |
| 7 | 1. **Load the moonshine skill first.** Read `../moonshine/SKILL.md` and follow its full workflow — story discovery is mandatory and comes before any code. |
| 8 | 2. **Reference files** live next to the moonshine skill: |
| 9 | - `../moonshine/ARTICLE.md` — single-file HTML scaffold, CSS foundation, layout patterns, series structure. |
| 10 | - `../moonshine/VISUALS.md` — D3 v7 visualization patterns, interaction, rendering decisions, iteration loop. |
| 11 | 3. **Output location.** Write the project to `~/.agent/moonshine/<kebab-case-project-name>/` as a self-contained `index.html` plus an optional `data/` directory. Vanilla JS + D3 v7 only. No build tools, no frameworks. |
| 12 | 4. **Story discovery is the gate.** Do not skip to code. Ask the user about concept, audience, key insight, and progression of understanding, then checkpoint with "Here's what I think we're building..." before scaffolding. |
| 13 | 5. **Iterate.** Start with prose and static figures; add interaction only where it genuinely helps the reader. |
| 14 | |
| 15 | ## Notes |
| 16 | |
| 17 | - This skill is the single shine entry point in every harness; Claude Code |
| 18 | surfaces it as `/moonshine:shine`. |
| 19 | - For the structured **Vite + React + Velite** project flavor (multi-file |
| 20 | content, markdown directives, React figures, in-place editing, authorship |
| 21 | feedback), use `$still` instead. When the user hasn't picked a substrate, |
| 22 | `SKILL.md` § "Two Substrates" makes still the default. |