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 description. It lacks concrete actions (what it does) and completely omits trigger guidance (when to use it), making it difficult for Claude to reliably select this skill over others in a large skill set.
Suggestions
Add a 'Use when...' clause specifying trigger conditions, e.g., 'Use when the user asks about Flutter app development, Riverpod state management, Freezed data classes, go_router navigation, or mocktail-based testing.'
List specific concrete actions the skill covers, e.g., 'Creates Flutter widgets with Riverpod providers, generates Freezed data models, configures go_router navigation, and writes unit tests using mocktail.'
Include broader natural language trigger terms like 'mobile app', 'Dart', 'state management', 'routing', 'unit testing', and 'code generation' to improve discoverability.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Names the domain (Flutter development) and lists specific technologies (Riverpod, Freezed, go_router, mocktail), but doesn't describe concrete actions like 'create widgets', 'manage state', 'write tests', or 'define routes'. | 2 / 3 |
Completeness | Partially addresses 'what' (Flutter development with specific packages) but completely lacks a 'when' clause or any explicit trigger guidance for when Claude should select this skill. | 1 / 3 |
Trigger Term Quality | Includes relevant technical keywords like 'Flutter', 'Riverpod', 'Freezed', 'go_router', and 'mocktail' that users would naturally mention, but misses broader terms like 'state management', 'routing', 'unit testing', 'Dart', or 'mobile app development'. | 2 / 3 |
Distinctiveness Conflict Risk | The specific technology stack (Riverpod, Freezed, go_router, mocktail) provides some distinctiveness, but 'Flutter development' is broad enough to overlap with other Flutter-related skills, and the lack of concrete actions makes boundaries unclear. | 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 is essentially a comprehensive Flutter/Riverpod cheat sheet with high-quality, executable code examples, but it lacks workflow guidance and is poorly structured for a SKILL.md. It reads more like a reference document than an instructional skill — there's no sequencing of steps, no validation checkpoints (e.g., when to run build_runner), and no progressive disclosure. The inclusion of boilerplate files (pubspec, CI, analysis_options) inflates the token cost without adding proportional value.
Suggestions
Add a workflow section that sequences how to build a feature: create model → run build_runner → create provider → create widget → write tests, with explicit validation steps (e.g., 'Run `dart run build_runner build --delete-conflicting-outputs` and verify no errors before proceeding').
Move pubspec.yaml, analysis_options.yaml, and GitHub Actions configuration into separate bundle files and reference them from the main SKILL.md to reduce token cost and improve progressive disclosure.
Remove or significantly condense sections covering concepts Claude already knows well (basic go_router navigation commands, standard project structure conventions) and focus on project-specific conventions or non-obvious patterns.
Add a brief 'Quick Start' section at the top summarizing the key decisions (Riverpod for state, Freezed for models, go_router for navigation, mocktail for testing) and linking to each section, rather than presenting everything linearly.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is largely code examples which are efficient, but it's quite long (~400+ lines) and covers many topics that Claude already knows well (basic Flutter patterns, go_router navigation, pubspec.yaml structure, GitHub Actions CI setup, analysis_options.yaml). The anti-patterns list is useful but some items are common knowledge. The pubspec, CI, and analysis_options sections add significant bulk without much unique instructional value. | 2 / 3 |
Actionability | All code examples are concrete, executable, and copy-paste ready. Provider types, Notifier patterns, Freezed models, go_router configuration, widget patterns, and testing examples are all fully fleshed out with real Dart code that can be directly used. | 3 / 3 |
Workflow Clarity | There is no clear workflow or sequenced process described. The skill is a reference catalog of patterns and code snippets, but lacks any guidance on how to approach building a feature end-to-end, when to run build_runner for code generation, or validation steps. For a skill involving code generation (Freezed, Riverpod), the absence of a 'run build_runner after creating models' workflow is a significant gap. | 1 / 3 |
Progressive Disclosure | The content is a monolithic wall of code examples with no references to external files and no layered structure. Everything from project structure to CI configuration is inlined in a single file. Content like pubspec.yaml, analysis_options.yaml, and GitHub Actions could easily be separated into reference files, with the main skill focusing on the core patterns and workflows. | 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 | |
7e5f7a2
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.