Data viz best practices
A Claude skill for reviewing or building charts, infographics, and dashboards. Grounded in Tufte, Few, and Knaflic's data visualization principles, with WCAG AA accessibility built in as a requirement, not an afterthought.
npx -y skills add callahkate/data-viz-best-practicesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 15 days oldThe repository was created 15 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Applies data visualization best practices to any chart, infographic, or dashboard, whether reviewing existing work or building something new. Covers chart type selection, accessibility (WCAG AA contrast, colorblind-safe palettes, non-color encoding), truthful scales, labeling clarity, and dashboard layout/hierarchy. Format-agnostic — works whether the visualization is code (matplotlib, D3, Chart.js), a design tool file (Figma, Canva, PowerPoint), a screenshot, or just a description of one. Use this skill any time the user mentions charts, graphs, infographics, dashboards, data visualization, "does this chart work," "review my viz," or wants help picking a chart type or improving one — even if they don't use the word "visualization" explicitly.
SKILL.md
6.5 KB, as published. Nobody here has run it
Data Visualization Best Practices
A format-agnostic skill for reviewing or building charts, infographics, and dashboards. Works the same whether the input is code, a design file, a screenshot, or a plain description — the principles don't change with the tool.
Step 0: Which mode?
Figure this out from context before doing anything else. If it's not obvious, ask.
- Review mode — user has an existing chart/dashboard (image, code, file, or description) and wants feedback
- Build mode — user wants a new chart/dashboard created or wants help picking the right chart type
The Core Checklist (applies in both modes)
Run every visualization against these seven checks. Reference files have the depth; this is the fast pass.
- Chart type fits the question. Does the chart type match what the data is actually trying to answer (comparison, trend, part-to-whole, distribution, relationship)? See
references/chart-type-guide.mdfor the decision tree. - Data-ink ratio. Every visual element should carry information. Flag: 3D effects, heavy gridlines, redundant legends, decorative gradients, unnecessary borders.
- Accessibility (WCAG AA). Non-negotiable, not a nice-to-have. See
references/accessibility-checklist.mdfor full detail:- Text contrast ≥ 4.5:1, large text/graphical objects ≥ 3:1
- Never encode meaning in color alone — pair with pattern, shape, position, or direct labels
- Colorblind-safe palette (check for red-green and blue-yellow confusion)
- Data available in a non-visual form (alt text, table, or caption) for anything conveying real information
- Truthful scales. Y-axis starting at zero for bar charts unless there's a stated, visible reason not to. No dual axes that imply false correlation. No distorted 3D perspective. Axis choices are sometimes a genuine trade-off (e.g., a compressed range makes small real changes visible, but a living/growing dataset will outgrow a manually-tuned truncation and need re-checking every time new data lands). When it's a trade-off rather than a clear violation, don't just prescribe a fix — name the trade-off in plain language and ask what the user prioritizes.
- Labeling clarity. Title states the takeaway, not just the topic ("Revenue grew 18% in Q2" beats "Q2 Revenue"). Axes labeled with units. Direct labels preferred over legends when there are ≤5 categories.
- Consistent encoding. Same color = same category across every chart in a dashboard. Same scale conventions throughout. Design in monochrome first; add color only to encode meaning or highlight a focus area — not decoration.
- Hierarchy (dashboards specifically). Most important metric gets the most visual weight and top-left/first position. Related charts grouped; unrelated ones separated.
- "Compared to what?" A number alone has no meaning — pair current values with a baseline, target, prior period, or segment. For product/marketing metrics, pair volume (signups, sessions) with quality/efficiency (activation rate, conversion rate) so nobody optimizes volume alone.
Review Mode Workflow
- Identify what the chart/dashboard is trying to communicate — ask if unclear.
- Run the 7-point checklist above. For each item, mark: ✅ Pass / ⚠️ Minor issue / ❌ Fails.
- Present findings as a short prioritized list — biggest impact first, not in checklist order. For each issue: what's wrong, why it matters, and the specific fix. For genuine trade-offs rather than clear violations, ask what the user is optimizing for instead of prescribing one answer (see Output Style).
- Don't rewrite the whole thing unless asked — flag issues first, offer to fix.
Build Mode Workflow
- Clarify the question the visualization needs to answer, and who's looking at it (technical audience vs. general audience changes density and annotation level). For a full dashboard (multiple charts, not one), use
references/dashboard-strategy.mdfirst — it covers audience/metric clarification, avoiding vanity metrics, and narrative structure before any chart gets picked. - Pick chart type using
references/chart-type-guide.md. - Draft the visualization in whatever format the user needs (code or description).
- Run the 7-point checklist against the draft before presenting it — don't wait for the user to catch accessibility or scale issues.
- Note any deliberate tradeoffs (e.g., "I used a non-zero baseline here because X, but flagged it in the title").
Output Style
- Keep feedback concise and prioritized — lead with the 1-3 things that matter most, not an exhaustive audit dump.
- Use plain language for why something matters, not just what to change. Default to jargon-free: if a technical term (baseline, data-ink, encoding) is genuinely useful, define it in the same sentence rather than assuming it's known.
- When the fix is a specific value (contrast ratio, hex code, spacing), give the exact number, not "increase contrast."
- Distinguish clear violations from genuine trade-offs. A violation gets a direct fix. A trade-off (e.g., axis compression, chart density vs. simplicity, static vs. interactive) gets the trade-off named in plain terms plus a clarifying question about what the user is optimizing for — don't silently pick one side and present it as the only answer.
Reference Files
references/chart-type-guide.md— decision tree for matching data shape to chart typereferences/accessibility-checklist.md— full WCAG AA specifics for data visualization, including contrast math and colorblind-safe palette optionsreferences/dashboard-strategy.md— audience/metric clarification, avoiding vanity metrics, narrative structure, and funnel-stage layout for multi-chart dashboards (draws on Tufte, Few, and Knaflic's dashboard/graphics principles)