Focused Agent Skills for complete Flutter and Dart app delivery.
72
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Read this reference when the requested effect samples or distorts pixels, requires a package decision, or can materially affect raster work.
| Requirement | Preferred starting point |
|---|---|
| The project already has an adequate effect widget, renderer, or package | Reuse and extend the existing solution; preserve its fallback and interaction contract |
| Gradient, glow, border lighting, simple noise | Decoration, CustomPainter, masks, or existing project primitives |
| Frosted material | Clipped BackdropFilter with tint and contrast layers |
| Filter one owned image or subtree | ImageFiltered |
| Refraction, chromatic split, ripple, dissolve, procedural distortion | Custom fragment shader |
| Complex, common shape blending or particle effect already solved by a maintained dependency | Evaluate and prefer the package when it meets project constraints |
| Exact native material is a product requirement | Platform integration plus an explicit non-native fallback |
This is a decision matrix, not a universal custom-first rule. A package can be the most maintainable choice for a mature, complex, common effect; core Flutter can be the best choice for a small surface; a custom shader is justified by product-specific behavior or a verified gap.
Inspect the project's Flutter constraint before choosing syntax. Declare .frag assets in pubspec.yaml, load them with FragmentProgram, and reuse programs or shader instances where safe instead of recompiling per frame. Keep uniform ordering documented beside the Dart binding and drive uniforms from normalized geometry and state.
Custom shaders used as ImageFilters have renderer-specific constraints. Verify current Flutter documentation and the actual target backend before relying on them; fail into a simpler material rather than throwing at runtime. Prewarm or precache shader work when the target backend would otherwise compile it during the first interaction.
Keep shader inputs bounded. Avoid capturing and converting a large scene every frame merely to distort a small control. If the effect depends on the backdrop, test it with moving and scrolling content rather than a static color fixture.
Before adding an effect package:
pubspec.yaml and lockfile.liquid_glass_renderer is an example of a specialized renderer, not a default dependency. Its stability, Impeller requirements, platform matrix, memory behavior, and fallback APIs are fast-moving facts; verify them at task time and preserve a core or opaque fallback. Packages that only wrap ordinary blur and decoration rarely justify a dependency when the project needs one or two surfaces.
RepaintBoundary, caching, reduced resolution, or a lower refresh rate speculatively; measure the same scene before and after.For advanced effects, record:
A passing widget test proves behavior and ownership, not optical fidelity or GPU cost. A screenshot proves appearance at one state, not animation smoothness.
.tessl-plugin
skills
dart-concurrency
dart-language
flutter-accessibility
flutter-ai-integration
flutter-animation
flutter-app-workflow
flutter-architecture
flutter-authentication
flutter-background-execution
flutter-build-release
flutter-ci-cd
flutter-code-review
flutter-dependency-upgrades
flutter-device-testing
flutter-figma-workflow
flutter-in-app-purchases
flutter-localization
references
flutter-networking
references
flutter-notifications
flutter-observability
flutter-openapi-client
flutter-package-development
flutter-performance
flutter-persistence
references
flutter-platform-integration
flutter-product-analytics
flutter-responsive-layout
references
flutter-runtime-debugging
flutter-security
flutter-state-management
flutter-testing
flutter-ui-design
flutter-ui-patterns
flutter-visual-effects