Visual Explainer
Create self-contained HTML pages that explain complex material faster than a
terminal wall of prose or ASCII tables.
This skill is optimized for mixed audiences by default:
- stakeholder updates
- architecture explainers
- plan and diff walkthroughs
- audits, comparisons, and status reviews
- customer, IT, or security reassurance docs
If the user explicitly asks for a deeper technical explainer, include more code
and implementation detail. Otherwise, keep the page accessible and
presentation-ready.
Prerequisites
- Local HTML generation needs no extra setup.
- Publish mode is opt-in and requires environment variables, not hardcoded
secrets.
- The publish helper reads secrets from the current runtime environment. It does
not read
~/.zshrc or other shell startup files directly.
- Store only env-var names in
~/.config/visual-explainer/global.json.
- Create
~/.agent/diagrams/ and ~/.config/visual-explainer/ if they are
missing.
- When publish mode is requested, read:
references/netlify-publishing.md
references/config-layout.md
references/error-handling.md
Core Rules
Default to HTML, not ASCII art
- If you are about to produce a table with 4+ rows or 3+ columns, generate an
HTML page instead.
- Prefer real diagrams, structured cards, or semantic tables over dense text.
Validate before explaining
- Read the actual source material first.
- Validate the current state before making claims.
- Separate what is confirmed, what is inferred, and what still needs
verification.
Ask only for missing required inputs
- Required inputs are:
- topic
- audience
- goal
- source material
- Infer them from the request and local context when safe.
- If anything required is still missing, ask one concise follow-up covering
only the missing items.
Keep the tone audience-correct
- Default: plain language, smart-but-busy audience, low jargon.
- Do not sound like an engineering memo unless the user asks for that.
- Avoid file paths, code references, and test commands in stakeholder mode.
- Use direct current-state wording only when the evidence supports it.
Keep secrets out of repo content
- Never store literal Netlify tokens in repo files, prompt files, receipts,
or committed JSON.
- Resolve real secret values from environment variables at runtime only.
- Config files may store env-var names such as
NETLIFY_VISUAL_EXPLAINER_TOKEN, never the token itself.
Deliver a shareable artifact
- Always write the final HTML to
~/.agent/diagrams/ with a descriptive
filename.
- Attempt to open the local HTML in the browser.
- Tell the user the local file path.
- If useful or explicitly requested, also write a Markdown summary to
~/Downloads/.
- If publish mode is explicitly requested, publish the local HTML after it is
written and return the deploy URL as well.
Keep publish mode explicit
- Publish only when the user explicitly asks to publish or the wrapper passes
--publish.
- Use a fresh Netlify preview site for every publish. Do not reuse sites.
- Verify the required
NETLIFY_VISUAL_EXPLAINER_* variables are available in
the current process before running the publish helper.
- If the user just added or changed shell exports, tell them to restart
the current tool session or retry from a shell session that actually
inherited those exports.
- If publishing fails, preserve the local HTML and report the actionable
error.
Intake Protocol
Follow this order:
- Read the request and any provided files, notes, plans, or diffs.
- Resolve the minimum viable brief:
- topic
- audience
- goal
- source material
- Collect optional preferences only when they materially affect output:
- non-technical vs technical
- include Markdown summary
- include reply draft
- slide deck instead of scrollable page
- publish the explainer
- open the deployed URL after publish
- If source material is referenced but not yet read, read it before making
structural decisions.
Verification Model
Before writing HTML, build a compact fact sheet for yourself:
- confirmed facts
- reasonable inferences
- items still needing external verification
Use that split in the page whenever it helps the reader trust the document.
If the request depends on unstable external facts and browsing is available,
verify them before presenting them as current.
Page Structure
For the default stakeholder explainer flow, read:
references/stakeholder-explainer.md
For layout, styling, and reusable UI patterns, read:
references/css-patterns.md
references/libraries.md
references/responsive-nav.md for pages with 4+ sections
If publish mode is requested, also read:
references/netlify-publishing.md
references/config-layout.md
references/error-handling.md
For reference templates, read only the relevant files:
- text-heavy architecture overviews:
templates/architecture.html
- flowcharts, sequences, ER diagrams, state machines, mind maps:
templates/mermaid-flowchart.html
- audits, comparisons, and structured tables:
templates/data-table.html
- slide decks only when the user explicitly wants slides:
references/slide-patterns.md
templates/slide-deck.html
Visual Taste
Apply these constraints consistently:
- Avoid generic AI styling.
- Do not default to Inter plus purple/indigo accents.
- Use a distinct palette and intentional typography.
- Prefer side-by-side comparison cards when "before vs after" matters.
- Use Mermaid when topology or flow matters more than rich card text.
- Use real HTML tables for audits and comparisons.
- Make the page easy to skim in under two minutes unless the user asks for a
deeper technical artifact.
Default Deliverable
Unless the user asks for a different structure, the HTML should usually include:
- Short headline summary
- Confirmed vs inferred vs still-unverified view
- Before vs after explanation when relevant
- How it works
- Why this approach is better
- What is already done
- What is left
- Key caveats or risks
- Recommended next step
- Reply draft when the audience is customer, IT, security, or leadership
Use 2-5 concrete examples where they improve clarity.
Publish Mode
Publish mode is opt-in.
Use it only when:
- the user explicitly asks for a hosted preview
- the wrapper includes
--publish
When publish mode is enabled:
- always write the local HTML first
- ensure
~/.config/visual-explainer/ exists
- bootstrap
global.json with env-var names only if it does not exist yet
- verify the required environment variables are visible to the current runtime
before invoking the helper script
- run
scripts/publish_netlify_preview.py against the generated HTML
- pass
--open-url only when the user asked to open the deploy URL
- return:
- local HTML path
- deploy URL
- publish receipt path
- any important unverified points
When publish mode is disabled:
- local HTML delivery remains the default
- manual Netlify Drop remains an optional suggestion only
Slide Deck Mode
Slides are opt-in only.
Use slide mode only when:
- the user explicitly asks for slides
- a command wrapper explicitly requests slides
When slide mode is requested:
- read
references/slide-patterns.md
- read
templates/slide-deck.html
- preserve the same factual coverage, not a watered-down summary
Final Step
After delivery:
- if publish mode was used, report the deploy URL and receipt path
- if publish mode was not used and sharing would help, you may suggest Netlify
Drop as a manual option
Do not imply that Netlify Drop itself is password-protected by default, and do
not suggest it as though it replaced automated publish mode.
References
references/stakeholder-explainer.md
- default mixed-audience workflow, content shape, and tone
references/css-patterns.md
- card, table, animation, overflow, and Mermaid interaction patterns
references/libraries.md
- fonts, Mermaid setup, Chart.js, and theming guidance
references/responsive-nav.md
- section navigation for multi-section pages
references/slide-patterns.md
- slide-specific layout guidance when slide mode is explicitly requested
references/netlify-publishing.md
- publish contract, env vars, Netlify API flow, and helper-script usage
references/config-layout.md
- local config bootstrap,
global.json, and publish receipt shape
references/error-handling.md
- actionable publish and auth errors for Netlify mode
references/provenance.md
- upstream attribution and MIT notice for copied/adapted assets
1---2name: visual-explainer3description: Generate self-contained, presentation-ready HTML explainers for plans, diffs, docs, architecture, audits, and stakeholder updates. Use when the user wants a visual explainer, diagram, comparison, roadmap, mixed technical/non-technical summary, or an HTML alternative to a complex ASCII table. Gather missing audience/goal/source context interactively, separate confirmed facts from inference, save under ~/.agent/diagrams/, and optionally publish a fresh Netlify preview site.4---56# Visual Explainer78Create self-contained HTML pages that explain complex material faster than a9terminal wall of prose or ASCII tables.1011This skill is optimized for mixed audiences by default:12- stakeholder updates13- architecture explainers14- plan and diff walkthroughs15- audits, comparisons, and status reviews16- customer, IT, or security reassurance docs1718If the user explicitly asks for a deeper technical explainer, include more code19and implementation detail. Otherwise, keep the page accessible and20presentation-ready.2122## Prerequisites2324- Local HTML generation needs no extra setup.25- Publish mode is opt-in and requires environment variables, not hardcoded26 secrets.27- The publish helper reads secrets from the current runtime environment. It does28 not read `~/.zshrc` or other shell startup files directly.29- Store only env-var names in `~/.config/visual-explainer/global.json`.30- Create `~/.agent/diagrams/` and `~/.config/visual-explainer/` if they are31 missing.32- When publish mode is requested, read:33 - `references/netlify-publishing.md`34 - `references/config-layout.md`35 - `references/error-handling.md`3637## Core Rules38391. Default to HTML, not ASCII art40 - If you are about to produce a table with 4+ rows or 3+ columns, generate an41 HTML page instead.42 - Prefer real diagrams, structured cards, or semantic tables over dense text.43442. Validate before explaining45 - Read the actual source material first.46 - Validate the current state before making claims.47 - Separate what is confirmed, what is inferred, and what still needs48 verification.49503. Ask only for missing required inputs51 - Required inputs are:52 - topic53 - audience54 - goal55 - source material56 - Infer them from the request and local context when safe.57 - If anything required is still missing, ask one concise follow-up covering58 only the missing items.59604. Keep the tone audience-correct61 - Default: plain language, smart-but-busy audience, low jargon.62 - Do not sound like an engineering memo unless the user asks for that.63 - Avoid file paths, code references, and test commands in stakeholder mode.64 - Use direct current-state wording only when the evidence supports it.65665. Keep secrets out of repo content67 - Never store literal Netlify tokens in repo files, prompt files, receipts,68 or committed JSON.69 - Resolve real secret values from environment variables at runtime only.70 - Config files may store env-var names such as71 `NETLIFY_VISUAL_EXPLAINER_TOKEN`, never the token itself.72736. Deliver a shareable artifact74 - Always write the final HTML to `~/.agent/diagrams/` with a descriptive75 filename.76 - Attempt to open the local HTML in the browser.77 - Tell the user the local file path.78 - If useful or explicitly requested, also write a Markdown summary to79 `~/Downloads/`.80 - If publish mode is explicitly requested, publish the local HTML after it is81 written and return the deploy URL as well.82837. Keep publish mode explicit84 - Publish only when the user explicitly asks to publish or the wrapper passes85 `--publish`.86 - Use a fresh Netlify preview site for every publish. Do not reuse sites.87 - Verify the required `NETLIFY_VISUAL_EXPLAINER_*` variables are available in88 the current process before running the publish helper.89 - If the user just added or changed shell exports, tell them to restart90 the current tool session or retry from a shell session that actually91 inherited those exports.92 - If publishing fails, preserve the local HTML and report the actionable93 error.9495## Intake Protocol9697Follow this order:98991. Read the request and any provided files, notes, plans, or diffs.1002. Resolve the minimum viable brief:101 - topic102 - audience103 - goal104 - source material1053. Collect optional preferences only when they materially affect output:106 - non-technical vs technical107 - include Markdown summary108 - include reply draft109 - slide deck instead of scrollable page110 - publish the explainer111 - open the deployed URL after publish1124. If source material is referenced but not yet read, read it before making113 structural decisions.114115## Verification Model116117Before writing HTML, build a compact fact sheet for yourself:118- confirmed facts119- reasonable inferences120- items still needing external verification121122Use that split in the page whenever it helps the reader trust the document.123124If the request depends on unstable external facts and browsing is available,125verify them before presenting them as current.126127## Page Structure128129For the default stakeholder explainer flow, read:130- `references/stakeholder-explainer.md`131132For layout, styling, and reusable UI patterns, read:133- `references/css-patterns.md`134- `references/libraries.md`135- `references/responsive-nav.md` for pages with 4+ sections136137If publish mode is requested, also read:138- `references/netlify-publishing.md`139- `references/config-layout.md`140- `references/error-handling.md`141142For reference templates, read only the relevant files:143- text-heavy architecture overviews:144 `templates/architecture.html`145- flowcharts, sequences, ER diagrams, state machines, mind maps:146 `templates/mermaid-flowchart.html`147- audits, comparisons, and structured tables:148 `templates/data-table.html`149- slide decks only when the user explicitly wants slides:150 `references/slide-patterns.md`151 `templates/slide-deck.html`152153## Visual Taste154155Apply these constraints consistently:156157- Avoid generic AI styling.158- Do not default to Inter plus purple/indigo accents.159- Use a distinct palette and intentional typography.160- Prefer side-by-side comparison cards when "before vs after" matters.161- Use Mermaid when topology or flow matters more than rich card text.162- Use real HTML tables for audits and comparisons.163- Make the page easy to skim in under two minutes unless the user asks for a164 deeper technical artifact.165166## Default Deliverable167168Unless the user asks for a different structure, the HTML should usually include:1691701. Short headline summary1712. Confirmed vs inferred vs still-unverified view1723. Before vs after explanation when relevant1734. How it works1745. Why this approach is better1756. What is already done1767. What is left1778. Key caveats or risks1789. Recommended next step17910. Reply draft when the audience is customer, IT, security, or leadership180181Use 2-5 concrete examples where they improve clarity.182183## Publish Mode184185Publish mode is opt-in.186187Use it only when:188- the user explicitly asks for a hosted preview189- the wrapper includes `--publish`190191When publish mode is enabled:192- always write the local HTML first193- ensure `~/.config/visual-explainer/` exists194- bootstrap `global.json` with env-var names only if it does not exist yet195- verify the required environment variables are visible to the current runtime196 before invoking the helper script197- run `scripts/publish_netlify_preview.py` against the generated HTML198- pass `--open-url` only when the user asked to open the deploy URL199- return:200 - local HTML path201 - deploy URL202 - publish receipt path203 - any important unverified points204205When publish mode is disabled:206- local HTML delivery remains the default207- manual Netlify Drop remains an optional suggestion only208209## Slide Deck Mode210211Slides are opt-in only.212213Use slide mode only when:214- the user explicitly asks for slides215- a command wrapper explicitly requests slides216217When slide mode is requested:218- read `references/slide-patterns.md`219- read `templates/slide-deck.html`220- preserve the same factual coverage, not a watered-down summary221222## Final Step223224After delivery:225226- if publish mode was used, report the deploy URL and receipt path227- if publish mode was not used and sharing would help, you may suggest Netlify228 Drop as a manual option229230Do not imply that Netlify Drop itself is password-protected by default, and do231not suggest it as though it replaced automated publish mode.232233## References234235- `references/stakeholder-explainer.md`236 - default mixed-audience workflow, content shape, and tone237- `references/css-patterns.md`238 - card, table, animation, overflow, and Mermaid interaction patterns239- `references/libraries.md`240 - fonts, Mermaid setup, Chart.js, and theming guidance241- `references/responsive-nav.md`242 - section navigation for multi-section pages243- `references/slide-patterns.md`244 - slide-specific layout guidance when slide mode is explicitly requested245- `references/netlify-publishing.md`246 - publish contract, env vars, Netlify API flow, and helper-script usage247- `references/config-layout.md`248 - local config bootstrap, `global.json`, and publish receipt shape249- `references/error-handling.md`250 - actionable publish and auth errors for Netlify mode251- `references/provenance.md`252 - upstream attribution and MIT notice for copied/adapted assets