orrery
Goal: build an explorable explanation (Bret Victor, Explorable Explanations, 2011) of one formula. Every input is something the reader drags; every output visibly moves; the mechanism behind the symbols is seen instead of taken on trust.
The reader is a newcomer: they hold the formula (often a lecture-slide screenshot) and lack the intuition behind it. Every word on the page is written for them.
Ground rule: code draws
Every curve, point, length, angle, region, and label position is computed at runtime by the page's own JavaScript from the formula's functions. You write the functions (f, df, term(n), …) and a world-to-screen mapping; the page samples and draws. Every number shown on the page is likewise computed by that code. A coordinate, SVG path string, or result typed by hand into the HTML is a bug — replace it with a call to the math.
Keep the math in one <script id="math"> block of pure functions that touch no DOM, so step 7 can lift it out and run it.
Step 0: Ensure the dependencies are installed
Step 6 reads two skills' files directly (both are user-invoked, so the Skill tool cannot fire them). Look for each directory in ~/.claude/skills/, ~/.agents/skills/, or the active profile's skills/, and record its absolute path:
scribe(this repo's):SKILL.mdplusreferences/ai-tells.md.wait-what(Matt Pocock's):SKILL.md.
For each one missing, show its install command and ask before running it — it mutates the global skill store: