plannotator/html-diagram
Direct-invocation specialist for self-contained HTML diagrams whose layout, notation, and interaction clarify relationships, sequence, topology, state, hierarchy, or quantitative structure. Use when the user explicitly invokes html-diagram or the broad html skill routes a diagram request here. Do not activate independently from a general request.
npx skills add https://github.com/plannotator/effective-html --skill html-diagram
Build the smallest visual model that makes the relationship easier to understand than prose alone. Match the notation and visual language to the user's project and subject. Do not force every topic into the same SVG boxes and arrows.
Identify the question the reader should answer, then select the form:
Decide what must remain visible together and what can be revealed on demand. Use a simpler form when it carries the same meaning.
Use HTML and CSS, SVG, Canvas, or WebGL according to the information and scale. Do not use SVG merely because the output is a diagram.
Add sequencing, filtering, path tracing, pan and zoom, or animation only when it helps answer the stated question. Keep overlays dismissible, controls keyboard-accessible, and motion compatible with prefers-reduced-motion.
When design-artifact is available, read it for
the diagram's surrounding composition and visual register. Keep the chosen
diagram grammar, label legibility, and relationships authoritative over
decorative treatment.
Deliver one self-contained HTML file with essential CSS and JavaScript inline. Require no build step or external service. Use accessible text alternatives and keep important meaning available without animation or color alone.
Inspect the result at wide and narrow widths. Check label collisions, clipped nodes, edge routing, reading order, keyboard operation, overflow, and every interactive state.
Return the absolute path, the diagram form chosen, and the main simplifications or assumptions.
Take plannotator/html-diagram from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.