CtrlK
BlogDocsLog inGet started
Tessl Logo

dart-use-pattern-matching

Use switch expressions and pattern matching where appropriate

56

Quality

65%

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 ./skills/dart-use-pattern-matching/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

81%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 content is a well-organized, actionable reference with concrete syntax and executable examples, plus a genuine validation feedback loop. Its main weaknesses are a compile-bug in one example and the absence of any progressive disclosure into separate files despite exceeding 50 lines.

Suggestions

Fix the guard-clause example so its pattern fields match the defined classes (use `Square(length: var l)` / `Circle(radius: var r)` or redefine the classes with a shared `size` field).

Trim the few remaining framing phrases (e.g. "Follow these conditional guidelines:") to tighten conciseness toward a lean 5.

Consider moving the longer worked examples into a separate references file linked from the Examples section to improve progressive disclosure.

DimensionReasoningScore

Conciseness

The body is dense and mostly lean — syntax-plus-rule bullets with no padding about what pattern matching is or how libraries work — with only a few minor intro phrases ("Follow these conditional guidelines", "Implement patterns using the following syntax and rules") that could be trimmed.

4 / 5

Actionability

Mostly executable guidance: each pattern has exact syntax and the JSON, sealed-class, and swapping examples are copy-paste ready; however the guard-clause example references `Square(size: var s)` / `Circle(size: var s)` when the defined fields are `length` and `radius`, so that snippet would not compile.

4 / 5

Workflow Clarity

Provides a clear implementation checklist and an explicit exhaustiveness feedback loop (run `dart analyze` → review "not exhaustively matched" errors → fix by adding cases or a wildcard), satisfying the validation/checklist/feedback-loop anchors.

5 / 5

Progressive Disclosure

Good structure with a table of contents, anchored section headers, and easy navigation; the skill is over 50 lines with no bundle files or one-level-deep references, so some inline reference/example material could be split out, leaving minor organization gaps.

4 / 5

Total

17

/

20

Passed

Description

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

The description states a clear purpose and uses natural trigger terms, but it is terse, lacks an explicit "Use when..." clause, and does not bound the skill's triggers narrowly enough to distinguish it from generic pattern-matching skills.

Suggestions

Add an explicit 'Use when...' clause listing concrete trigger situations, e.g. 'Use when writing Dart code that switches over sealed classes, destructuring records/JSON, or needs exhaustive matching.'

Broaden trigger terms to include natural variations a user might say: 'patterns', 'exhaustiveness', 'sealed classes', 'destructuring', 'switch cases'.

Tie the description to Dart explicitly and enumerate a couple of the specific pattern types to improve distinctiveness and specificity.

DimensionReasoningScore

Specificity

Names the domain and one-to-two concrete actions ("switch expressions and pattern matching") but coverage is not comprehensive — no mention of exhaustiveness, sealed classes, destructuring, or the specific pattern types the body covers.

3 / 5

Completeness

Provides a clear "what" (use switch expressions and pattern matching) but no explicit "when" / "Use when..." clause; "where appropriate" is only a weak implicit trigger, so completeness is capped at 3 per the rubric guideline.

3 / 5

Trigger Term Quality

Contains the two natural Dart phrases a user would say ("switch expressions", "pattern matching"), but misses common variations and synonyms (patterns, exhaustiveness, sealed classes, destructuring, switch cases).

3 / 5

Distinctiveness Conflict Risk

"pattern matching" is a multi-language feature that could overlap with similar skills in other languages, and there is no trigger scoping; the description is somewhat specific but not clearly niched to Dart alone.

3 / 5

Total

12

/

20

Passed

Validation

93%

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

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

Total

15

/

16

Passed

Repository
flutter/agent-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.