CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

flutter-persistence

Design or review Flutter on-device persistence, caching, schema migrations, and offline synchronization. Use for preferences, files, local databases, cache lifecycle, or durable queues while preserving the existing package; route remote transport to flutter-networking and broad threat audits to flutter-security.

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

The canonical home for this skill is thiennc-tesoglobal/flutter-skills

SKILL.md
Quality
Evals
Security

Flutter Persistence

Choose storage from data shape, query needs, durability, sensitivity, synchronization, and migration requirements.

Before choosing APIs, inspect pubspec.yaml, SDK constraints, the resolved persistence package and version, generated-schema policy, existing storage owners, supported platforms, and tests. Preserve the established package unless a demonstrated requirement exceeds its supported contract.

Select proportionately

  • Use preferences only for small settings, not relational or critical domain data.
  • Use files for document/blob ownership with explicit atomicity and cleanup.
  • Use a database when queries, relationships, transactions, indexing, or migration justify it.
  • Use platform secure storage for small secrets; do not treat ordinary app databases as secret vaults.
  • Preserve an established package unless it cannot satisfy a concrete requirement.

Model ownership

Define the source of truth, cache freshness, write ordering, conflict behavior, offline mutations, deletion semantics, and recovery from corrupt or incompatible data. Keep storage models behind repositories so schema details do not leak into widgets.

Load references conditionally

  • Read caching policy when choosing cache keys, freshness, invalidation, eviction, stale disclosure, or user isolation.
  • Read offline synchronization when local and remote data can diverge, mutations queue offline, background work runs, or conflicts and deletions must reconcile.
  • Read schema migrations and recovery before changing a database schema, serialized durable format, migration callback, or incompatible-data recovery policy.

Route HTTP validators and transport caching to flutter-networking, and image, widget, scroll, or memory-cache performance to flutter-performance.

Migration and safety

Classify stored state as durable user data, a durable operation, a disposable cache, or reproducible derived data before defining migration and recovery behavior. Version schemas and test every supported upgrade path from real prior-version artifacts. Never destroy durable user data as an automatic response to migration failure; rebuilding a disposable cache is valid only when its ownership and rebuild source are explicit. Avoid storing access tokens, passwords, or sensitive personal data in logs or plain preferences.

Verification

Test first run, reopen, upgrade, failed write, concurrent access, corrupted data, deletion, and offline/online transitions relevant to the feature. Use temporary databases or directories for deterministic tests.

Sources

  • Flutter persistence cookbook
  • Flutter offline-first support
Repository

thienqo/flutter-skills

Path

skills/flutter-persistence/SKILL.md

Last updated
First committed

Canonical home

thiennc-tesoglobal/flutter-skills
In sync

since Aug 24, 2026

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.