Low-level plotting library for full customization. Use when you need fine-grained control over every plot element, creating novel plot types, or integrating with specific scientific workflows. Export to PNG/PDF/SVG for publication. For quick statistical plots use seaborn; for interactive plots use plotly; for publication-ready multi-panel figures with journal styling, use scientific-visualization.
78
70%
Does it follow best practices?
Impact
94%
1.06xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./scientific-skills/matplotlib/SKILL.mdQuality
Discovery
89%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong skill description that excels at routing by explicitly defining its niche (low-level, fine-grained plot customization) and clearly differentiating from related skills (seaborn, plotly, scientific-visualization). The main weakness is that the specific capabilities could be more concrete — listing actual plot types or customization actions rather than staying at the level of 'full customization' and 'novel plot types'.
Suggestions
Add more concrete action verbs and specific capabilities, e.g., 'customize axes, legends, colormaps, annotations; create bar charts, scatter plots, heatmaps, contour plots' to improve specificity.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | It names the domain (plotting) and some actions (full customization, creating novel plot types, exporting to PNG/PDF/SVG), but doesn't list multiple concrete specific actions like 'create bar charts, scatter plots, heatmaps, annotate axes, customize legends'. | 2 / 3 |
Completeness | Clearly answers both 'what' (low-level plotting library for full customization, export to PNG/PDF/SVG) and 'when' (need fine-grained control, novel plot types, scientific workflows). Also explicitly states when NOT to use it, directing to seaborn, plotly, or scientific-visualization for other cases. | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'plotting', 'plot', 'customization', 'PNG/PDF/SVG', 'publication', 'scientific workflows', 'multi-panel figures'. Also references competing tools (seaborn, plotly) which helps with routing. Users asking for fine-grained plot control would naturally use these terms. | 3 / 3 |
Distinctiveness Conflict Risk | Excellent distinctiveness — explicitly differentiates itself from seaborn (quick statistical plots), plotly (interactive plots), and scientific-visualization (publication-ready multi-panel figures with journal styling). This clear boundary-setting makes it very unlikely to conflict with related skills. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
50%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill reads like a comprehensive matplotlib tutorial rather than a concise skill file for Claude. It contains substantial amounts of information Claude already knows (basic concepts, plot type descriptions, what the library hierarchy is), making it very token-inefficient. The actionability is strong with executable code examples throughout, but the content would benefit greatly from aggressive trimming to focus only on project-specific conventions, non-obvious patterns, and the specific workflow preferences the user wants enforced.
Suggestions
Remove the 'Core Concepts', 'When to Use This Skill', 'Integration with Other Tools', and 'Additional Resources' sections entirely — Claude already knows all of this information about matplotlib.
Trim the plot types section to just the code snippets without descriptions of what each plot type is for (e.g., remove 'Time series, continuous data, trends' annotations).
Move the detailed plot types catalog and styling options entirely into the referenced files and keep only the most essential patterns (OO interface template, save workflow) in the main skill.
Add validation guidance for the save workflow — e.g., verify file was created, check file size is reasonable, confirm format-specific requirements for publication submissions.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is extremely verbose, explaining concepts Claude already knows (what matplotlib is, the hierarchy of Figure/Axes/Artist/Axis, what each plot type is for, what two interfaces exist). The 'When to Use This Skill' section, 'Core Concepts' section, and 'Integration with Other Tools' section are largely unnecessary padding. The overview restates the description. Much of this is textbook-level matplotlib knowledge that Claude already possesses. | 1 / 3 |
Actionability | The skill provides fully executable, copy-paste ready code examples throughout — from basic plots to subplots, 3D plots, saving figures, and styling. Code snippets are complete with imports and realistic parameters. | 3 / 3 |
Workflow Clarity | The workflows are presented as numbered sections with clear steps, but there are no validation checkpoints or feedback loops. For a plotting skill, there's no guidance on verifying output quality (e.g., checking saved file exists, verifying dimensions, reviewing output). The numbered workflow sections are more of a catalog than a sequenced process. | 2 / 3 |
Progressive Disclosure | The skill references external files (references/plot_types.md, references/styling_guide.md, references/api_reference.md, references/common_issues.md, scripts/plot_template.py, scripts/style_configurator.py) which is good structure, but no bundle files are provided, so these references are broken. Additionally, the main file contains too much inline content that could be offloaded to those reference files — the plot types catalog and styling details are extensive inline content that the references supposedly cover. | 2 / 3 |
Total | 8 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
metadata_version | 'metadata.version' is missing | Warning |
Total | 10 / 11 Passed | |
cbcae7b
Table of Contents
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.