agentsclimarketplace

Account deletion

Skill launch52-ai/flutter-template/.claude/skills/account-deletion

Template for Flutter mobile applications.

Install
npx -y skills add launch52-ai/flutter-template --skill account-deletion

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Implement GDPR/App Store/Play Store compliant account deletion with confirmation flow, data cleanup, and auth sign-out. Use when adding "delete account", "remove account", or "user data deletion" features. Required for both App Store and Play Store compliance.

SKILL.md

6.7 KB, as published. Nobody here has run it

Account Deletion

Implements GDPR, App Store, and Play Store compliant account deletion with proper confirmation flows, backend data cleanup, and secure sign-out. Required by both Apple App Store and Google Play Store guidelines for apps with account creation.

When to Use This Skill

  • Adding account deletion to settings screen
  • App Store or Play Store review requires account deletion
  • Implementing GDPR "right to erasure"
  • User asks "add delete account", "remove account option"
  • Settings feature needs user data deletion

When NOT to Use This Skill

  • User just wants to sign out - Use /auth signOut method
  • Deleting app data only (no account) - Manual implementation
  • Admin user deletion - Custom admin feature

Questions to Ask

  1. Backend type: Supabase, Firebase, or Custom API?
  2. Confirmation method: Password re-entry, typed confirmation, or simple dialog?
  3. Grace period: Immediate deletion or scheduled (e.g., 30 days)?
  4. Data cleanup: What user data needs deletion? (storage, analytics, etc.)

Quick Reference

App Store & Play Store Requirements

RequirementImplementation
Easy to findSettings > Account > Delete Account
Clear explanationShow what data will be deleted
ConfirmationRequire explicit user action
Complete deletionRemove all user data from backend
In-app optionMust be accessible within the app (not just web)

GDPR Compliance

RightImplementation
Right to erasureFull account + data deletion
Clear consentExplicit confirmation required
Data portability(Optional) Export before deletion

Confirmation Methods

MethodSecurityUXUse Case
Password re-entryHighLowFinancial/sensitive apps
Type "DELETE"MediumMediumStandard apps
Simple dialogLowHighLow-risk apps

Workflow

Phase 1: Ask Questions

Use AskUserQuestion to gather:

  • Backend type (Supabase/Firebase/Custom)
  • Confirmation method preference
  • Grace period requirements
  • Data cleanup scope

Phase 2: Domain Layer

Create in lib/features/settings/domain/:

  1. AccountDeletionFailure - Failure types
  2. Extend SettingsRepository with deleteAccount() method

See: implementation-guide.md for code.

Phase 3: Data Layer

Create in lib/features/settings/data/:

  1. Implement deleteAccount() in repository
  2. Add backend-specific deletion logic (Supabase/Firebase/API)
  3. Add data cleanup (storage, analytics reset)

See: reference/repositories/ for implementations.

Phase 4: Presentation Layer

Create in lib/features/settings/presentation/:

  1. DeleteAccountButton widget
  2. DeleteAccountDialog with confirmation
  3. AccountDeletionNotifier for state management
  4. Add to Settings screen

See: reference/screens/ and reference/widgets/ for code.

Phase 5: Integration

  1. Add delete account option to settings screen
  2. Wire up confirmation dialog
  3. Handle success (navigate to login)
  4. Handle errors (show failure message)

Phase 6: Testing

dart run .claude/skills/account-deletion/scripts/check.dart

File Structure

  • lib/features/settings/domain/failures/account_deletion_failure.dart
  • lib/features/settings/data/repositories/settings_repository_impl.dart (extended)
  • lib/features/settings/presentation/providers/account_deletion_notifier.dart
  • lib/features/settings/presentation/widgets/delete_account_button.dart
  • lib/features/settings/presentation/widgets/delete_account_dialog.dart

Core API

See: reference/providers/account_deletion_notifier.dart for full usage.

MethodPurpose
deleteAccount({confirmation})Deletes account with optional confirmation
reset()Resets state to initial
validateConfirmation(input)Validates "DELETE" input

Failure Types

TypeWhenUI Action
AccountDeletionNetworkFailureNo connectionRetry button
AccountDeletionServerFailureBackend errorGeneric error
AccountDeletionAuthFailureNot authenticatedNavigate to login
AccountDeletionConfirmationFailureWrong confirmationShow validation error

Guides

FileContent
implementation-guide.mdStep-by-step with code examples
checklist.mdImplementation verification

Reference Files

See: reference/ for complete implementations:

  • reference/failures/ - AccountDeletionFailure sealed class
  • reference/repositories/ - Supabase, Firebase, API implementations
  • reference/providers/ - AccountDeletionNotifier
  • reference/widgets/ - DeleteAccountButton, DeleteAccountDialog
  • reference/screens/ - Settings screen integration

Commands

# Validate implementation
dart run .claude/skills/account-deletion/scripts/check.dart

# Check specific feature
dart run .claude/skills/account-deletion/scripts/check.dart --feature settings

Checklist

  • AccountDeletionFailure sealed class created
  • deleteAccount() in repository with backend deletion
  • User data cleanup (storage, analytics) + auth sign-out
  • DeleteAccountButton and DeleteAccountDialog widgets
  • AccountDeletionNotifier with loading/error states
  • Settings screen integration with clear explanation
  • Explicit confirmation required before deletion
  • App Store/Play Store: Easy to find, complete deletion, in-app option

See: checklist.md for detailed verification.

Common Issues

IssueSolution
"User not authenticated"Check auth state before deletion, handle expired session
Data remains after deletionClean up: Supabase/Firebase record, SecureStorage, SharedPrefs, Analytics
Dialog dismissed accidentallySet barrierDismissible: false on showDialog
Stuck on loadingAdd disposal check (if (_disposed) return) after async operations

See: implementation-guide.md for detailed solutions.

Related Skills

  • /auth - Provides signOut method used after deletion
  • /i18n - Localize deletion strings
  • /testing - Write tests for deletion flow
  • /design - UI polish for deletion flow

Next Steps

After /account-deletion: Run /i18n settings, /testing settings, then /design.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.