agentleFS
wrsilvawrsilva/reis-mobile/skills/mobile-privacy/SKILL.md

mobile-privacy

Skill8 starsChanged 58 days agoMITView on GitHub

Implements and reviews mobile data privacy across Flutter, Android, iOS, React Native and Kotlin Multiplatform. Use for consent withdrawal, SDK collection controls, account and data deletion, retention, privacy manifests or store data disclosures. Covers the app and backend handoff; security exploits belong to mobile-security.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 2 are distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Test the network behavior, not just the settings toggle.

    line 34
  2. Distinctive:

    Document server/processor retention and backup expiry with the responsible owner.

    line 41

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Mobile Privacy

Trace personal data from collection to deletion. Reuse the project brief, then inspect initialization, SDK configuration, local stores and backend contracts before changing a flow. Preserve the requested operation: an audit produces findings; implementation changes the scoped flow and verifies it.

Pick the reference

ProjectRead
Flutterreferences/flutter.md
Androidreferences/android.md
iOSreferences/ios.md
React Native / Exporeferences/react-native.md
Kotlin Multiplatformreferences/kotlin-multiplatform.md

Cross-platform apps also need native references for SDK startup, permissions and store declarations. Confirm installed SDK versions and current destination-store policies; do not infer legal obligations from a permission flag or invent retention periods.

Build the data inventory

Record each data category, collection call/site, purpose, recipient SDK/backend, local storage, retention owner, deletion mechanism and declaration. Include automatic collection before the first screen, native SDKs, extensions, queued telemetry and backups. Mark inaccessible server/console evidence as unknown.

Consent is a lifecycle

  • Distinguish OS permission, tracking authorization and purpose-specific app consent. Granting camera access does not authorize analytics or tracking.
  • Define unknown, granted and withdrawn states for the purposes the product actually uses. Apply required defaults before collection starts; SDK initialization with collection disabled is valid when the SDK supports it.
  • Persist the choice and restore it before relevant collectors run after a cold start. Define whether a choice belongs to an installation or account; do not silently inherit it across users.
  • On withdrawal, stop relevant producers, cancel sends and discard queued data where required by the verified policy. An in-flight completion must not enqueue more data or re-enable collection. Use the SDK's supported deletion/reset controls and report their limits.
  • Test the network behavior, not just the settings toggle. Confirm the denied/withdrawn path after relaunch and offline reconnection.

Deletion and retention

  • Bind deletion to the authenticated account and require appropriate confirmation/reauthentication. Use the backend's deletion contract; erasing local preferences or signing out is not account deletion.
  • Model requested, pending, completed and failed states according to the real API. A timeout has an unknown outcome: query status or retry idempotently with server support, never display completed without evidence.
  • Inventory removal from caches, databases, files, search indexes, telemetry identifiers and push bindings. Stop account work before clearing local state so late callbacks cannot recreate it.
  • Document server/processor retention and backup expiry with the responsible owner. Explain verified exceptions and timelines; do not promise immediate global erasure if the backend cannot prove it.
  • Account deletion and subscription cancellation are distinct operations. Preserve access to the store's management flow and explain the actual billing consequences using billing guidance.

Verify and deliver

Exercise first launch without a choice, grant, withdrawal with queued uploads, restart, account switch, deletion reauthentication cancellation, network failure and confirmed deletion. Inspect sanitized traffic and local storage; use test accounts for server-side destructive checks within the task's authorization.

Return the data inventory with path:symbol evidence, implemented state transitions, test results and any unverified backend/store declaration. Use mobile-security for storage/transport threats, mobile-observability for telemetry and mobile-release for submission readiness.

Official sources

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.