.agents/skills/ui-work/SKILL.md
Use this for user-facing Flutter UI changes in lib/, including widgets, screens, navigation surfaces, settings rows, dialogs, and interaction behavior.
Locate existing nearby widgets and reuse their patterns before adding new abstractions.
Follow current Material You and Surfboard-like visual conventions.
Use existing providers, notifiers, and helpers where possible.
Keep child: last in widget constructors.
Prefer const constructors and final locals.
Localize user-facing text through ARB; use localization when text changes are non-trivial.
Add focused widget tests when behavior changes, especially for rendering states, taps, scrolling, and empty/error states.
For asynchronous controls, define separately:
finally for animations and timers.Run targeted verification:
flutter analyze
flutter test test/widgets/
CoreStatusButton watches coreStatusProvider but keeps its 600-millisecond connecting hold locally. Taps are ignored
during the hold or genuine connecting state; disconnected cancels the hold immediately.0 while pending, the measured delay on success, and -1 on failure. DelayTestButton resets
its animation in finally.