CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

flutter

Flutter development with Riverpod state management, Freezed, go_router, and mocktail testing

48

Quality

61%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./skills/flutter/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

53%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a well-organized, highly executable pattern catalog with excellent code examples, but it functions as an inlined reference book rather than a skill overview. It spends many tokens on material Claude already knows and splits nothing out into reference files.

Suggestions

Trim sections that restate training knowledge (basic go_router navigation calls, standard provider type definitions, stock CI workflow) and keep only project-specific conventions and opinions such as the anti-patterns list.

Split bulk reference material into one-level-deep bundle files (e.g. references/testing.md, references/ci-lint.md) and link them from a concise overview, moving pinned dependency versions out of SKILL.md to avoid time-sensitive staleness.

Add an explicit sequenced workflow for the skill's core task — e.g. "Adding a feature: 1. define Freezed model in data/models, 2. repository interface in domain, 3. provider in presentation/features/<name>/providers, 4. screen, 5. mocktail test in test/unit" — so the implied process is actionable directly.

DimensionReasoningScore

Conciseness

Large portions restate what Claude already knows — basic navigation calls ("context.go('/user/123')", "context.pop()"), standard provider types, a stock GitHub Actions workflow, and a full pubspec template with time-sensitive pinned versions ("flutter-version: '3.16.0'", "riverpod: ^2.3.9") not placed in a deprecated section. Prose is lean, keeping it above anchor 1, but the volume of known material fits anchor 2's "several unnecessary explanations or padded sections".

2 / 5

Actionability

Examples are complete and executable: full Freezed model definitions with fromJson, a working ProviderContainer unit test with mocktail stubbing ("when(() => mockRepository.getUsers()).thenAnswer(...)") and verification, a complete GoRouter redirect configuration, and the runnable codegen command "dart run build_runner build --delete-conflicting-outputs". Copy-paste ready with the common cases covered.

5 / 5

Workflow Clarity

Sections are well-organized by topic, but no sequenced workflow is stated for the core task the structure implies (e.g. new feature: create Freezed model → repository → Riverpod provider → screen → mocktail test). The sequence exists only implicitly via the directory layout with no explicit checkpoints, matching anchor 3 rather than 4's "clear sequence with most checkpoints present".

3 / 5

Progressive Disclosure

No bundle files exist and the body contains no references — roughly 570 lines of pattern/API reference (CI workflow, lint rules, pubspec template, full testing guide) are inlined in SKILL.md. This matches anchor 2 ("content that clearly belongs in separate files is inlined"); the good section headers do not lift it to anchor 3, which expects references to be present.

2 / 5

Total

12

/

20

Passed

Description

53%Weight 40%Scale 1-5

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, distinctive Flutter tech stack but describes no concrete actions and buries all trigger guidance in the when-to-use field rather than the description itself. It is serviceable but sits at the midpoint of the rubric on most dimensions.

Suggestions

Add concrete actions to the description itself, e.g. "Builds Flutter apps using Riverpod providers, Freezed models, go_router navigation, and mocktail tests" so it states what the skill does, not just which packages it covers.

Append a "Use when..." clause to the description (e.g. "Use when working on Flutter/Dart code, .dart files, or pubspec.yaml") so trigger guidance is explicit in the description field rather than only in when-to-use.

Include natural trigger synonyms and file extensions users would actually mention — "Flutter", "Dart", ".dart", "pubspec", "widget" — to improve trigger-term coverage.

DimensionReasoningScore

Specificity

Names the domain and specific technologies ("Riverpod state management, Freezed, go_router, and mocktail testing") but lists no concrete actions — the only action word is the generic "development". This matches anchor 3 rather than 4, which requires several specific actions.

3 / 5

Completeness

The "what" is reasonably clear (Flutter development with a specific stack), but the description field itself contains no "Use when..." clause or equivalent — the only trigger guidance lives in the separate when-to-use field ("When working on Flutter/Dart code"). Per the rubric guideline this caps completeness at 3.

3 / 5

Trigger Term Quality

"Flutter", "Riverpod", "Freezed", "go_router", and "mocktail" are relevant keywords, but natural variations users would say (".dart", "widget", "mobile app", "Dart") are entirely absent from the description. Anchor 4 is not reached because the gaps are systematic rather than a few missing terms.

3 / 5

Distinctiveness Conflict Risk

The named stack ("Riverpod state management, Freezed, go_router, and mocktail testing") carves a distinct niche with only minor overlap risk against a generic Flutter skill. Not a 5 because "Flutter development" alone would still trigger for any general Flutter skill.

4 / 5

Total

13

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

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

14

/

16

Passed

Repository

alinaqi/maggy

Path

skills/flutter/SKILL.md

Reviewed

Table of Contents

Is this your skill?

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.