Design or review Flutter state ownership, update flow, and package integration. Use for setState, Listenable, Provider, Riverpod, Bloc, Redux, or custom state problems; preserve the project's established approach unless migration is requested.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
The canonical home for this skill is thiennc-tesoglobal/flutter-skills
Start with ownership and lifetime, then choose mechanics.
Identify which state is ephemeral UI state, feature state, shared application state, cached server data, or persisted data. Determine who creates, mutates, observes, and disposes it.
build methods.ref.watch, context.watch<T>(), BlocBuilder) only inside build or another watch-safe method, and its one-off accessor (ref.read, context.read<T>(), a Bloc's add) inside callbacks and event handlers. Calling the watch-style accessor from a callback throws or misbehaves in most packages.Do not introduce global service locators or package-level singletons as a shortcut for unclear ownership.
Test meaningful transitions, failure recovery, disposal, and repeated events. Inspect rebuild scope for hot paths and run widget tests for state-to-UI behavior.
Architecture-wide dependency direction belongs to flutter-architecture; persistence and remote caching belong to their data specialists.
When disposal behavior or lifecycle leaks are in scope, follow the lifecycle and disposal reference. For async state modeling and error recovery, follow the async state patterns reference.
thienqo/flutter-skills
a177189
Canonical home
since Aug 24, 2026
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.