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
Use these checks only where the protected assets and trust model make them relevant.
Assume values shipped in Dart code, assets, native resources, build arguments, environment files, or the compiled binary can be recovered. Obfuscation changes symbol readability; it does not encrypt resources or turn a client into a trusted secret holder.
Classify each value before remediation:
If an actual credential is exposed, report likely exposure and the required architectural move. Rotation or revocation changes external state and requires explicit authorization.
Model login, refresh, logout, expiry, revocation, account switching, device loss, and reauthentication for sensitive actions. Avoid concurrent refresh storms and make token failure terminate or recover the session predictably.
Biometrics and local device authentication can unlock local material or improve user presence checks; they do not replace backend authorization. Never treat a hidden widget, disabled button, route guard, or locally editable role as enforcement for a privileged operation.
Minimize local sensitive data first. For material that must remain on-device, choose platform-backed protection and accessibility settings from the threat model, supported platforms, backup behavior, and device-lock requirements. Keep cryptographic keys separate from encrypted payloads.
Review every copy: preferences, databases, files, caches, temporary directories, WebView storage, notifications, screenshots, clipboard, logs, crash reports, analytics, backups, and generated exports. Clear user-scoped material on logout or account removal without deleting unrelated users' recoverable data.
Retain Android network security and Apple App Transport Security defaults. Scope development exceptions to the intended host and build variant; never disable certificate validation globally.
Certificate pinning is not a universal upgrade. Require a threat model, supported host ownership, multiple active pins or another safe rotation plan, observability, expiry handling, and an emergency recovery path before adopting it.
Use reviewed platform or package-publisher primitives that implement a documented protocol. Define algorithm, mode, nonce generation, key generation, storage, rotation, versioning, and failure behavior as one system. Use cryptographically secure randomness for security material.
Do not design custom cryptography, embed a decryption key beside encrypted data, reuse nonces where the primitive forbids it, or confuse hashing, encryption, signing, encoding, and obfuscation.
Prefer allowlisted structured fields over trying to redact arbitrary payloads after logging. Exclude tokens, passwords, authorization headers, payment data, sensitive identifiers, raw request bodies, clipboard contents, and cryptographic material from logs and analytics.
Align consent, retention, deletion, export, and telemetry behavior with the product's stated privacy requirements. Security review does not invent legal requirements; flag where legal or policy confirmation is needed.
.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