CtrlK
BlogDocsLog inGet started
Tessl Logo

react-flow

React Flow (@xyflow/react) for workflow visualization with custom nodes and edges. Use when building graph visualizations, creating custom workflow nodes, implementing edge labels, or controlling viewport. Triggers on ReactFlow, @xyflow/react, Handle, NodeProps, EdgeProps, useReactFlow, fitView.

64

Quality

75%

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 ./.claude/skills/react-flow/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%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 solid, code-heavy reference body with well-signaled bundle references and mostly executable examples. Its weaknesses are moderate: redundant useReactFlow/nodrag coverage, an unnecessary introductory paragraph, and some inline sections duplicating reference-file content.

Suggestions

Merge the 'State Management > useReactFlow Hook' and 'Viewport Control' sections into one, keeping the full method listing in only one place and pointing to references/viewport.md for the rest.

Cut the introductory paragraph ('It provides a highly customizable framework for creating visual programming interfaces, process flows, and network visualizations') and the definitional lines ('Nodes are the building blocks of the graph', 'Edges connect nodes') — keep only what is specific to React Flow's API.

Slim the inline Events and Viewport sections to one representative example each and let references/events.md and references/viewport.md carry the catalogs, removing the duplicated 'nodrag' pattern from either 'Key Patterns' or 'Common Patterns'.

DimensionReasoningScore

Conciseness

Mostly code-driven and efficient, but includes unnecessary boilerplate ('React Flow... is a library for building node-based graphs... It provides a highly customizable framework for...') and real duplication: the useReactFlow method listing appears in both 'State Management' and 'Viewport Control', and the 'nodrag' pattern appears in both 'Key Patterns' and 'Common Patterns'. Matches anchor 3 ('mostly efficient but includes some unnecessary explanation or could be tightened') better than anchor 4, since the duplication goes beyond minor trimming.

3 / 5

Actionability

Largely copy-paste-ready TSX covering installation, basic setup, controlled flow, custom nodes/edges, and the provider pattern, matching anchor 4. Not a 5 due to minor gaps: the nodeTypes registration snippet uses NodeTypes without importing it, and the Viewport example returns null with a '// Use position to add node' placeholder.

4 / 5

Workflow Clarity

A clear learning progression (install → basic setup → controlled state → custom nodes/edges → viewport → events → references) with no destructive or batch operations requiring validation, matching anchor 4. Not a 5 because there is no decision guidance for which approach fits which task (e.g., uncontrolled vs controlled, when to reach for a reference file).

4 / 5

Progressive Disclosure

Good structure matching anchor 4: core patterns inline with a few key examples, bulk detail in four real one-level-deep reference files, each clearly signaled inline ('See [Custom Nodes Reference](./references/custom-nodes.md) for...') and consolidated in a final 'Reference Files' section. Not a 5 because the Events and Viewport sections carry substantial inline detail that duplicates their reference files.

4 / 5

Total

15

/

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: it names a clear niche library, answers both 'what' and 'when' explicitly, and includes a dedicated trigger-term list. The main weakness is that several trigger terms are API identifiers rather than phrases a user would naturally say.

DimensionReasoningScore

Specificity

Names the domain ('React Flow (@xyflow/react) for workflow visualization with custom nodes and edges') and lists several concrete capabilities ('implementing edge labels, or controlling viewport'), matching anchor 4. Not a 5 because coverage has gaps — programmatic node manipulation, events, and state management are absent from the description.

4 / 5

Completeness

Clearly and explicitly answers both what ('React Flow (@xyflow/react) for workflow visualization with custom nodes and edges') and when ('Use when building graph visualizations, creating custom workflow nodes, implementing edge labels, or controlling viewport'), plus a dedicated trigger-term list. Matches anchor 5 exactly.

5 / 5

Trigger Term Quality

Good keyword coverage including the natural library names ('ReactFlow, @xyflow/react') and task phrases ('graph visualizations', 'workflow nodes', 'edge labels', 'viewport'), matching anchor 4. Not a 5 because 'Handle', 'NodeProps', 'EdgeProps', 'fitView' are API identifiers rather than natural user phrases, and synonyms like 'flowchart', 'node editor', or 'diagram' are missing.

4 / 5

Distinctiveness Conflict Risk

A specific library with distinct triggers ('@xyflow/react', 'useReactFlow', 'NodeProps') keeps conflict risk low, matching anchor 4. Not a 5 because generic tokens ('Handle', 'fitView', 'graph visualizations') carry minor overlap risk with general React and charting/visualization skills.

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
shep-ai/shep
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.