Shine — Create an Interactive Explanation
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").
Workflow
- Load the moonshine skill first. Read
../moonshine/SKILL.mdand follow its full workflow — story discovery is mandatory and comes before any code. - Reference files live next to the moonshine skill:
../moonshine/ARTICLE.md— single-file HTML scaffold, CSS foundation, layout patterns, series structure.../moonshine/VISUALS.md— D3 v7 visualization patterns, interaction, rendering decisions, iteration loop.
- Output location. Write the project to
~/.agent/moonshine/<kebab-case-project-name>/as a self-containedindex.htmlplus an optionaldata/directory. Vanilla JS + D3 v7 only. No build tools, no frameworks. - 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.
- Iterate. Start with prose and static figures; add interaction only where it genuinely helps the reader.
Notes
- This skill is the single shine entry point in every harness; Claude Code
surfaces it as
/moonshine:shine. - For the structured Vite + React + Velite project flavor (multi-file
content, markdown directives, React figures, in-place editing, authorship
feedback), use
$stillinstead. When the user hasn't picked a substrate,SKILL.md§ "Two Substrates" makes still the default.