blogpost-figure
Blog-post figures
Figures for the web are read in a scrolling column, on phones, without a caption nearby. They must
carry their own headline, explain their own encoding, and survive being screenshotted. This skill
encodes the design language of a set of strong research-blog figures (catalogued in
references/gallery.md) and ships code that produces it.
Two routes, chosen by content:
| Content | Route | Tooling |
|---|---|---|
| Data charts: bars, lines, step/survival curves, lollipops, scatter, multi-panel grids | matplotlib | scripts/blogfig.py helpers |
| Process/flow diagrams, timelines, quote/transcript cards, heatmap tables, dashboards of cards | HTML + CSS | assets/figure.css + templates, scripts/render_html.py |
The skill root is the directory containing this file (e.g. ~/.claude/skills/blogpost-figure;
find ~ -name blogfig.py -path '*blogpost-figure*' 2>/dev/null if unsure). Call scripts by absolute
path. Python scripts are uv run scripts with inline deps; for your own figure script use
uv run --with matplotlib --with numpy python my_fig.py or a PEP 723 header. For LaTeX/PDF paper
figures use the paper-figure skill instead.