dart-use-pattern-matching agent skill by flutter
Applies Dart 3 pattern matching, switch expressions, and destructuring to validate data schemas, parse polymorphic JSON, and replace complex if-else chains.
At a glance
| Publisher | Flutter Official |
|---|---|
| Repository | flutter/skills (24 listed skills) |
| Category | Developer Tools and Frameworks |
| License | BSD-3-Clause |
| Last commit | October 16, 2026 (repository) |
| SKILL.md | 238 lines, 1,569 words |
| Bundled files | 2 files |
| Quality score | 81/100 · B Passes all seven graded checks |
| Security scan | Not scanned |
| README badge | Get the badges for this listing |
Before you install
Read from the skill's files at the directory's October 19, 2026 snapshot: what ships with it, what its code reads, and the terms it is published under.
- Bundled scripts: none.
- License: BSD-3-Clause, an open-source or open-content license.
Install dart-use-pattern-matching
The skills CLI works with Claude Code, Codex, Cursor and other agents; the other routes copy the folder by hand.
npx skills add https://github.com/flutter/skills/tree/main/skills/dart-use-pattern-matching
tmp="$(mktemp -d)"
git clone --depth 1 https://github.com/flutter/skills.git "$tmp/repo"
mkdir -p .claude/skills
cp -R "$tmp/repo/"skills/dart-use-pattern-matching .claude/skills/
rm -rf "$tmp"
python3 ~/.codex/skills/.system/skill-installer/scripts/install-skill-from-github.py \
--repo flutter/skills \
--path skills/dart-use-pattern-matching
flutter/skills is third-party code. Read SKILL.md and any bundled scripts before you install it.
How the author describes it
Applies Dart 3 pattern matching, switch expressions, and destructuring idiomatically to validate data schemas, handle algebraic data types, and decompose control flow. Use when refactoring complex if-else chains, parsing polymorphic JSON or API responses, destructuring Lists, URI/path segments, String.split() tokens, Records, or Maps, or enforcing exhaustiveness on sealed classes. Don't use for simple boolean conditions, single-variable type promotion (use `is`), or basic collection filtering.
From the description field of SKILL.md. Agents read this line to decide when to load the skill.
Sections in SKILL.md
- Contents
- Pattern Selection Strategy
- Switch Statements vs. Expressions
- Core Pattern Implementations
- Pragmatic Balance & Anti-Patterns
- 1. Prefer is Type Promotion over if-case for Single Promotable Variables
- 2. Consolidate Nullable Types in Switch Arms
- 3. Preserve Fast-Fail Validation (Do Not Silently Drop Data)
- 4. Avoid Single-Case or Boolean Switches
- 5. Avoid Gratuitous Object Destructuring
- 6. Avoid if-case for Standalone Scalar Comparisons
- Workflows
- Task Progress: Implementing Pattern Matching
- Feedback Loop 1: Exhaustiveness Checking (Static Verification)
- Feedback Loop 2: Runtime Map & JSON Pattern Verification
- Examples
Files in the skill folder
SKILL.mdexamples/json_patterns.dart
Suede Skill Check: 81/100 · B
Report snapshot · · graded-v2
The rubric totals 100 points; published scores are capped at 99. Security scan: not scanned.
Source revision: b60d0736a33a. Report version 4ef5f4edb507. Badge URLs follow the latest listing; save the report to keep this version.
Download report · Request a fresh review
What to review next
- Example request: 0 of 3 points. 3 when the description quotes an example request (3–60 characters in quotation marks).
- Reference files: 0 of 3 points. 3 when the skill folder ships a references/, reference/ or docs/ folder.
- Bundled scripts: 0 of 2 points. 2 when the skill folder ships a scripts/ folder.
Add declarations and bundled files when they describe the skill’s actual needs. Update the source, then request a fresh review with the changed commit or PR.
dart-use-pattern-matching passes the required frontmatter check and all seven graded checks, which cover the SKILL.md format, a declared license and a commit in the last year. Those checks earn 56 of the score’s points; the rest come from description quality, instruction depth, bundled files, maintenance and curated-list citations. How the score works.
See the checks and points
| Check | Result |
|---|---|
| Frontmatter parses and declares a name and a description | Pass |
| Name uses lowercase letters, digits and hyphens, 64 characters or fewer | Pass |
| Name matches the skill's folder name | Pass |
| Description is between 50 and 1,024 characters | Pass |
| Description says when an agent should use the skill | Pass |
| SKILL.md body is 500 lines or fewer | Pass |
| A license is declared in the frontmatter or the repository | Pass |
| Repository has a commit in the last 12 months | Pass |
| Score component | Points |
|---|---|
| Structural checks | 56 of 56 |
| Description length | 5 of 5 |
| Boundary clause | 4 of 4 |
| Example request | 0 of 3 |
| Instruction depth | 7 of 7 |
| Reference files | 0 of 3 |
| Bundled scripts | 0 of 2 |
| Recent maintenance | 9 of 9 |
| Curated-list citations | 0 of 7 |
| Tool permissions declared | 0 of 2 |
| Compatibility declared | 0 of 2 |
Two badges for dart-use-pattern-matching
Choose the numeric badge, the letter badge, or both. Each links to this skill’s Suede listing; either valid linked badge can qualify for the feature offer.
[](https://skills.suedeai.ai/directory/flutter/skills/dart-use-pattern-matching/)
[](https://skills.suedeai.ai/directory/flutter/skills/dart-use-pattern-matching/)<a href="https://skills.suedeai.ai/directory/flutter/skills/dart-use-pattern-matching/"><img src="https://skills.suedeai.ai/directory/flutter/skills/dart-use-pattern-matching/score.svg" alt="Suede Skill Check: 81/100" width="160" height="175"></a>
<a href="https://skills.suedeai.ai/directory/flutter/skills/dart-use-pattern-matching/"><img src="https://skills.suedeai.ai/directory/flutter/skills/dart-use-pattern-matching/badge.svg" alt="Suede Skill Check: Grade B" width="160" height="175"></a>Suede Certified on the shield refers to this published structural quality check. Security scan: not scanned. Read the methodology.
Limited-time feature offer: display either the numeric or letter badge in your repository or skill README (both also qualify), then request badge verification. Eligible skills scoring 80–99 can receive a featured placement after Suede verifies at least one valid badge linked to the skill’s listing. Suede has not announced an end date.
Where this skill is cited
flutter/skills is listed from its publisher's official collection or a listing request.