CtrlK
BlogDocsLog inGet started
Tessl Logo

data-visualization

Create effective data visualizations with Python (matplotlib, seaborn, plotly). Use when building charts, choosing the right chart type for a dataset, creating publication-quality figures, or applying design principles like accessibility and color theory.

60

Quality

76%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./data/skills/data-visualization/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-organized, genuinely useful reference: a strong chart-selection table, executable Python patterns, and sharp design/accessibility guidance including a final checklist. Its main weaknesses are inline bloat that belongs in reference files (hurting progressive disclosure), some textbook design axioms and repeated code boilerplate Claude already knows, and only an implicit workflow with no validate-and-fix loop.

Suggestions

Split per-chart-type code patterns and the accessibility guide into one-level-deep reference files (e.g., references/chart-patterns.md, references/accessibility.md), keeping SKILL.md as the chart-selection table plus a quick-start pattern, and clearly signaling the references.

Trim content Claude already knows — 'bar charts start at zero', 'humans are bad at comparing angles', 'reduce chart junk' — and remove the repeated spines/tight_layout/savefig boilerplate from every snippet by stating it once in the setup section.

Add an explicit end-of-workflow step that ties the checklist to a validation loop: render the chart, run the accessibility checklist, fix issues, and re-render before sharing.

DimensionReasoningScore

Conciseness

The body is mostly efficient reference material (a tight chart-selection table, terse design bullets), but it pads in places Claude doesn't need: repeated boilerplate in every code snippet (spines removal, tight_layout, savefig), and design-principle axioms Claude already knows ('Bar charts start at zero: Always', 'Title states the insight', '8% of men are red-green colorblind'). This matches anchor 3 — mostly efficient with some unnecessary explanation — rather than anchor 4, where only minor instances could be trimmed.

3 / 5

Actionability

Code patterns are concrete and executable (copy-paste-ready line/bar/histogram/heatmap/small-multiples snippets with a working style setup, palettes, a format_number helper, and plotly examples). It stops short of anchor 5 because snippets assume an undefined 'df' with specific column names and the common cases are chart-type-only — no guidance on wiring real data, figure sizing for export formats, or verifying output rendering. Not anchor 3: nothing is pseudocode and the gaps are minor.

4 / 5

Workflow Clarity

There is a sensible implicit sequence (choose chart type → apply code pattern → apply design/accessibility principles) and a closing 'Accessibility Checklist' acting as a checkpoint, but no explicit multi-step workflow with validation between steps — e.g., nothing that says verify the rendered chart against the checklist or fix and re-render. This matches anchor 3 (sequence present but checkpoints implicit), not anchor 4 (most checkpoints explicit).

3 / 5

Progressive Disclosure

The file is a single ~300-line monolith with no bundle files; content that clearly belongs in one-level-deep references — per-chart-type code patterns, a full accessibility section, an interactive-charts guide — is all inlined. Section headers do provide some structure and navigation, matching anchor 3 ('some structure... content that should be separate is inline'), not anchor 2 since nothing is buried and headers are clear, and not anchor 4 because no reference split exists at all.

3 / 5

Total

13

/

20

Passed

Description

83%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description in third-person voice that pairs a concrete capability statement (domain + named libraries + several specific actions) with an explicit multi-trigger 'Use when' clause. The only weaknesses are a few missing natural synonyms (plots, graphs) and slight generic overlap with non-Python charting skills.

DimensionReasoningScore

Specificity

The description names the domain ('data visualizations'), the toolchain ('Python (matplotlib, seaborn, plotly)'), and several specific actions — 'building charts', 'choosing the right chart type for a dataset', 'creating publication-quality figures', 'applying design principles like accessibility and color theory'. It sits between anchor 3 (only 1-2 concrete actions) and anchor 5 (fully comprehensive coverage): multiple specific actions are listed, but coverage has minor gaps (e.g., interactive charts, saving/exporting output are not mentioned even though the body covers them).

4 / 5

Completeness

The description explicitly answers both questions: 'Create effective data visualizations with Python (matplotlib, seaborn, plotly)' states what it does, and an explicit 'Use when building charts, choosing the right chart type..., creating publication-quality figures, or applying design principles...' clause gives concrete trigger phrases. This matches the anchor-5 good example structurally (what + explicit Use-when with multiple concrete triggers).

5 / 5

Trigger Term Quality

Trigger phrases like 'building charts', 'choosing the right chart type', 'publication-quality figures', and 'accessibility and color theory' are natural things a user would say. It falls below anchor 5, which expects comprehensive synonyms and file extensions — common variations like 'plots', 'graphs', 'plot data', or 'make a figure of' are not covered, so a few natural terms are missing.

4 / 5

Distinctiveness Conflict Risk

The Python-library framing ('matplotlib, seaborn, plotly') carves a fairly distinct niche with clear triggers, so it would rarely fire for unrelated skills. It is not a 5 because the general terms 'charts'/'design principles' create minor overlap risk with generic charting, plotting, or design-guideline skills that don't involve Python.

4 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
anthropics/knowledge-work-plugins
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.