data-viz
Skill2 starsChanged 14 days agoApache-2.0View on GitHub
Charts, stat cards, flywheels and diagrams (flows, architectures, hierarchies) rendered on brand from a JSON spec to PNG and SVG. Use for any visual whose job is numbers or relationships, including restyling an attached chart or diagram.
We split this skill into the rules it gives an agent
5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 42
Every field, with a minimal spec per kind: references/spec-reference.md.
- Distinctive: line 43
Start from an example: bar with one annotated bar, flywheel, stat card, diagram.
- Very specific: line 53
Gates fail closed: before anything renders: a bar, waterfall or histogram axis must include zero.
- Very specific: line 73
A data model shows its rules: When the ask says a relationship is required or optional ("at least one user", "can relate to"), put it on …
- Distinctive: line 80
When values were estimated (read off a screenshot, rebuilt from a percentile), say so in the caption.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
data-viz
You describe the data and the words; the renderer applies the brand, computes every value (pivots, totals, steps, bins, changes, ratios, scales) and refuses a chart that would misstate its data.
cd /workspace
V=/workspace/skills/data-viz/scripts/viz.mjs
node $V --spec projects/<slug>/chart.json # writes out (PNG) and svgOut if set
node $V --spec projects/<slug>/chart.json --validate-only # gates and topology only, writes nothing
node $V --list-kinds # every kind and its data fields
node $V --list-transforms # allowlisted transforms and their argumentsPaths resolve under the working directory. Success prints one JSON line: dataset hash and gate verdicts for charts, the topology hash and audit for diagrams, computed values, the palette actually used, and the PNG size. Exit 1 means the spec, a gate or an audit failed: the message says which, so fix the spec. Exit 2 means the tool could not run (toolchain, D2, fontconfig or brand pack missing): report it.
Pick the kind
| Job | kind |
| One number, or a before and after | stat-card |
| Compare values; one bar is the point | bar with highlight (and annotate for a short note) |
| Parts of a whole by group, or 2-3 groups side by side | bar with series (and stack) |
| A trend; several series with one that matters | line (series + highlight past 3 series) |
| A trade-off between two measures | scatter |
| A matrix | heatmap |
| From an opening to a closing number | waterfall |
| A distribution | histogram |
| Quantities flowing between stages | sankey |
| A loop of 2-8 stages (a flywheel) | cycle |
| A flow, architecture or hierarchy | diagram (D2, elk or dagre) |
Every field, with a minimal spec per kind: references/spec-reference.md. Start from an example: bar with one annotated bar, flywheel, stat card, diagram.
The contract with you
- Data goes in as a typed dataset (
fieldswithdimension,measurewithunitandprecision, ortemporal; thenrows). Reshape with declaredtransforms(filter,sort,topN,aggregate,bin,normalize,percentChange,cumulative), never by editing the numbers you were given, or the dataset hash stops being a receipt. - Gates fail closed before anything renders: a bar, waterfall or histogram axis must include zero;
one value axis carries one unit; shares marked
partToWholemust sum to 100%; type must clear 12 px at the delivered size; more than three series need ahighlight. - Diagrams and cycles freeze meaning in a
contract(nodeswith id and label;edgeswith id, from, to, kind and optional label). PinexpectedTopologyHashfrom the first render on every styling revision: the renderer then fails if a label, endpoint, direction or kind moved. After layout, the SVG is read back and must contain exactly the contract's nodes and edges. - Brand comes from the brand pack. Ground, ink, accent, muted, rule and series colours are
measured from
/workspace/brand/tokens.json; fonts are its stacks. Pin a role to a token when the brand's graphic language asks for it ("colors": {"ground": "--brand-color-paper"}). A palette audit fails the render if any painted colour is not a brand colour, and a font check fails it if a brand family would fall back.
Judgment
- Concept first. Decide the one thing the visual says, then pick the kind that says it. A box is its label; draw the actual mechanism, never a generic network of dots and nodes.
- Fewest words.
titleandcaptiononly when the ask supplies them or the figure misreads without them; a caption is a source line, nothing more. The explanation goes in your reply. - One accent per frame: the highlighted bar, line, point or stage. Everything else is quiet.
- A data model shows its rules. When the ask says a relationship is required or optional ("at
least one user", "can relate to"), put it on the edge (
label:1..*,0..*) rather than in a footnote: that rule is usually the reason for the diagram. - Look at the PNG (
node /workspace/tools/review-thumb.mjs <png>, thenlook) before you deliver. Gates prove the numbers and the structure, not the taste: crowded labels, a lopsided layout or a weak concept are still yours to catch. A blog or doc figure is read about 720 px wide; check that its labels survive that size. - When values were estimated (read off a screenshot, rebuilt from a percentile), say so in the caption.
More craft and which-visual guidance: references/viz-patterns.md.
Restyling an attached chart or diagram
A restyle is a transformation, not a redesign: keep every label, value, annotation, relationship and
grouping unless the brief changes it. Write the contract (or dataset) from the source first; read an
SVG or PDF's structure directly when you have it, and for a raster, inspect every arrowhead before
writing an edge. If an endpoint is ambiguous, ask. Recompose for the requested ratio by spacing what
is there, without adding a title, footer or logo to fill the frame. Then compare source and render
side by side (visual-verify).
When not to use it
A typographic composition with no data or relationships (a three-up row of numbers, a quote card) is
an HTML still (stills). A conceptual illustration is stills or image-generation. A chart inside
a film is a HyperFrames scene that can embed this skill's SVG.
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- CatCatUncle/openworkbuddy★ 348same name
- kudeerliu48-web/CloseCode★ 14same name
- KyaniteLabs/tastecheck★ 9same name
- ianalloway/openclaw-skills★ 4same name
- kevinaimonster/skill-hub★ 4same name
- AdamsukS/data-viz-skill★ 1same name
- jakelherridge/apd-storytelling-system★ 0same name
- jessegrabowski/claude_skills★ 0same name
- jordiportal/brain-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository53 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- llms.txtllms.txt
- brand-onboardingSkill
- deep-agents-coreSkill
- deep-agents-memorySkill
- deep-agents-orchestrationSkill
- design-agent-customizeSkill
- design-agent-deploySkill
- design-agent-evalsSkill
- design-agent-onboardingSkill
- design-agent-troubleshootSkill
- design-agent-updateSkill
- langsmith-datasetSkill
- langsmith-evaluatorSkill
- managed-deep-agentsSkill
- release-checkSkill
- vendor-syncSkill
- brand-designSkill
- content-briefSkill
- design-wikiSkill
- embedded-captionsSkill
- faceless-explainerSkill
- film-breakdownSkill
- general-videoSkill
- gif-editSkill
- hyperframes-animationSkill
- hyperframes-audioSkill
- hyperframes-cliSkill
- hyperframes-coreSkill
- hyperframes-creativeSkill
- hyperframes-keyframesSkill
- hyperframes-registrySkill
- hyperframesSkill
- image-generationSkill
- image-opsSkill
- langsmith-traceSkill
- launch-filmSkill
- media-productionSkill
- media-useSkill
- motion-directionSkill
- motion-graphicsSkill
- music-to-videoSkill
- paper-designSkill
- pr-to-videoSkill
- reference-studySkill
- remotion-to-hyperframesSkill
- slideshowSkill
- soundSkill
- stillsSkill
- storyboardSkill
- thumbnailsSkill
- visual-verifySkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

