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
Identify the existing camera, picker, recorder, and platform implementation. Check the resolved package's feature/format matrix, permissions, and lifecycle contract. A ready camera preview does not prove microphone permission or a valid recorded file.
Separate denied, restricted, previously denied, canceled, unavailable-device, and initialization-failure outcomes. Offer the appropriate retry or settings path without repeatedly prompting or capturing without the requested user action. Ask only for permissions the operation actually needs.
For an app-owned camera preview, follow the installed plugin's lifecycle requirements. The Flutter camera package documents app-managed cleanup and reinitialization. Serialize close/reacquire operations when the backend requires exclusive access. Invalidate camera-switch and route-exit generations; if old initialization later succeeds, release that owned controller without displaying it. Cleanup and failed cleanup must not leave an undocumented second owner.
Stop/finalize recording through the installed recorder API before consuming output. Handle cancellation, interruption, write failure, and disposal while starting or stopping. A resumed app must not silently restart a recording.
Use the picker's result types and temporary-file semantics, not an assumed filesystem path on every target. For image_picker on Android, inspect its lost-result recovery on relaunch; reconcile recovered attachments once and distinguish cancellation from an error. Copy temporary results to application-owned storage only when retention is required; preserve originals.
Validate actual codec/container, MIME, dimensions/orientation, duration, and size against the consumer's contract. Renaming an extension does not transcode. For crop, resize, compression, or frame processing, preserve required orientation and quality, bound pending frames/work, and measure expensive processing before choosing an isolate or native implementation. Pass verified output metadata to upload/storage owners without claiming it has been uploaded.
Reviewed 2026-11-07; recheck the versions resolved by the consuming app.
.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