Focused Agent Skills for complete Flutter and Dart app delivery.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Inspect the resolved player and media-session integration to see which layer already owns queue advancement, commands, and state. Keep that owner and derive the in-app player and system controls from its accepted state. Match its lifetime to the feature. An app-wide player survives navigation away from a screen when that is the intended behavior. Follow audio interruptions and routing for focus, ducking, and output changes.
Send in-app and system Play, Pause, Next, Previous, and Seek through the same playback owner where supported. Project its accepted track, title/artwork, position, supported actions, and playback state to each surface. Apply commands and interruptions to the current user intent. A Pause from the lock screen during buffering or interruption must prevent late readiness or an interruption-ended hint from starting audio. Keep loading or buffering separate from audible playback.
Use the resolved integration's media-session contract for lock-screen and headset behavior. If playback must continue with the screen locked, verify the target's required background configuration and pair with background execution when that OS boundary changes. Treat UI dismissal, locked-screen playback, cold launch, and explicit system playback resumption as separate paths.
Save the queue context, selected entry identity, position, and user intent together. On restoration, resolve the entry against current content and authorization, reacquire sources through the existing adapter, and validate the saved position against the current seek range. Persist stable identifiers instead of signed playback URLs. Handle removed, inaccessible, or expired content with the existing fallback policy. Reopening the app can restore a paused session without playing. Treat an explicit app or system Play command as a separate request to start where supported.
Use a fake player and controllable events to test rapid skips, duplicate tracks, removal of the active entry, old results, a remote Pause during buffering, and restoration after the queue changes. Verify audible output, lock-screen commands, headset events, and claimed background or resumption behavior on the affected targets.
.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-location-maps
flutter-media
flutter-networking
flutter-notifications
flutter-observability
flutter-openapi-client
flutter-package-development
flutter-payments-checkout
flutter-performance
flutter-persistence
flutter-platform-integration
flutter-product-analytics
flutter-responsive-layout
flutter-runtime-debugging
flutter-security
flutter-state-management
flutter-testing
flutter-text-rendering
references
flutter-ui-design
flutter-ui-patterns
flutter-visual-effects