Visual Explainer
Turn something hard to grasp from prose into a single self-contained .html
file that explains it visually: inline architecture/data-flow diagrams, UI
wireframes, annotated code, file maps, before/after comparisons, callouts, and
clean structured prose. The output is one file a person opens in a browser — no
server, no account, no network, no sharing service. It works offline and can be
checked into a repo.
Use it to explain a plan before implementation, walk someone through a codebase
or architecture, document how a feature works, present a before/after change, or
make an abstract concept concrete.
When To Use
Create a visual explainer whenever the material would land better as a scannable
visual artifact than a chat paragraph: a UI surface with states, a multi-file or
architectural change, a data/control flow, a before/after comparison, a
component/API/data-shape decision, or any concept where a diagram, mockup, or
file map does the explaining faster than words.
Skip it for trivial, unambiguous things — a one-line answer, a typo, a single
well-specified function — and just say it in chat. Never pad an explainer with
filler, and never ship a one-section document that should have been a sentence.
Output Contract
- One file. Everything — CSS, content, the theme toggle — lives in a single
.html file. No external CSS/JS dependencies, no CDN links that break offline.
- Self-styled. The look is owned by the bundled design system in
references/design-system.md. Paste its scaffold, then fill <main>. Do not
invent a new stylesheet per explainer and do not pull in a UI framework.
- No hosting, no accounts, no sharing. This skill never publishes, uploads,
or registers anything. If the user wants to share the result, they send the
file or check it into their repo.
- Name it sensibly. Default to
<topic>-explainer.html in the working
directory, or wherever the user asks (e.g. docs/). State the path when done.
Discipline
- Research before you draft. Read the real files, symbols, schema, and
patterns first; name actual files and data shapes instead of inventing them.
Lead with what already exists, then the genuinely new delta. Delegate wide
exploration to a sub-agent when the surface is large.
- Gate thoughtfully. A visual explainer is a richer surface, not a reward for
big projects. Use it when seeing the thing helps; skip it for the trivially
describable.
- Keep examples at the right altitude. When the topic is a broad framework or
operating model, do not collapse it into the first concrete example. Separate
the core abstraction from motivating examples and adapters; label examples as
examples.
- Make the first read concrete. If the concept is abstract, lead near the top
with one concrete example — a real screen mockup or a worked scenario — before
taxonomies, mode tables, or architecture.
- Stand alone. The file must make sense to a reader who never saw the chat.
No "as discussed above", "this revision", or other conversation references.
- Clarify vs. assume. Explore and present; do not ask how to build the
explainer. Ask a clarifying question only when an ambiguity would change the
content and you cannot resolve it from the code — batch 2–4 high-leverage
questions. Otherwise state the assumption and proceed.
Choosing the visual surface
Do not add visual chrome by default. Match the surface to the material:
- No visual / document-only for backend, data, copy, or purely conceptual
topics. Write strong prose with local inline diagrams only where relationships
are genuinely spatial — usually one diagram per point. Prefer grouped regions,
layers, matrices, or before/after panels over a single-axis chain.
- Wireframe(s) for product UI: a screen, a state, a before/after, a small
popover. Use
references/wireframe.md. Put multiple states in a .columns
before/after rather than one cramped frame.
- Diagram(s) for architecture, dependency, data-flow, or state relationships.
Use
references/diagrams.md. Keep diagrams local to the point they support.
- Mix when the topic has both a UI story and an architecture story — but each
visual must earn its place, and visuals never duplicate the prose.
Build steps
- Understand the topic. Inspect the codebase / read the source material;
gather what you need; resolve or batch clarifying questions.
- Pick the surface(s) per the section above.
- Scaffold the file. Copy the scaffold from
references/design-system.md,
set the title and header, and plan the <main> sections.
- Author the content using the building blocks in
references/content.md
(prose, annotated code, file maps, comparisons, callouts), the mockups in
references/wireframe.md, and the diagrams in references/diagrams.md. Ground
everything in real files and real names.
- Open it and check. Open the
.html in a browser, toggle light and dark,
and fix overlap, clipped content, poor contrast, and unreadable diagrams
before calling it done. Then tell the user the file path.
References — read before authoring
references/design-system.md — the self-contained HTML scaffold + CSS (theme
tokens, surfaces, diagram primitives). Read first; the other references
assume its classes and tokens. Paste the scaffold into every explainer.
references/wireframe.md — UI mockup quality bar. Read before authoring any
wireframe / .surface screen.
references/diagrams.md — architecture/data-flow/state diagrams in HTML+SVG
and spatial layout. Read before authoring any diagram.
references/content.md — prose and structured-block quality bar, the HTML
building blocks, and the good/bad exemplars. Read before authoring the body.
1---2name: visual-explainer3description: Turn a topic, plan, codebase, architecture, or feature into a single self-contained HTML visual explainer — wireframes, diagrams, annotated code, file maps, and before/after panels in one offline file. Use when prose alone would be a wall of text and the reader would understand it faster as a scannable visual document.4---56# Visual Explainer78Turn something hard to grasp from prose into a **single self-contained `.html`9file** that explains it visually: inline architecture/data-flow diagrams, UI10wireframes, annotated code, file maps, before/after comparisons, callouts, and11clean structured prose. The output is one file a person opens in a browser — no12server, no account, no network, no sharing service. It works offline and can be13checked into a repo.1415Use it to explain a plan before implementation, walk someone through a codebase16or architecture, document how a feature works, present a before/after change, or17make an abstract concept concrete.1819## When To Use2021Create a visual explainer whenever the material would land better as a scannable22visual artifact than a chat paragraph: a UI surface with states, a multi-file or23architectural change, a data/control flow, a before/after comparison, a24component/API/data-shape decision, or any concept where a diagram, mockup, or25file map does the explaining faster than words.2627Skip it for trivial, unambiguous things — a one-line answer, a typo, a single28well-specified function — and just say it in chat. Never pad an explainer with29filler, and never ship a one-section document that should have been a sentence.3031## Output Contract3233- **One file.** Everything — CSS, content, the theme toggle — lives in a single34 `.html` file. No external CSS/JS dependencies, no CDN links that break offline.35- **Self-styled.** The look is owned by the bundled design system in36 `references/design-system.md`. Paste its scaffold, then fill `<main>`. Do not37 invent a new stylesheet per explainer and do not pull in a UI framework.38- **No hosting, no accounts, no sharing.** This skill never publishes, uploads,39 or registers anything. If the user wants to share the result, they send the40 file or check it into their repo.41- **Name it sensibly.** Default to `<topic>-explainer.html` in the working42 directory, or wherever the user asks (e.g. `docs/`). State the path when done.4344## Discipline4546- **Research before you draft.** Read the real files, symbols, schema, and47 patterns first; name actual files and data shapes instead of inventing them.48 Lead with what already exists, then the genuinely new delta. Delegate wide49 exploration to a sub-agent when the surface is large.50- **Gate thoughtfully.** A visual explainer is a richer surface, not a reward for51 big projects. Use it when seeing the thing helps; skip it for the trivially52 describable.53- **Keep examples at the right altitude.** When the topic is a broad framework or54 operating model, do not collapse it into the first concrete example. Separate55 the core abstraction from motivating examples and adapters; label examples as56 examples.57- **Make the first read concrete.** If the concept is abstract, lead near the top58 with one concrete example — a real screen mockup or a worked scenario — before59 taxonomies, mode tables, or architecture.60- **Stand alone.** The file must make sense to a reader who never saw the chat.61 No "as discussed above", "this revision", or other conversation references.62- **Clarify vs. assume.** Explore and present; do not ask how to build the63 explainer. Ask a clarifying question only when an ambiguity would change the64 content and you cannot resolve it from the code — batch 2–4 high-leverage65 questions. Otherwise state the assumption and proceed.6667## Choosing the visual surface6869Do not add visual chrome by default. Match the surface to the material:7071- **No visual / document-only** for backend, data, copy, or purely conceptual72 topics. Write strong prose with local inline diagrams only where relationships73 are genuinely spatial — usually one diagram per point. Prefer grouped regions,74 layers, matrices, or before/after panels over a single-axis chain.75- **Wireframe(s)** for product UI: a screen, a state, a before/after, a small76 popover. Use `references/wireframe.md`. Put multiple states in a `.columns`77 before/after rather than one cramped frame.78- **Diagram(s)** for architecture, dependency, data-flow, or state relationships.79 Use `references/diagrams.md`. Keep diagrams local to the point they support.80- **Mix** when the topic has both a UI story and an architecture story — but each81 visual must earn its place, and visuals never duplicate the prose.8283## Build steps84851. **Understand the topic.** Inspect the codebase / read the source material;86 gather what you need; resolve or batch clarifying questions.872. **Pick the surface(s)** per the section above.883. **Scaffold the file.** Copy the scaffold from `references/design-system.md`,89 set the title and header, and plan the `<main>` sections.904. **Author the content** using the building blocks in `references/content.md`91 (prose, annotated code, file maps, comparisons, callouts), the mockups in92 `references/wireframe.md`, and the diagrams in `references/diagrams.md`. Ground93 everything in real files and real names.945. **Open it and check.** Open the `.html` in a browser, toggle light and dark,95 and fix overlap, clipped content, poor contrast, and unreadable diagrams96 before calling it done. Then tell the user the file path.9798## References — read before authoring99100- `references/design-system.md` — the self-contained HTML scaffold + CSS (theme101 tokens, surfaces, diagram primitives). **Read first**; the other references102 assume its classes and tokens. Paste the scaffold into every explainer.103- `references/wireframe.md` — UI mockup quality bar. Read before authoring any104 wireframe / `.surface` screen.105- `references/diagrams.md` — architecture/data-flow/state diagrams in HTML+SVG106 and spatial layout. Read before authoring any diagram.107- `references/content.md` — prose and structured-block quality bar, the HTML108 building blocks, and the good/bad exemplars. Read before authoring the body.