Flutter development with Riverpod state management, Freezed, go_router, and mocktail testing
56
48%
Does it follow best practices?
Impact
Pending
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
40%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 specific technology stack clearly, which helps with distinctiveness, but it reads more like a tag list than a functional description. It lacks concrete actions (what the skill actually does) and has no 'Use when...' clause to guide skill selection. Adding explicit actions and trigger conditions would significantly improve its utility for skill matching.
Suggestions
Add concrete actions describing what the skill does, e.g., 'Builds Flutter widgets, manages app state with Riverpod providers, defines immutable models with Freezed, configures navigation with go_router, and writes unit tests using mocktail.'
Add an explicit 'Use when...' clause, e.g., 'Use when developing Flutter/Dart mobile applications, setting up state management, defining routes, creating data models, or writing mock-based tests.'
Include broader natural trigger terms like 'Dart', 'mobile app', 'state management', 'routing', 'unit testing', and 'code generation' to capture more user query variations.
| 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 any 'when' clause or explicit trigger guidance. Per rubric guidelines, a missing 'Use when...' clause caps completeness at 2, and the 'what' itself is also weak (no concrete actions), warranting a 1. | 1 / 3 |
Trigger Term Quality | Includes relevant technical keywords like 'Flutter', 'Riverpod', 'Freezed', 'go_router', and 'mocktail' that users familiar with the stack would mention, but misses broader natural terms like 'state management', 'routing', 'unit testing', 'mobile app', or 'Dart'. | 2 / 3 |
Distinctiveness Conflict Risk | The combination of Flutter + Riverpod + Freezed + go_router + mocktail is a very specific technology stack that creates a clear niche unlikely to conflict with other skills. | 3 / 3 |
Total | 8 / 12 Passed |
Implementation
57%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This is a comprehensive Flutter/Riverpod reference with excellent, executable code examples covering all the key libraries mentioned. However, it suffers from being a monolithic document that tries to cover everything in one file, and includes boilerplate content (CI config, pubspec, analysis_options) that could be split into reference files. The lack of explicit development workflows (e.g., adding a new feature end-to-end with code generation steps) limits its effectiveness as a procedural guide.
Suggestions
Split boilerplate content (pubspec.yaml, GitHub Actions, analysis_options.yaml) into separate reference files and link to them from the main skill with clear signposts like '**CI setup**: See [CI.md](CI.md)'
Add an explicit development workflow section with numbered steps for common tasks like 'Adding a new feature' (create freezed model → run build_runner → verify generated files → create provider → build widget → write test)
Remove or significantly trim content Claude already knows well, such as basic go_router navigation methods (context.go, context.push, context.pop) and standard project structure comments
Add a validation step for code generation: e.g., 'After modifying Freezed models, run `dart run build_runner build --delete-conflicting-outputs` and verify no errors before proceeding'
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient with good code examples, but it's quite long and includes some content Claude already knows (e.g., basic navigation methods like context.go/push/pop, standard pubspec.yaml structure, GitHub Actions boilerplate, analysis_options.yaml). The project structure section with extensive directory comments adds bulk without much unique value. | 2 / 3 |
Actionability | The skill provides fully executable, copy-paste ready code examples throughout — Riverpod providers, Freezed models, go_router configuration, widget patterns, unit tests, widget tests, CI configuration, and pubspec.yaml. Every section contains concrete, runnable code rather than abstract descriptions. | 3 / 3 |
Workflow Clarity | While individual patterns are clearly demonstrated, there's no explicit workflow for common multi-step processes like setting up a new feature (create model → generate code → create provider → build widget → write test). The code generation step (build_runner) is only shown in CI but not as an explicit development workflow step with validation. Missing feedback loops for the build_runner code generation process. | 2 / 3 |
Progressive Disclosure | The skill is a monolithic wall of content — everything from project structure, state management, data models, navigation, widget patterns, testing, pubspec.yaml, CI, linting, and anti-patterns are all inline in a single file. The pubspec.yaml, GitHub Actions, and analysis_options.yaml sections could easily be separate reference files. The 'Load with: base.md' hint suggests a multi-file system exists but isn't leveraged for this content. | 1 / 3 |
Total | 8 / 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 (585 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 | |
d4ddb03
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.