data-visualization-guide/SKILL.md
Guidance for designing charts, graphs, plots, dashboards, and data visualizations that communicate clearly and persuade. Use when creating or reviewing a visualization, choosing a chart type, picking a color palette, decluttering a busy graphic, fixing misleading axes or proportions, building a dashboard, annotating a figure, or turning data into a presentation, report, or data-driven story. Grounded in the standard data-visualization literature (Knaflic, Tufte, Cleveland & McGill, Cairo, Wilke, Munzner, Few, Berinato). Covers chart selection, graphical perception and encoding, color and accessibility, decluttering, graphical integrity, dashboards, and narrative. Does NOT cover building data pipelines or ETL, statistical modeling or analysis methods, BI tool/vendor selection, or general UI/UX layout (see ux-design-principles). Tool-agnostic, with optional Python recipes.
npx skillsauth add kayaman/skills data-visualization-guideInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A decision framework for turning data into graphics that communicate. Optimized for business and analytics work — reports, dashboards, slides, and the exec-facing "what should we do?" chart — but the principles are tool-agnostic and apply in Tableau, Python, R, JavaScript, or a spreadsheet.
The guidance distills the standard literature on the subject. See references/BOOKS.md for the fifteen books behind it (Knaflic, Wilke, Munzner, Cairo ×2, Dykes, Berinato, Camões, Setlur & Cogley, Meirelles, Krum, Duarte, Dougherty & Ilyankou, Khan, Kirk) and which file draws on each.
These are principles of human perception and communication, not chart-tool trends. They hold regardless of library or era.
ux-design-principlesA visualization is an act of communication, not decoration. Before drawing anything, you owe three answers (Munzner's what / why / how):
Get 1 and 2 right and the chart type often picks itself. Get the encoding right and the reader sees the point without effort. Everything else in this skill serves those three questions.
Explain-the-why runs throughout. Each rule is paired with the reason behind it, so you can apply it to cases this guide never anticipated. A rule you can't justify is one you'll misapply.
Use this loop when producing a visualization. Paste it and tick boxes for any non-trivial chart.
[ ] 1. State the question/decision in one sentence. Name the audience.
[ ] 2. Identify the data shape (see references/chart-selection.md).
[ ] 3. Pick the chart family from intent + data shape.
[ ] 4. Choose the encoding for accuracy (references/perception-and-encoding.md).
[ ] 5. Declutter: remove anything that isn't data or doesn't aid reading (references/decluttering-and-integrity.md).
[ ] 6. Direct attention: title states the takeaway; color/annotation highlight the point.
[ ] 7. Check integrity: axes, scales, proportions honest? (references/decluttering-and-integrity.md).
[ ] 8. Check accessibility: colorblind-safe, labeled, sufficient contrast (references/color-and-accessibility.md).
[ ] 9. Re-read as the audience. Is the message obvious in 5 seconds?
When reviewing a visualization, run the loop backwards as a critique: does the title carry a message? Could a different encoding be read more accurately? Is any ink not earning its place? Is anything misleading? Adopt a reviewer persona — you are a data-viz editor whose job is to make the single most important point land truthfully.
Read the file that matches the task — don't load all of them at once.
| You need to… | Read | | --- | --- | | See the right chart for a situation, with a rendered example + code | references/chart-gallery.md | | Pick a chart type from the data and the question | references/chart-selection.md | | Choose encodings the eye reads accurately; preattentive cues; Gestalt grouping | references/perception-and-encoding.md | | Choose a color palette; ensure colorblind safety and contrast | references/color-and-accessibility.md | | Strip clutter and keep the chart honest (axes, proportions) | references/decluttering-and-integrity.md | | Build a narrative, slide, or data story that drives action | references/storytelling.md | | Design a dashboard or single-screen monitoring view | references/dashboards.md | | Format titles & legends; annotate (titles/legends → storytelling; axes/numbers/gridlines/typography → decluttering; palettes → color) | references/storytelling.md, references/decluttering-and-integrity.md, references/color-and-accessibility.md | | Apply the principles in code (matplotlib / plotly / Vega-Lite) | references/recipes-python.md | | See the source books and what each contributes | references/BOOKS.md |
When you have no time to read further, these defaults are right far more often than not. Each links to the file that explains why and when to break it.
For a worked example of each situation above — rendered chart plus the exact code — see references/chart-gallery.md.
Specific traps that look fine until someone is misled. Details and fixes in the linked files.
Task: "Show the board how our five regions performed against quota this quarter."
This is the whole method in miniature: right question → right data shape → most-accurate encoding → declutter → direct attention → honest axis → takeaway title.
development
Architect and implement production-grade microservices systems in TypeScript (NestJS) and Python (FastAPI), including resilience, observability, testing, deployment, and migration guidance.
development
--- name: databricks-genie-spaces-best-practices description: Design, configure, curate, govern, monitor, and integrate Databricks AI/BI Genie Spaces — the natural-language-to-SQL surface over Unity Catalog. Covers space scoping, general instructions, parameterized example SQL, SQL functions, trusted assets, JOIN configuration, knowledge store, certified queries, benchmarks, monitoring tab, feedback loops, the Genie Conversation API, governance via Unity Catalog (row filters, column masks, embed
tools
Implement OTP and passwordless authentication on AWS for TypeScript projects using Cognito CUSTOM_AUTH triggers (default) or a custom DynamoDB-backed flow, with SES (email) and SNS (SMS) delivery. Use when the user mentions OTP, one-time password, passwordless login, magic link, Cognito custom auth, DefineAuthChallenge, CreateAuthChallenge, VerifyAuthChallengeResponse, SES verification email, SNS SMS code, or MFA over email/SMS. Covers architecture decision (Cognito vs custom), Lambda trigger handlers, SES/SNS notifiers, DynamoDB schema with TTL, rate limiting, constant-time comparison, threat model (enumeration, replay, brute force), and aws-sdk-client-mock testing.
tools
O'Reilly book reference lookup for software design decisions. Coding agents MUST use this skill whenever making or reviewing any design decision — choosing an architecture pattern, selecting a data structure, structuring a module, evaluating a library, deciding on an API contract, applying a design pattern, weighing trade-offs between approaches, or any moment where a choice between two or more implementation strategies comes up. The O'Reilly MCP handles the actual book search; this skill tells you how and when to invoke it. Trigger even for seemingly small decisions (naming, layering, concurrency model, error handling strategy) — the best engineers reach for authoritative references before committing to an approach.