data-viz
Skill12 starsChanged 11 days agoMITView on GitHub
Honest, Tufte-informed web data visualization. Use for charts, dashboards, metrics, KPI tiles, sparklines, chart accessibility, chartjunk removal, genre choice, lie-factor checks, direct labels, data tables, and themed SVG/HTML.
9 other projects use a version of this.
Adopted by
Most recently taken up by
- CatCatUncle/openworkbuddytheir own version, first seen Nov 5, 2026
- kudeerliu48-web/CloseCodetheir own version, first seen Nov 1, 2026
- langchain-ai/design-agenttheir own version, first seen Oct 25, 2026
- jakelherridge/apd-storytelling-systemtheir own version, first seen Oct 20, 2026
- jessegrabowski/claude_skillstheir own version, first seen Oct 15, 2026
- AdamsukS/data-viz-skilltheir own version, first seen Sep 13, 2026
Used with
Projects with it also use deep-research.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
NVIDIASkilldeep-research
Queue deep, multi-step research and analysis tasks to the DeepAgents worker. Supports execution depth presets, request-specific rubrics, SubAgent delegation, and RubricMiddleware cross-validation.
Also in 3 projects that use this
Other versions9 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 9
- langchain-ai/design-agent★ 596same name
- CatCatUncle/openworkbuddy★ 398same name
- kudeerliu48-web/CloseCode★ 14same 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 repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- llms.txtllms.txt
- a11y-passSkill
- art-directionSkill
- cognitive-a11ySkill
- color-systemSkill
- component-statesSkill
- design-system-interviewSkill
- deslop-uiSkill
- empty-statesSkill
- form-uxSkill
- humanize-copySkill
- i18n-readySkill
- improve-existing-websiteSkill
- micro-motionSkill
- responsive-layoutSkill
- spacing-systemSkill
- tastecheck-passSkill
- tasterollSkill
- themingSkill
- web-typographySkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 6 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
6
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 13
Use Tufte tooling when present.
- Distinctive: line 18
Prefer a table for small exact lookup.
- Distinctive: line 25
Before genre, record question, unit, time grain, source, and absent status.
- Distinctive: line 67
Use position or length for comparison: Never exaggerate area or volume.
- Distinctive: line 72
Kill chartjunk: no heavy gridlines, non-data fills/gradients, drop shadows, decorative imagery, or non-data borders.
- Very specific: line 84
Use assets/chart-starter.html.
- Distinctive: line 108
Use specialist Tufte tooling only when available.
- Very specific: line 122
Stop / handoff: Stop when the data provenance or comparison question is missing.
“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 (honest, web-native, Tufte)
Make web-native charts with honest marks: tokenized, responsive, accessible. Reuse type, spacing, surface, color tokens; one accent adds craft but never competes with data. Use Tufte tooling when present.
Decision order
- State comparison question, source/grain, missingness, and uncertainty.
- Prefer a table for small exact lookup; chart shape, change, or comparison.
- Encode honestly (zero-baseline bars; 1-D length/position; lie factor ≈1), direct-label, and remove non-data ink.
- Provide tokenized, responsive, contrast-safe chart/table parity; keep data keyboard reachable.
Data quality
Before genre, record question, unit, time grain, source, and absent status. A missing month can mean zero, not observed, suppressed, not applicable, or not yet reported; these states cannot share a mark, line, or cell treatment.
Name the uncertainty band (e.g. confidence interval, forecast range, or measurement error), level if known, and shared method. Missing values, units, provenance, or interval meaning means stop at a representation spec/data-request checklist. Never invent a trend, interpolate a gap, or manufacture an empty chart.
For sparse monthly series, prefer an observed-month table or interval strip. If a line helps, break it at missing observations, plot estimated uncertainty only, label the gap, and never imply continuity with a continuous area.
Genre selection
| Data shape | Use | Not |
| Small; exact lookup | table (or supertable) | slow-lookup chart |
| 1 series/time | line / sparkline | 3D, decorative area |
| Few categories/one value | zero bar, direct-labeled | pie (hard angles) |
| Part-to-whole, 2–4 | bar/stacked; number + bar | pie/donut (>3 slices) |
| Many series/facets | small multiples (shared scale) | spaghetti |
| Group distribution | quartile/box or strip | bar-of-averages |
| Two variables | scatter with range frame | bordered box + gridlines |
| Table-row trend | inline sparklines | separate chart page |
| Geographic/multivariate | map / Minard-style layered | rainbow choropleth |
Default-challenge rule: justify an unprompted pie, 3-color bar, or spaghetti line, or use a stronger Tufte move (table, small multiples, sparkline, range frame).
Refuse misleading requests
Refuse a dramatic 3-D chart because depth, perspective, and occlusion encode absent values. Name the distortion; offer the smallest honest alternative: direct-labeled interval strip, observed-month table, shared-scale small multiple, or zero-baseline bar.
Non-negotiables
- Table for lookup; chart for shape. A 12-month trend may deserve a line; a 40-cell audit may belong in a sortable table.
- Bars start at zero when length encodes magnitude. For floating ranges or deltas, use explicit interval/difference encoding, not a truncated bar.
- Use position or length for comparison. Never exaggerate area or volume. Redundant color-plus-shape, label, or pattern aids identification/accessibility; channels must agree.
- Lie factor ≈ 1.0 (visual-change% ÷ data-change%, acceptable 0.95–1.05); check dramatic proportions.
- Direct labels, not a legend where feasible; label line end/bar.
- Kill chartjunk: no heavy gridlines, non-data fills/gradients, drop shadows, decorative imagery, or non-data borders.
- Limit hues to distinguishable colors; color is never the only channel. Use position,
direct label, or pattern too (color-blind + WCAG 1.4.1). Series colors come from
color-systemtokens and must hit ≥3:1 vs background and adjacent series. - Works in dark mode (re-check axes/text contrast).
- Responsive — SVG
viewBox/fluid width; no fixed px overflow at 320px. - Every chart has a text equivalent — takeaway caption plus accessible data table (visually-hidden or toggle); non-sighted users get the numbers.
Quick-start
Use assets/chart-starter.html; keep range-frame axis, direct end labels, caption, and parity.
References
references/tufte-and-genres.md— data-ink, lie factor, genres.references/web-and-a11y.md— tokens, SVG, parity.references/decision-records.md— novel-case ADR rules.
Evidence
Chart/table expose the same value, unit, uncertainty, missingness, source, and filter. Caption what can/cannot be concluded; record quality, genre choice/refusal, encoding, parity, and rendered evidence.
Check
- Table/genre fits the comparison, not a default?
- Zero bars, 1-D encoding, lie factor ≈1, direct labels/range frame, no chartjunk?
- Tokenized ≤5-hue non-color encoding, ≥3:1 contrast, dark mode, 320px behavior?
- Caption/table retain source, unit, uncertainty, filters, missingness; gaps imply no continuity.
How to deliver
State genre/rationale, material lie factor, parity, caption, contrast, and theming evidence. Use specialist Tufte tooling only when available.
Provenance
This is an independent web-and-accessibility synthesis of Tufte principles; use specialist assessment/rendering tools when available.
<!-- contract:v1:start -->Contract (generated)
Canonical detail: contract.json.
- Route: Data needs a chart, table, uncertainty treatment, or accessible comparison.; avoid: There is no data subject or the request is only a decorative illustration.
- Exclude: Do not choose a chart before identifying the comparison task. (+1 in contract.json)
- Stop / handoff: Stop when the data provenance or comparison question is missing. (+1 in contract.json); receives [color-system, design-system-interview, improve-existing-website, tasteroll] -> sends [a11y-pass, empty-states, tastecheck-pass]
- Output: honest chart/table recommendation and implementation plan
- Evidence:
table_with_evidencewithstatus,reason,remediation,evidence,provenance.
<!-- contract:v1:end -->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

