mcpField
F
flutter-ai-integration

flutter-ai-integration

github.com/thienqoDevelopment1774 installsUpdated 4d ago
Repository

About flutter-ai-integration

A Flutter development skill for integrating model capabilities while preserving existing application architecture. It focuses on explicit failure behavior, narrow provider boundaries, untrusted output, and deterministic verification.

Key features

  1. 01Inspect provider and backend boundaries
  2. 02Keep model details behind an interface
  3. 03Define cancellation and failure behavior
  4. 04Treat model output as untrusted
  5. 05Test with deterministic model fakes

Use cases

  1. 01Add model-backed features to a Flutter app
  2. 02Plan streaming and tool-call behavior
  3. 03Test timeouts and malformed responses
  4. 04Separate provider tests from ordinary tests

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/thienqo/flutter-skills --skill flutter-ai-integration

After installing, type/flutter-ai-integrationin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
flutter-ai-toolkit-and-genui.md
service-boundary-and-secrets.md
streaming-tools-and-state.md

Details

From the project README

Flutter AI Integration

Integrate model behavior as an unreliable, asynchronous external capability with an explicit product contract. Preserve the project's provider, backend, networking client, state management, persistence, and UI architecture unless the user requests a migration.

Do not add a provider SDK, account setup, credential, or backend merely because this skill was selected.

Preflight

Read pubspec.yaml, SDK constraints, existing AI or API adapters, backend boundary, authentication, model configuration, state ownership, persistence, privacy requirements, tests, and platform targets. Clarify the intended capability and failure behavior before choosing a model, provider, SDK, or UI toolkit.

Keep model and provider details behind a narrow application-owned interface. Treat output, tool arguments, citations, and structured data as untrusted input. Define cancellation, timeout, retry, partial-result, quota, offline, and unsupported-capability behavior.

Load references conditionally

  • Read service boundary and secrets when selecting client versus backend responsibilities, credentials, provider abstraction, safety, privacy, or model configuration.
  • Read streaming, tools, and state when implementing streamed output, conversations, attachments, structured responses, or tool/function calls.
  • Read Flutter AI Toolkit and GenUI only when the project uses or is considering those Flutter packages. Do not introduce them by default.

Boundaries

  • flutter-networking owns generic HTTP, WebSocket, SSE, authentication refresh, and transport reliability; this skill owns model-specific semantics on top.
  • dart-concurrency owns general stream races, cancellation primitives, and isolate behavior.
  • flutter-persistence owns durable storage and offline synchronization; this skill defines what conversation or model state may be retained.
  • flutter-security owns a broad threat review; this skill enforces the model boundary, credential placement, untrusted output handling, and least-privilege tools.
  • flutter-ui-patterns and flutter-accessibility own general interface composition and accessibility.

Verification

Use a deterministic fake model or recorded adapter for ordinary automated tests. Cover partial chunks, cancellation, timeout, malformed structured output, tool denial and failure, repeated or reordered events, quota errors, and provider unavailability. Use a real provider only when credentials, cost, network access, and environment are explicitly in scope; keep such tests separate and non-destructive.

Verify the visible stream and state transitions on affected platforms, including restart or restoration when required. Report which behavior was fake-tested, which was exercised end to end, the exact provider/model configuration when relevant, and any cost, safety, or backend boundary not verified.

Sources

Comments

Markdown supported