CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

plotly

Interactive visualization library. Use when you need hover info, zoom, pan, or web-embeddable charts. Best for dashboards, exploratory analysis, and presentations. For static publication figures use matplotlib or scientific-visualization.

Quality

71%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Failed to scan

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./plugins/AI-Agents-Safe-Coding-Skills-claude/skills/plotly/SKILL.md

The canonical home for this skill is plotly in administrakt0r/AI-Agents-Safe-Coding-Skills

SKILL.md
Quality
Evals
Security

Quality

Content

63%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.

A well-organized, code-dense overview with clear API-selection guidance and mostly executable examples. The two real weaknesses are missing bundle files behind every reference pointer and moderate redundancy with Claude's existing Plotly knowledge in the chart-type catalog and standard-usage workflows.

Suggestions

Ship the five referenced files (plotly-express.md, graph-objects.md, chart-types.md, layouts-styling.md, export-interactivity.md) in a references/ directory and fix the 'reference/' vs 'references/' path inconsistency, or remove the pointer sentences and Reference Files section.

Trim the 40+ chart-type catalog and standard-usage workflow snippets that restate Claude's existing Plotly knowledge, keeping only the px-vs-go decision guidance and non-obvious details (kaleido requirement, cdn include_plotlyjs option, deprecated run_server).

Make snippets self-contained by defining the variables used (data, z_data, correlation_matrix) or noting where they come from, so each example is truly copy-paste ready.

DimensionReasoningScore

Conciseness

The body is operational with no conceptual fluff, but the 40+ chart-type catalog and standard-usage snippets (candlestick syntax, subplot boilerplate, basic px.scatter usage) restate knowledge Claude already has about this well-known library and duplicate what reference/chart-types.md should carry. Not 4 because several sections could be trimmed or moved out; not 2 because there is no explanatory padding of basic concepts.

3 / 5

Actionability

Nearly all code blocks are executable and concrete (quick start, make_subplots, hovertemplate, write_html/write_image, Dash app). Not 5 because several snippets use undefined variables (data, z_data, correlation_matrix, and df assumed from earlier) and app.run_server(debug=True) is deprecated in current Dash versions, so they are not fully copy-paste ready; not 3 because nothing is pseudocode or abstract.

4 / 5

Workflow Clarity

A coherent path is laid out: install, quick start, explicit px-vs-go decision criteria in 'Choosing Between APIs', capability areas, then export options. No validation checkpoints exist, but no destructive or batch operations are involved, so the feedback-loop cap does not apply. Not 5 because there are no checkpoints at all (e.g. verifying a figure rendered or exported correctly); not 3 because the sequence and decision points are explicit rather than gapped.

4 / 5

Progressive Disclosure

On paper the structure is good: one-level-deep references ('See reference/plotly-express.md for complete guide'), a Reference Files index section, and appropriately overview-level inline content. However, scored against the actual bundle, no references/ directory exists — all five referenced files are missing — and the paths use 'reference/' (singular) rather than the conventional 'references/', so every pointer dead-ends. Not 4 or above because the referenced files do not exist; not 2 because nothing is buried or monolithic and the signaling itself is clear.

3 / 5

Total

14

/

20

Passed

Description

68%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 with explicit use-when triggers, good natural keywords, and excellent conflict-avoidance routing to matplotlib for static figures. Its main defects are the thin 'what' statement and a second-person 'you need' construction that costs it specificity under the rubric's voice penalty.

Suggestions

Replace second-person phrasing with third person or imperative voice, e.g. 'Use when hover info, zoom, pan, or web-embeddable charts are needed', to avoid the specificity penalty.

Strengthen the 'what' with one or two concrete actions, e.g. 'Creates interactive charts and dashboards with 40+ chart types', instead of the bare phrase 'Interactive visualization library'.

Add common trigger synonyms such as 'plot', 'graph', and 'interactive chart' to broaden natural keyword coverage.

DimensionReasoningScore

Specificity

Names the domain ('Interactive visualization library') and several concrete features ('hover info, zoom, pan, or web-embeddable charts'), which fits anchor 3, but the second-person phrasing 'Use when you need hover info' triggers the mandatory 1-point specificity penalty, dropping it to 2. It is not 1 because the domain and concrete capabilities are explicitly stated rather than vague.

2 / 5

Completeness

Both what ('Interactive visualization library') and when ('Use when you need hover info, zoom, pan, or web-embeddable charts. Best for dashboards, exploratory analysis, and presentations') are present, with concrete trigger phrases and an explicit boundary rule for matplotlib. It is not 5 because the 'what' is a single thin phrase with no concrete actions listed, and not 3 because the 'when' clause is explicit rather than weakly implied.

4 / 5

Trigger Term Quality

Good natural-keyword coverage: 'hover info', 'zoom', 'pan', 'charts', 'dashboards', 'exploratory analysis', 'presentations' are phrases users would actually say. It is not 5 because common variations like 'plot', 'graph', or 'interactive chart' are missing, and not 3 because coverage clearly exceeds 'some relevant keywords'.

4 / 5

Distinctiveness Conflict Risk

Clear niche (interactivity: 'hover info, zoom, pan, or web-embeddable charts') with active disambiguation against the nearest competitors ('For static publication figures use matplotlib or scientific-visualization'), giving minimal conflict risk. Not 4 because it does not merely reduce overlap — it explicitly routes borderline cases to the correct alternative skill.

5 / 5

Total

15

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

14

/

16

Passed

Repository

administrakt0r/AI-Agents-Safe-Coding-Skills

Path

plugins/AI-Agents-Safe-Coding-Skills-claude/skills/plotly/SKILL.md

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.