html-explainer
Create a standalone HTML explainer that teaches a thing visually, from the outside in — leading with the perspective of the person who uses or calls it (a…
Skill by thrawn01
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/thrawn01-html-explainer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, backend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/html-explainer
What's inside
- Skill name
html-explainer- Description
- Create a standalone HTML explainer that teaches a thing visually, from the outside in — leading with the perspective of the person who uses or calls it (a UI's end user, a library's caller, a service's API consumer, an implementation's invoker) before any internal detail. Use when asked to "explain X visually", "make an explainer for X", "write a visual explainer", "explain this from the user's perspective", "render an explanation of X as a page", or to walk through how something behaves/works for the people who depend on it. Self-contained (bundles its own dark "dimmed-terminal" template); if the project has an html-docs skill or docs/design.md, prefer those tokens. Do NOT use for plain reference docs with no teaching/perspective angle, or for PRDs/ tech specs.
- License
- MIT
- Instructions
- 143 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Files (3)
- SKILL.md
- diagrams.md
- template.html
SKILL.md (first lines)
# HTML Explainer
An explainer is documentation that **teaches**, and it teaches from the **outside
in**. The reader meets the thing the way its users meet it — what they ask of it,
what they get back, how it behaves — *before* they meet how it is built. This
keeps the explanation product-focused: it describes outcomes for the caller, not
the internal machinery, even when the subject *is* the machinery.
This skill owns the **perspective discipline** (below) and a set of **visual
diagram patterns** (`diagrams.md`). It bundles its own styling so it works in any
project, but defers to a project's own house style when one exists.
## The one load-bearing rule
**The caller's perspective always comes first. Internals always come after.**
Everything else here is guidance you can adapt per subject. This rule is not. If
you catch yourself opening with a data structure, a class diagram, or "the system
is composed of…", stop — you have started inside. Back up to the boundary.
### Who "the user" is, by subject
The skill explains many kinds of things. Identify the caller first:
| Subject | "The user" is… | Lead with… |
|---|---|---|
| A UI | the person clicking | what they see, do, and get — screen by screen |
| A library / package | the developer writing code against its surface | the exported functions, the call, the return |
| A service / API | the consumer making requests | the endpoint, the request, the response, the errors |
| An implementation | whoever calls *into* this code | the contract it honors and the outcome it produces |
| A protocol / format | the party producing or consuming it | a real message and what each side does with it |
Even when the *requested topic* is internal (e.g. "explain the state machine
inside the packfile assembler"), open with what the caller hands in and what
comes back out — then descend into the internal states. The internals are framed
as *how the promised outcome is kept*, never as the starting point.
## Input
**The user describes the thing to explain.** You do not autonomously reverse-
engineer a subsystem to write this — the framing comes from their description.
- If they point you at code, a spec, or an `openapi.yaml`, read it **only** to make
examples concrete and correct (real signatures, real request/response shapes).
- Ask clarifying questions **only when the user-first framing is genuinely unclear** —
specifically: *who the caller is*, *what outcome they care about*, or *the
audience's level*. One or two questions, then write. Do not run a full interview.
## Drafting, outside in
1. **Fix the perspective.** Name the caller (table above) and the single outcome
they care about most. This becomes the `<p class="lead">`.
2. **Open with a picture.** The first visual should be a diagram of the boundary —
what the caller sends in / gets back — not internal structure. See
`diagrams.md` (`.boundary`, `.flow`).
3. **The user-first explanation.** Walk the caller's experience: the call/click,
the result, the common variations, the errors they can hit. Make it concrete
with annotated examples (`<pre>` request/response, real signatures). This
section must stand on its own — a reader who stops here understands how to
*use* the thing. Load the `writing-prose` skill before drafting this body
copy — the reader is meeting the subject for the first time, the same reader
that skill writes for.
4. **Then internals, if relevant.** Only after the above, descend. Frame every
internal detail as *how the promised outcome is kept*. Internal state walks,
sequence diagrams, and data structures live here — never above. If the request
was specifically about internals, this is where the depth goes, but it still
follows the caller-facing section.
5. **Color-code the boundary.** Convention: **blue (`--accent`)** marks what the
caller touches (the surface); **muted/green** marks what is internal. Carry
this through diagrams and pills so "outside vs inside" is visible at a glance.
## Visuals
Lead with diagrams; prose supports them, not the reverse. The explanation is
carried by:
- **Diagrams** — flow, state-machine, and sequence diagrams render through
Mermaid (the template already loads and themes it); boundary and tree
diagrams are plain HTML/CSS. Copy patterns from **`diagrams.md`**, which
defines them in terms of the bundled template's design tokens. Keep only the
branches/nodes relevant to the point being made — an overstuffed diagram
teaches less than a small one.
- **Annotated examples** — real request/response bodies, function signatures,
before/after blocks. Use the template's `<pre><code>` with `<span class="cmd">`
and `<span class="muted">` for emphasis.
Mermaid is the one JavaScript dependency the template carries, loaded from
`cdn.jsdelivr.net` — this means the explainer needs network access to render,
and is no longer usable fully offline. No other interactivity or animation
libraries; a state machine is drawn, not animated.
## Producing the file
1. **Pick the styling source:**
- If the project has an `html-docs` skill or a `docs/design.md`, follow it —
copy *its* `template.html` and keep *its* tokens; this skill's diagram
patterns still apply (map the colors to the local token names). If that
template doesn't already load Mermaid, carry over this template's
`<script type="module">` block and theme its `themeVariables` to the
local tokens.
- Otherwise use the bundled template:
`cp ~/.claude/skills/html-explainer/template.html <target>.html`.
2. **Keep the `<style>` block verbatim** — it is the design system. No CSS
framework, no web fonts. The bundled template already loads and themes
Mermaid; the only diagram CSS to append is the **boundary** pattern from
`diagrams.md` (additive, built only on existing `var(--…)` tokens).
3. **Write the body** following the outside-in order above, using the template's
component vocabulary (`.lead`, `.grid2`/`.card`, `.callout`, `.pill`,
`.layers`, `<pre>`, `<table>`) plus the diagram snippets. Single centred
column, no sidebar; navigation is the heading structure.
4. **Footer**: note what the explainer was generated from.
5. **Host for review** (the template is a single self-contained file — just serve
its directory):
```bash
cd <dir with the .html>
peep -p 8090 # then open http://localhost:8090/<file>.html
```
Run it in the background and confirm with
`curl -s -o /dev/null -w "%{http_code}" http://localhost:8090/<file>.html`From thrawn01/claude-dotfiles, MIT.
More from thrawn01/claude-dotfiles
- 0.632score
review-tests
thrawn01
Review whether a feature's existing tests actually cover the acceptance criteria, scenarios, and correctness constraints documented in its Blueprint…
SkillAFreshness: A★ 11Claude Code +9 - 0.628score
linear-resume
thrawn01
Resume in-flight work tracked in Linear by reading the latest handoff and surfacing where things stand + the reasoned next step.
SkillAFreshness: A★ 11Claude Code +9 - 0.607score
herdr
thrawn01
Control Herdr, a terminal multiplexer for coding agents.
SkillAFreshness: A★ 11Claude Code +9 - 0.592score
lazy
thrawn01
Write the fewest words that carry the facts — terse, plain, human, not lawyerly.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
no-ai-slop
thrawn01
Load and apply the No AI Slop output style — direct, opinionated answers with zero filler and a real point of view.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-style
thrawn01
Write or edit long-form prose in the user's essayist voice.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-prose
thrawn01
Write explanatory prose for a smart reader meeting the subject for the first time: newcomer explainers, concept sections, 'how it works' docs, the explanatory…
SkillBFreshness: B★ 11Claude Code +9 - 0.543score
babysit-pr
thrawn01
Monitor and fix automated review comments (Copilot, SonarCloud) and CI failures on the current branch's PR.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
review-behavior-change
thrawn01
Review code changes for undocumented behavioral/surface changes.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
bug-detector
thrawn01
Detects bugs, logic errors, and edge case handling issues in code.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
handoff
thrawn01
Write a brief capturing the current state of in-flight work so it can be resumed in a fresh context window.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
review-for-reader
thrawn01
Review a PR/diff from the perspective of the next maintainer who never saw the change — catching comments, docstrings, and docs that only make sense to…
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 19, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/thrawn01/claude-dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from thrawn01
- 0.632score
review-tests
thrawn01
Review whether a feature's existing tests actually cover the acceptance criteria, scenarios, and correctness constraints documented in its Blueprint…
SkillAFreshness: A★ 11Claude Code +9 - 0.628score
linear-resume
thrawn01
Resume in-flight work tracked in Linear by reading the latest handoff and surfacing where things stand + the reasoned next step.
SkillAFreshness: A★ 11Claude Code +9 - 0.607score
herdr
thrawn01
Control Herdr, a terminal multiplexer for coding agents.
SkillAFreshness: A★ 11Claude Code +9 - 0.592score
lazy
thrawn01
Write the fewest words that carry the facts — terse, plain, human, not lawyerly.
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-prose
thrawn01
Write explanatory prose for a smart reader meeting the subject for the first time: newcomer explainers, concept sections, 'how it works' docs, the explanatory…
SkillBFreshness: B★ 11Claude Code +9 - 0.592score
writing-style
thrawn01
Write or edit long-form prose in the user's essayist voice.
SkillBFreshness: B★ 11Claude Code +9
Cite this page
html-explainer skill. Agent Mart. https://agentmart.dev/skills/thrawn01-html-explainer (last updated 2026-10-24)