/creating-explainers
Use when creating an interactive explainer - a single self-contained HTML page with hand-built Canvas figures. Handles source-file explainers, topic-driven research explainers, and mixed intake where files provide the spine and research adds support. Trigger phrases include
$ npx -y skills add analyticalmonk/explain-this --skill creating-explainers --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.
- You can call itInvoke it directly when you want it.
- Slash command
/creating-explainers
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use when creating an interactive explainer - a single self-contained HTML page with hand-built Canvas figures. Handles source-file explainers, topic-driven research explainers, and mixed intake where files provide the spine and research adds support. Trigger phrases include
SKILL.md
creating-explainers.SKILL.mdname: creating-explainers
description: Use when creating an interactive explainer - a single self-contained HTML page with hand-built Canvas figures. Handles source-file explainers, topic-driven research explainers, and mixed intake where files provide the spine and research adds support. Trigger phrases include "make an explainer", "turn this paper into an interactive explainer", "build a distill-style explainer", or "explain X visually". For codebases or source files, use explaining-codebases instead.
Creating Explainers
Overview
This skill produces a **single self-contained interactive explainer** in the style of distill.pub - serif typography, a sticky two-column layout, and hand-built Canvas figures the reader can interact with. The output is one `index.html` file that opens directly in a browser; no parent project, no build step, no shared infrastructure required.
**Core constraints (non-negotiable):**
- **Zero dependencies.** No npm, no bundler, no React, no D3, no Three.js, no Tailwind. Vanilla HTML + inline CSS + vanilla JS only.
- **One file per article.** All CSS in a single `<style>` block in `<head>`; all JS at the bottom of `<body>`. The only external network requests are Google Fonts.
- **Hand-coded Canvas figures**, not SVG libraries or images. 3D uses custom projection + z-sorting + lighting (see `references/figure-archetypes.md`).
- **The voice matters as much as the visuals.** Conversational, second-person, analogy-rich. Read `references/voice-and-style.md` before drafting prose.
If you find yourself reaching for a framework or asking "should I just use React for this", stop. The constraint is the point.
When to Use
Use whenever the user asks to:
- Turn a paper, blog post, transcript, or research report into a walkthrough
- Build a distill-style or interactive explainer on any topic
- "Explain X" with figures the reader can interact with
Don't use for:
- Static blog posts with no interactivity (just write HTML)
- Slide decks or presentations
- Documentation sites or landing pages
- Anything that needs a build step or framework
- Explaining a codebase or source files - use `explaining-codebases`
Intake: Gather Your Source Material
Intake is one phase: gather what the article is built from. The material can be given files, web research, or both. Pick the references that apply and read them when you reach this phase, not upfront.
| You have | Read | Source of truth | |----------|------|-----------------| | Files (paper, URL, paste, transcript, report) | `references/intake-from-files.md` | The provided document(s) | | Only a topic | `references/intake-from-research.md` | Web research, then synthesis | | Files **and** a topic that needs more | both | Files as spine, research as supporting |
**Mixed intake.** When the user provides files and the topic also needs material the files do not cover (recent developments, criticisms, corroboration), read both references and combine them via spine-vs-supporting. Synthesize across everything into one outline and one article.
If you only have a topic and web search is unavailable, ask the user to paste sources. Do not write a technical interactive explainer from training data alone.
Workflow
The interactive explainer is too rich to one-shot. Work in stages and check in with the user.
1. Intake -> gather material (files, research, or both)
2. Research-time fact-check -> if you researched, verify sources before drafting (REQUIRED)
3. Outline -> propose sections + figure list, get user approval
4. Scaffold -> copy template, fill metadata
5. Prose pass -> write all sections with figure placeholders
6. Figures pass -> implement each interactive figure
7. Post-draft fact-check -> audit every claim against its source (REQUIRED, blocking)
8. Polish -> run the Quality Checklist to completion
**Pause for user approval after the outline (step 3).** This is the highest-leverage check-in - if the outline is wrong, everything after it is wasted work. Show the user: title, subtitle, section list with one-line summaries, and a numbered figure list with what each figure shows and how the reader interacts with it.
**Steps 2 and 7 are gates, not suggestions.** Use `fact-checking-explainers`. The interactive explainer is not done until the post-draft fact-check returns zero unresolved claims - every checkable claim is supported. See the Quality Checklist.
**Step 8 is complete only when every Quality Checklist item passes.** Fix any failing item before delivery.
**Don't pause** between the other steps unless something is genuinely ambiguous. Show progress, don't ask for permission to keep working.
The Article Skeleton
Every article has the same skeleton. Use `assets/article-template.html` as the starting point - copy it to the output path and fill in the marked `{{PLACEHOLDERS}}`. Don't try to rebuild this structure from scratch; it captures invariants (DPR-aware canvas init, sidebar scroll-tracking, responsive breakpoints) that are easy to get wrong.
The skeleton provides:
- Two-column layout: 220px sticky sidebar + 720px max content column
- Article header (overline, h1, italic subtitle, meta line, fade-in animations)
- Section anchors and a sidebar TOC that highlights the section in view
- A figure HTML pattern with label, canvas-wrap, controls, and caption
- The `initCanvas()` utility (DPR-scaled, returns CSS dimensions)
- Responsive collapse at 1060px (sidebar hides) and 600px (mobile)
- An optional article footer for attribution / source links (delete if not needed)
See `references/template-walkthrough.md` for what every block in the template does and where to fill in your content.
Figures
Each interactive figure is a self-contained IIFE:
(function() {
const { canvas, ctx, w, h } = initCanvas('canvas-myfig');
let state = { /* ... */ };
function draw() { /* render */ }Read more
name: creating-explainers description: Use when creating an interactive explainer - a single self-contained HTML page with hand-built Canvas figures. Handles source-file explainers, topic-driven research explainers, and mixed intake where files provide the spine and research adds support. Trigger phrases include "make an explainer", "turn this paper into an interactive explainer", "build a distill-style explainer", or "explain X visually". For codebases or source files, use explaining-codebases instead.
Creating Explainers
Overview
This skill produces a **single self-contained interactive explainer** in the style of distill.pub - serif typography, a sticky two-column layout, and hand-built Canvas figures the reader can interact with. The output is one `index.html` file that opens directly in a browser; no parent project, no build step, no shared infrastructure required.
**Core constraints (non-negotiable):**
- **Zero dependencies.** No npm, no bundler, no React, no D3, no Three.js, no Tailwind. Vanilla HTML + inline CSS + vanilla JS only.
- **One file per article.** All CSS in a single `<style>` block in `<head>`; all JS at the bottom of `<body>`. The only external network requests are Google Fonts.
- **Hand-coded Canvas figures**, not SVG libraries or images. 3D uses custom projection + z-sorting + lighting (see `references/figure-archetypes.md`).
- **The voice matters as much as the visuals.** Conversational, second-person, analogy-rich. Read `references/voice-and-style.md` before drafting prose.
If you find yourself reaching for a framework or asking "should I just use React for this", stop. The constraint is the point.
When to Use
Use whenever the user asks to:
- Turn a paper, blog post, transcript, or research report into a walkthrough
- Build a distill-style or interactive explainer on any topic
- "Explain X" with figures the reader can interact with
Don't use for:
- Static blog posts with no interactivity (just write HTML)
- Slide decks or presentations
- Documentation sites or landing pages
- Anything that needs a build step or framework
- Explaining a codebase or source files - use `explaining-codebases`
Intake: Gather Your Source Material
Intake is one phase: gather what the article is built from. The material can be given files, web research, or both. Pick the references that apply and read them when you reach this phase, not upfront.
| You have | Read | Source of truth | |----------|------|-----------------| | Files (paper, URL, paste, transcript, report) | `references/intake-from-files.md` | The provided document(s) | | Only a topic | `references/intake-from-research.md` | Web research, then synthesis | | Files **and** a topic that needs more | both | Files as spine, research as supporting |
**Mixed intake.** When the user provides files and the topic also needs material the files do not cover (recent developments, criticisms, corroboration), read both references and combine them via spine-vs-supporting. Synthesize across everything into one outline and one article.
If you only have a topic and web search is unavailable, ask the user to paste sources. Do not write a technical interactive explainer from training data alone.
Workflow
The interactive explainer is too rich to one-shot. Work in stages and check in with the user.
1. Intake -> gather material (files, research, or both) 2. Research-time fact-check -> if you researched, verify sources before drafting (REQUIRED) 3. Outline -> propose sections + figure list, get user approval 4. Scaffold -> copy template, fill metadata 5. Prose pass -> write all sections with figure placeholders 6. Figures pass -> implement each interactive figure 7. Post-draft fact-check -> audit every claim against its source (REQUIRED, blocking) 8. Polish -> run the Quality Checklist to completion
**Pause for user approval after the outline (step 3).** This is the highest-leverage check-in - if the outline is wrong, everything after it is wasted work. Show the user: title, subtitle, section list with one-line summaries, and a numbered figure list with what each figure shows and how the reader interacts with it.
**Steps 2 and 7 are gates, not suggestions.** Use `fact-checking-explainers`. The interactive explainer is not done until the post-draft fact-check returns zero unresolved claims - every checkable claim is supported. See the Quality Checklist.
**Step 8 is complete only when every Quality Checklist item passes.** Fix any failing item before delivery.
**Don't pause** between the other steps unless something is genuinely ambiguous. Show progress, don't ask for permission to keep working.
The Article Skeleton
Every article has the same skeleton. Use `assets/article-template.html` as the starting point - copy it to the output path and fill in the marked `{{PLACEHOLDERS}}`. Don't try to rebuild this structure from scratch; it captures invariants (DPR-aware canvas init, sidebar scroll-tracking, responsive breakpoints) that are easy to get wrong.
The skeleton provides:
- Two-column layout: 220px sticky sidebar + 720px max content column
- Article header (overline, h1, italic subtitle, meta line, fade-in animations)
- Section anchors and a sidebar TOC that highlights the section in view
- A figure HTML pattern with label, canvas-wrap, controls, and caption
- The `initCanvas()` utility (DPR-scaled, returns CSS dimensions)
- Responsive collapse at 1060px (sidebar hides) and 600px (mobile)
- An optional article footer for attribution / source links (delete if not needed)
See `references/template-walkthrough.md` for what every block in the template does and where to fill in your content.
Figures
Each interactive figure is a self-contained IIFE:
(function() {
const { canvas, ctx, w, h } = initCanvas('canvas-myfig');
let state = { /* ... */ };
function draw() { /* render */ }Showing the first part of this file.
An Agent Skills package for creating distill-style interactive explainers - single self-contained index.html pages with a sticky two-column layout, hand-built Canvas figures, and conversational prose, like the explainers at distill.pub.
Other skills on explain-this.
- /explaining-codebases
Use when creating an interactive explainer about a codebase, repository, or source files. Handles onboarding overviews, architecture maps, and deep-dives on real implementation paths. Trigger phrases include "explain this codebase", "interactive guide to this repo", "walk
Open skill - /fact-checking-explainers
Use to fact-check an explainer against its sources before delivery. Trigger on "fact-check this explainer", "verify the claims", "check this against its sources", research-time source checks, or the post-draft gate. Ensures every checkable claim traces to a cited source or, for
Open skill

