Flutter development with Riverpod state management, Freezed, go_router, and mocktail testing
39
38%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/flutter/SKILL.mdQuality
Discovery
32%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 identifies a clear technology stack but reads more like a tag list than a functional skill description. It lacks concrete actions (what the skill does) and entirely omits trigger guidance (when to use it), making it difficult for Claude to reliably select this skill from a large pool.
Suggestions
Add explicit concrete actions, e.g., 'Scaffolds Flutter widgets, implements Riverpod providers, generates Freezed data classes, configures go_router navigation, and writes unit tests with mocktail.'
Add a 'Use when...' clause with natural trigger terms, e.g., 'Use when the user asks about Flutter app development, state management with Riverpod, code generation with Freezed, routing with go_router, or mocking in Flutter tests.'
Include broader natural-language synonyms like 'mobile app', 'state management', 'routing', 'unit testing', and 'Dart' to improve trigger term coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Flutter development) and lists specific technologies (Riverpod, Freezed, go_router, mocktail), but does not describe concrete actions like 'create widgets', 'manage state', 'write tests', or 'generate routes'. | 2 / 3 |
Completeness | Provides a partial 'what' (Flutter development with specific libraries) but completely lacks any 'when' clause or explicit trigger guidance. Per the rubric, a missing 'Use when...' clause caps completeness at 2, and since the 'what' is also weak (no concrete actions), this scores a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant technical keywords (Flutter, Riverpod, Freezed, go_router, mocktail) that a developer would naturally mention, but misses broader natural terms like 'state management', 'routing', 'unit testing', 'code generation', or 'mobile app development'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of Flutter + Riverpod + Freezed + go_router + mocktail is fairly specific and unlikely to conflict with generic coding skills, but could overlap with a general Flutter skill or a general Dart development skill since no clear boundaries are drawn. | 2 / 3 |
Total | 7 / 12 Passed |
Implementation
44%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill provides excellent, executable code examples covering the Flutter/Riverpod/Freezed/go_router/mocktail stack, making it highly actionable. However, it reads more like a reference cheat sheet than a skill guide — it lacks workflow sequencing (especially around the critical build_runner code generation step), is overly long with boilerplate content Claude doesn't need (pubspec.yaml, CI config, analysis_options), and dumps everything into one monolithic file without progressive disclosure.
Suggestions
Add a clear development workflow section sequencing the steps: define Freezed model → run `dart run build_runner build --delete-conflicting-outputs` → verify generated files → create providers → build widgets, with validation checkpoints.
Move boilerplate reference content (pubspec.yaml, GitHub Actions, analysis_options.yaml) into separate bundle files and reference them from the main SKILL.md with one-line links.
Remove or drastically shorten sections Claude already knows how to produce (e.g., full pubspec.yaml, full CI config) and focus the main file on the non-obvious patterns and anti-patterns specific to this stack.
Add a quick-start overview section at the top that orients Claude on when to use which provider type and how the layers (data/domain/presentation) interact, before diving into code examples.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is largely code examples which are efficient, but it's quite long and covers many topics (pubspec.yaml, GitHub Actions, analysis_options.yaml) that are boilerplate Claude can generate without instruction. The anti-patterns list is useful but some items are obvious to Claude. The project structure section is verbose for something Claude already understands. | 2 / 3 |
Actionability | Nearly all guidance is provided as fully executable, copy-paste-ready code examples. Provider types, Freezed models, go_router configuration, testing patterns with mocktail, and CI configuration are all concrete and complete. | 3 / 3 |
Workflow Clarity | There is no sequenced workflow for multi-step processes. Code generation with build_runner is mentioned in CI but never explained as a development workflow step. There's no guidance on the order of operations (e.g., define model → run build_runner → create provider → build widget), and no validation checkpoints for the code generation pipeline which is a critical multi-step process in Freezed/Riverpod development. | 1 / 3 |
Progressive Disclosure | The content is a monolithic wall of text with no references to external files and no layered organization. Everything from basic provider types to CI configuration to linting rules is dumped into a single file with no navigation structure or separation of concerns. This would benefit greatly from splitting into separate reference files. | 1 / 3 |
Total | 7 / 12 Passed |
Validation
81%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 9 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
skill_md_line_count | SKILL.md is long (584 lines); consider splitting into references/ and linking | Warning |
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 9 / 11 Passed | |
65efb33
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.