skills/sobriety-app-design/SKILL.md
Expert in designing AI-powered sobriety and recovery applications with trauma-informed UX. Covers sobriety counters, milestone celebrations, daily check-in flows, mood/craving tracking, meeting finders, sponsor communication, emergency crisis buttons, and ethical gamification. Activate on 'recovery app design', 'sobriety app UX', 'sobriety counter design', 'recovery app features', 'craving tracker UI', 'meeting finder UX', 'crisis button design', 'recovery milestones', 'sober app wireframe', 'trauma-informed app design'. NOT for clinical treatment protocols (use modern-drug-rehab-computer), active crisis intervention (call 988), or general mobile UX without recovery context (use mobile-ux-optimizer).
npx skillsauth add curiositech/windags-skills sobriety-app-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Design AI-powered sobriety and recovery applications that feel safe, non-judgmental, and empowering. This skill covers the specific UX patterns, features, and design philosophy that make recovery apps genuinely useful rather than clinical, preachy, or abandoned after three days.
Use for:
Do NOT use for:
modern-drug-rehab-computermobile-ux-optimizerrecovery-app-onboardingMost wellness apps lose 77% of daily active users within three days. Only 4% of mental health app users are still active after 15 days. Recovery apps must break this pattern because disengagement is not merely "churn" -- it can mean someone lost a lifeline.
WELLNESS APP FAILURE MODES RECOVERY APP RESPONSE
─────────────────────────────────── ───────────────────────────────────
Burdensome onboarding Value before signup (meeting finder
works without an account)
Hidden costs / upsells Crisis features are ALWAYS free.
Never paywall the safety plan.
Generic content Personalized to substance, program,
and stage of recovery
Guilt-based re-engagement "We're here when you're ready"
("You missed 3 days!") not "You broke your streak!"
Engagement metrics over outcomes Measure sobriety milestones,
crisis calls made, meetings found
The "Success Paradox" -- users Recovery is lifelong. The app
quit when they feel better evolves WITH the user's stage.
Recovery apps succeed when they become part of the person's recovery infrastructure -- as essential as their sponsor's number, their home group, and their therapist. That means the app must be useful in crisis, meaningful in stability, and invisible when not needed.
SAMHSA defines six principles of trauma-informed care. Every screen, interaction, and notification in a recovery app must honor them:
The counter is the heartbeat of most recovery apps. Design it carefully.
┌──────────────────────────────────────────────────────┐
│ │
│ ┌────────────────────┐ │
│ │ 127 days │ │
│ │ 3 hours 42 min │ │
│ └────────────────────┘ │
│ │
│ ┌─────────┐ ┌─────────┐ ┌──────────┐ │
│ │ $3,810 │ │ 1,524 │ │ 2,032 │ │
│ │ saved │ │ hours │ │ calories │ │
│ └─────────┘ └─────────┘ └──────────┘ │
│ │
│ Next milestone: 6 months (53 days away) │
│ ████████████████████████░░░░░░░░░ 71% │
│ │
└──────────────────────────────────────────────────────┘
Design Rules:
The check-in is the app's primary engagement loop. It must be completable in under 60 seconds.
┌──────────────────────────────────────────────────────┐
│ Good morning. How are you today? │
│ │
│ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ │
│ │ Hard │ │ Meh │ │ Okay │ │ Good │ │Great │ │
│ │ 1 │ │ 2 │ │ 3 │ │ 4 │ │ 5 │ │
│ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘ │
│ │
│ Any cravings? ○ None ○ Mild ○ Strong │
│ │
│ HALT check: │
│ ☐ Hungry ☐ Angry ☐ Lonely ☐ Tired │
│ │
│ [ Add a note (optional) _____________________ ] │
│ │
│ [ Submit Check-In ] │
│ │
│ ─── or just tap your mood and go ─── │
│ │
└──────────────────────────────────────────────────────┘
Design Rules:
┌──────────────────────────────────────────────────────┐
│ YOUR WEEK │
│ │
│ Mon Tue Wed Thu Fri Sat Sun │
│ 4 3 3 2 4 5 4 ← mood │
│ 0 1 0 2 0 0 0 ← cravings │
│ │
│ ┌──────────────────────────────────┐ │
│ │ Pattern detected: │ │
│ │ Cravings tend to spike on days │ │
│ │ when your mood drops below 3. │ │
│ │ Thursday you were also Lonely. │ │
│ │ │ │
│ │ Consider: reaching out to │ │
│ │ someone before cravings build. │ │
│ └──────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────┘
Design Rules:
┌──────────────────────────────────────────────────────┐
│ Find a Meeting │
│ │
│ ┌──────────────────────────────────┐ │
│ │ 📍 Near me │ 🔤 By ZIP code │ │
│ └──────────────────────────────────┘ │
│ │
│ Programs: [AA] [NA] [SMART] [All] │
│ Format: [In-Person] [Online] [Hybrid] │
│ Time: [Now] [Today] [This Week] │
│ │
│ ┌──────────────────────────────────────┐ │
│ │ Serenity Group 0.3 mi │ │
│ │ AA Open Discussion 7:00 PM │ │
│ │ First Baptist Church │ │
│ │ [ Directions ] [ Save ] │ │
│ ├──────────────────────────────────────┤ │
│ │ Recovery Dharma Online NOW │ │
│ │ Meditation Meeting Zoom │ │
│ │ [ Join ] [ Save ] │ │
│ └──────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────┘
Design Rules:
Non-negotiable: crisis resources must be reachable from every screen in two taps or fewer.
┌──────────────────────────────────────────────────────┐
│ │
│ ┌──────────────────────────────────────┐ │
│ │ NEED HELP RIGHT NOW? │ │
│ │ │ │
│ │ [ Call 988 ] │ │
│ │ Suicide & Crisis Lifeline │ │
│ │ │ │
│ │ [ Call 1-800-662-4357 ] │ │
│ │ SAMHSA National Helpline (free) │ │
│ │ │ │
│ │ [ Text HOME to 741741 ] │ │
│ │ Crisis Text Line │ │
│ │ │ │
│ │ [ Call My Sponsor ] │ │
│ │ [sponsor name if saved] │ │
│ │ │ │
│ │ [ My Safety Plan ] │ │
│ │ │ │
│ └──────────────────────────────────────┘ │
│ │
│ You are not alone. Help is available now. │
│ │
└──────────────────────────────────────────────────────┘
Design Rules:
Gamification in recovery apps must motivate without manipulating. People in recovery are often hyper-aware of manipulation after years of their own addiction lying to them.
DO:
DO NOT:
┌──────────────────────────────────────────────────────┐
│ My Support Network │
│ │
│ ┌───────────────────────────┐ │
│ │ Sponsor: Mike R. │ │
│ │ [ Call ] [ Text ] │ │
│ │ Last check-in: Yesterday │ │
│ └───────────────────────────┘ │
│ │
│ ┌───────────────────────────┐ │
│ │ Accountability: Sarah T. │ │
│ │ [ Call ] [ Text ] │ │
│ │ Shared: Daily check-ins │ │
│ └───────────────────────────┘ │
│ │
│ [ + Add Support Person ] │
│ │
│ ── Quick SOS ── │
│ Send a pre-written message to your support │
│ network with one tap: "I need to talk." │
│ │
└──────────────────────────────────────────────────────┘
Design Rules:
Primary: #2D6A6A (teal -- calm, trustworthy)
Secondary: #7B9E6B (sage green -- growth, renewal)
Accent: #D4A76A (warm gold -- milestone celebrations)
Background: #FAF8F5 (warm off-white -- gentle, not clinical)
Text: #2C2C2C (soft black -- readable without harshness)
Crisis: #C75450 (muted red -- urgent but not alarming)
Pattern: Designing the app like a medical portal with sterile language and hospital aesthetics. Problem: Users feel pathologized, not supported. "Patient" language triggers shame. Fix: Warm, peer-voiced tone. "How are you feeling?" not "Rate your symptoms."
Pattern: App lectures users about the dangers of substance use. Problem: Every person in recovery already knows. Lecturing is condescending and drives disengagement. Fix: Assume the user is competent and courageous. Provide tools, not sermons.
Pattern: Notifications that shame non-engagement ("You haven't logged in for 3 days!"). Problem: Shame is the number one relapse trigger. Guilt-based re-engagement is dangerous. Fix: Warm re-engagement: "No pressure. We're here when you need us." Or simply say nothing.
Pattern: Collecting detailed substance use history, mental health data, and location without clear need. Problem: People in recovery are (rightly) protective of their privacy. Data breaches in this domain are catastrophic. Fix: Collect minimum viable data. Process locally when possible. Encrypt everything. Let users delete everything with one action.
Pattern: Adding meditation, fitness tracking, meal planning, sleep tracking, and CBT exercises into one app. Problem: Overwhelming. Recovery is already exhausting. A 47-feature app feels like another obligation. Fix: Do 3-4 things exceptionally well. Meeting finder, check-ins, crisis access, sobriety counter. That is a complete app.
Pattern: Supporting "all pathways" in marketing but designing exclusively around 12-step language and concepts. Problem: Alienates SMART Recovery, Recovery Dharma, secular, medication-assisted, and harm reduction users. Fix: Program-agnostic core with opt-in pathway customization. Test with diverse recovery communities.
Design Philosophy: A recovery app earns its place on someone's phone by being genuinely useful in the hardest moments of their life. Every design decision should be tested against one question: "Would this help someone at 2 AM who is considering using?" If the answer is not a clear yes, reconsider whether it belongs.
data-ai
license: Apache-2.0 NOT for unrelated tasks outside this domain.
development
Use when designing caching strategies (cache-aside, write-through, write-behind), implementing distributed locks, building rate limiters, leaderboards, real-time streams (XADD/consumer groups), pub/sub, or tuning eviction policies. Triggers: thundering-herd on cache miss, dogpile on key expiry, Redlock vs SET-NX-PX choice, sliding-window rate limiter, hot-key on a single cluster slot, big-key blowup, MULTI/EXEC across slots, KEYS in production. NOT for Redis Cluster operations/admin (different domain), embedded KV (SQLite, leveldb), in-process LRU caches, or Memcached.
tools
Drawing the `'use client'` boundary correctly in React Server Components apps (Next.js App Router, RSC frameworks) — leaf-pushing, slot composition, serialization rules, and environment poisoning prevention. Grounded in react.dev and Next.js 16 docs.
development
Use when designing rate limiting for an API, choosing between token bucket / sliding window / leaky bucket / fixed window, implementing it in Redis, deciding edge (Cloudflare/Upstash) vs origin enforcement, sizing per-user vs per-IP vs per-endpoint quotas, returning the right 429 response with Retry-After, or fixing the boundary-burst bug in fixed-window limiters. Triggers: 429 too many requests, INCR + EXPIRE, ZADD + ZREMRANGEBYSCORE + ZCARD, X-RateLimit-Remaining header, Cloudflare WAF rate limiting rules, Upstash @upstash/ratelimit, leaky bucket shaping vs policing, distributed rate limiter consistency. NOT for DDoS mitigation specifically (different scale), CAPTCHA / bot management, full WAF design, or per-user quota billing.