html-explainer
Skill3 starsChanged 37 days agoMITView on GitHub
Build one self-contained HTML page that explains a topic or a piece of AI output as an interactive, designed page, with animation where it helps. Use ONLY when the user explicitly asks for an interactive page, a web explainer, an HTML demo, or an explanation or answer in HTML, such as "make an interactive page that explains X", "explain X in HTML", "做一個互動網頁說明 X" or "用 HTML 解釋 X". Never use for diagrams, videos, STE text, websites or landing pages, app components (React, Vue), fixing existing HTML or CSS, questions about HTML, or converting Markdown or other content to HTML.
6 other projects use a version of this.
Adopted by
Most recently taken up by
- spalladino/claude-skillstheir own version, first seen Oct 20, 2026
- VGBRO/claude-skillstheir own version, first seen Oct 11, 2026
- rushikeshg25/skillstheir own version, first seen Oct 8, 2026
- OneMoh/html-explainertheir own version, first seen Sep 25, 2026
- ds-vibe/html-explainertheir own version, first seen Jul 8, 2026
- tomroberts92/skillstheir own version, first seen Jun 25, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- OneMoh/html-explainer★ 282same name
- ds-vibe/html-explainer★ 11same name
- rushikeshg25/skills★ 1same name
- spalladino/claude-skills★ 1same name
- VGBRO/claude-skills★ 1same name
- tomroberts92/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .claude/CLAUDE.mdCLAUDE.md
- diagram-explainerSkill
- ste-writingSkill
- video-explainerSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 6 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 32
Page: Write ONE file, out/html-explainer/<slug>/index.html.
- Distinctive: line 35
No horizontal scroll at 390 px.
- Distinctive: line 38
No external resources by default.
- Distinctive: line 41
Text: Write the page text with the rules in "Text" below.
- Very specific: line 42
Static check: Run python <skill folder>/scripts/page_check.py <file> (python3 if python is missing).
- Very specific: line 43
Render check: Run uv run <skill folder>/scripts/render_check.py <file>.
- Very specific: line 58
A named style with a file: read references/styles/<name>.md and apply its look.
- Distinctive: line 67
Never cut a key point to save words.
- Distinctive: line 72
Use one label for one thing.
- Distinctive: line 74
When the source is AI output from the conversation, keep its facts.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
HTML explainer
Turn a topic, or an answer from this conversation, into one index.html file that the reader can open with a double-click. The reader learns by doing: the page lets them move through the idea, change it or uncover it. The user gets the file and a one-line summary of how to use it.
Files
scripts/page_check.py: static check of the file rules. Standard library only.scripts/render_check.py: loads the page in a headless browser and takes screenshots.references/interaction-patterns.md: six patterns with complete examples, how to combine them, and the optional "Make the assumptions visible" content pattern. Read it before you write the page.references/design-baseline.md: the page rules, design guidance and a minimal skeleton.references/styles/blueprint.md: the engineering-drawing look. Read it only when the user names that style (see "Named styles").references/checks.md: both commands, their JSON, exit codes and environment variables.
Run every command from the user's project root. The default output folder is out/html-explainer/<slug>/ under the current folder. Use another folder if the user names one. If git does not ignore out/, tell the user. Do not change .gitignore unasked. On Windows, set PYTHONUTF8=1 so Chinese text stays intact.
Workflow
Plan. List the key points of the topic. Let the topic decide how many: typically 3 to 6, more for a broad topic. If the user gives a list of points, use that list. The usual shape is a title, a lead that states the main conclusion, and one section per point that starts with its point. Use another shape if the topic calls for it, but explain every point. For each section, choose the pattern from
references/interaction-patterns.mdthat makes the point clearer when the reader does something:- a process or algorithm: step-through
- a number that changes a result: parameter slider
- a structure of parts or layers: layer toggles
- a definition or extra detail: reveal
- a result the reader can guess first: predict-then-reveal
- a behavior that depends on the input: preset scenarios
Several patterns on one page are normal. Use motion where the point is about change. If the source is AI output that contains assumptions or open decisions (a plan, an architecture, a design), you can add "Make the assumptions visible" from the same file. Skip it when the source has none. Never invent an assumption.
- Page. Write ONE file,
out/html-explainer/<slug>/index.html. The skeleton inreferences/design-baseline.mdis only the required minimum. Design the page for this topic, as "Design" in that file describes. If the user names a style, apply "Named styles" below. The page must have:<html lang>in the conversation's language, a<title>and a viewport meta.- Colors as CSS custom properties, with a
prefers-color-scheme: darkoverride. Set thebodybackground. - No horizontal scroll at 390 px.
- Native controls (
button,input type="range", checkboxes,details) with labels and a visible focus ring. addEventListenerin the script. Noonclick=or other inline handlers.- No external resources by default. If a library is necessary, load it only from cdnjs, jsDelivr or unpkg, at an exact version.
- The key idea is readable before any interaction.
- The render check clicks the first visible, enabled
<button>. Make that button change the page.
- Text. Write the page text with the rules in "Text" below.
- Static check. Run
python <skill folder>/scripts/page_check.py <file>(python3ifpythonis missing). On exit 1, fix each entry inissuesand run it again until it exits 0. - Render check. Run
uv run <skill folder>/scripts/render_check.py <file>.- Exit 1: the page has a problem. Fix each entry in
console_errorsandpage_errors, the overflow ifoverflow_390.overflowis true, the cause ininteraction_error(for example an element that covers the button) and the cause inload_error(for example a resource that does not load). Then run the check again. Do not skip the render check or the layout check on exit 1. - Exit 2: read
errorandhint. If Playwright or a browser is missing, skip the render check and the layout check. Tell the user that the render check was skipped and why. Iferrorstarts withrender failed, run the check once more. Never download a browser without asking. If the user wants one, state the size (about 300 MB download) and the command from thehint, and wait for a yes.
- Exit 1: the page has a problem. Fix each entry in
- Layout check. Look at every PNG in
screenshots. Look for overlapping elements, clipped text, text too small or too faint to read, a dark mode with light areas, an interaction screenshot with no change, and any drawn shape or number that does not match the math the page states (for example a stray curve). Then check the keyboard path in the page source: the controls are native elements in a logical order (no positivetabindex), so Tab reaches each one, and a:focus-visiblerule gives them a visible outline (nooutline: nonewithout a replacement). Fix the page, then run steps 4 to 6 again. Do at most two fix rounds. Report any problem that is left. - Deliver. Give the user:
- the path of
index.html(and the screenshot folder, if the render check ran) - one line on how to use the page, for example "Press Next to step through each check."
- the render check status: passed, or skipped with the reason
- any problem left after two fix rounds
- the path of
Named styles
A style is opt-in. Only the user's request selects it.
- No named style: nothing changes. Design the page for the topic. Never use a style file by default.
- A named style with a file: read
references/styles/<name>.mdand apply its look. The topic still decides the sections and the patterns. Available:blueprint("blueprint", "engineering drawing", "工程圖", "工程圖紙風格", "藍圖風格"). - An unknown style name: design the page in that style as asked, without a reference file. Tell the user that the skill has no reference for that style.
A style never removes a rule from references/design-baseline.md: dark mode, contrast, focus ring and the checks stay the same.
Text
The text names each point. The interaction demonstrates it. Apply these rules to each sentence directly. Do not call another skill for them.
- Never cut a key point to save words. Keep the sentences short, not the page.
- English: relaxed STE. Use short sentences (20 words or fewer for steps, 25 for descriptions), active voice, one idea per sentence and one term per concept.
- Other languages: apply the STE principles: short sentences, active voice, one instruction per sentence, one term per concept.
- These rules are inspired by ASD-STE100. They are not official and are not endorsed by ASD. Put no note about the style on the page.
- zh-TW: use Taiwan wording (程式, 資料, 伺服器). Set
lang="zh-Hant-TW";lang="zh-TW"is also correct. - Use one label for one thing. The button text, the caption and the paragraph use the same term.
When the source is AI output from the conversation, keep its facts. Do not add claims it does not make.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

