Production-ready Dart and Flutter patterns covering null safety, immutable state, async composition, widget architecture, popular state management frameworks (BLoC, Riverpod, Provider), GoRouter navigation, Dio networking, Freezed code generation, and clean architecture.
67
67%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Quality
Discovery
57%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 excels at listing specific, concrete technologies and patterns that Flutter/Dart developers would naturally reference, providing strong trigger term coverage. However, it critically lacks any 'Use when...' clause or explicit trigger guidance, which significantly hurts completeness. The description reads as a feature list rather than actionable selection criteria for Claude.
Suggestions
Add a 'Use when...' clause specifying trigger conditions, e.g., 'Use when the user asks about Dart/Flutter development, state management with BLoC/Riverpod/Provider, navigation with GoRouter, networking with Dio, or code generation with Freezed.'
Include file extension triggers like '.dart', '.yaml' (pubspec.yaml), or project type indicators like 'Flutter app' or 'Flutter project' to help Claude identify relevant contexts.
Consider adding a brief functional summary before the technology list, e.g., 'Guides development of Flutter applications using...' to clarify the skill's purpose beyond listing technologies.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete technologies and patterns: null safety, immutable state, async composition, widget architecture, BLoC, Riverpod, Provider, GoRouter, Dio, Freezed, and clean architecture. These are highly specific and actionable domains. | 3 / 3 |
Completeness | The description answers 'what does this do' well but completely lacks a 'Use when...' clause or any explicit trigger guidance for when Claude should select this skill. Per rubric guidelines, a missing 'Use when...' clause caps completeness at 2, and since the 'when' is entirely absent (not even implied beyond the domain), this scores low. | 1 / 3 |
Trigger Term Quality | Excellent coverage of natural keywords a Flutter/Dart developer would use: 'Dart', 'Flutter', 'BLoC', 'Riverpod', 'Provider', 'GoRouter', 'Dio', 'Freezed', 'null safety', 'state management', 'clean architecture'. These are terms developers naturally mention. | 3 / 3 |
Distinctiveness Conflict Risk | The mention of specific frameworks like BLoC, Riverpod, GoRouter, Dio, and Freezed creates reasonable distinctiveness within the Flutter/Dart ecosystem. However, broad terms like 'widget architecture' and 'clean architecture' could overlap with general coding or architecture skills. | 2 / 3 |
Total | 9 / 12 Passed |
Implementation
64%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, highly actionable Dart/Flutter pattern reference with excellent executable code examples covering the major ecosystem concerns. Its main weaknesses are length (could be split into overview + detail files) and missing workflow guidance for multi-step processes like Freezed code generation setup. The content slightly over-explains patterns Claude would already know (const usage, null safety basics) but generally earns its token budget through production-ready specificity.
Suggestions
Split detailed sections (Dio, GoRouter, Testing, BLoC, Riverpod) into separate referenced files and keep SKILL.md as a concise overview with quick-start snippets and links.
Add a build_runner workflow step for Freezed: `dart run build_runner build --delete-conflicting-outputs` with validation that generated files exist.
Trim the 'When to Use' and 'How It Works' preamble sections — the numbered list in 'How It Works' duplicates the table of contents implied by the section headers.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The skill is mostly efficient with good code examples, but the 'When to Use' and 'How It Works' sections at the top are somewhat redundant given the content that follows. Some patterns (like const propagation, basic null safety) are things Claude already knows well. The BAD/GOOD comment pairs add bulk but do provide value for pattern enforcement. | 2 / 3 |
Actionability | Every section provides fully executable, copy-paste-ready Dart/Flutter code with concrete patterns. The Dio interceptor with retry guard, GoRouter auth redirect, Freezed setup, BLoC test, and widget test examples are all production-ready and specific. | 3 / 3 |
Workflow Clarity | The skill is organized as a reference catalog of patterns rather than multi-step workflows. While individual patterns are clear, there's no guidance on sequencing (e.g., setting up a new feature end-to-end) and no validation checkpoints. The Freezed section doesn't mention running build_runner, which is a critical step. | 2 / 3 |
Progressive Disclosure | The content is a long monolithic document (~400 lines) that could benefit from splitting detailed sections (Dio setup, GoRouter config, testing) into separate files. The References section at the end does point to external resources and related skills, but the inline content is heavy for a SKILL.md overview. | 2 / 3 |
Total | 9 / 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 (564 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 | |
Reviewed
Table of Contents