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 this reference for model interaction beyond a single request-response call.
Represent an interaction with explicit states such as idle, submitting, streaming, completed, cancelled, and failed. Keep the user's submitted message separate from partial assistant output. Define whether a partial result remains visible after cancellation or failure.
Assign stable request and conversation identities. Ignore or reconcile late chunks from a cancelled or superseded request, make completion idempotent, and prevent duplicate finalization. Bound buffered text and attachment memory; apply backpressure or batching when rendering every token would create excessive rebuild work.
Retry only when request semantics and provider behavior make it safe. Do not silently resubmit a tool-producing or billable request after an ambiguous failure.
Separate UI history from the provider context window and from durable product records. Define trimming, summarization, attachment lifetime, model changes, restoration, deletion, and multi-device ownership explicitly. Do not assume sending the complete visible transcript is safe, affordable, or supported.
Use deterministic identifiers and version persisted structures. Route durable database and offline mechanics to flutter-persistence.
Decode into a narrow wire representation, validate schema and domain invariants, then map into application models. Handle refusals, missing fields, extra fields, incompatible versions, truncated output, and text returned where structured data was expected. Never use a force cast or regex extraction as the only validation boundary for consequential data.
Maintain an allowlist mapping tool names to typed argument schemas and application-owned handlers. Validate arguments independently of the model. Enforce authentication, authorization, target scope, idempotency, timeout, and cancellation in the handler.
Return bounded, structured tool results and errors to the model without leaking credentials or unrelated records. Detect repeated calls and cap steps, cost, and elapsed time. Require confirmation immediately before consequential external writes; confirmation cannot be inferred from an earlier broad request.
Fake event sequences rather than only final strings: split chunks at unusual boundaries, emit malformed and duplicate events, reorder completion, cancel midstream, fail a tool, deny confirmation, and restore a partially persisted conversation. Assert stable state and visible outcomes without snapshotting provider prose.
.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