Store readiness: in-app account deletion, privacy policy, terms, listing copy

Closes the remaining store-compliance gaps before App Store / Play
submission:

- Account deletion (App Store guideline 5.1.1): DELETE /me removes the
  user row (usage cascades). The app exposes it through one quiet
  'Account' caption link under the chat, visible only when signed in,
  driving two native dialogs (Sign out / Delete account with a
  destructive confirm) — no new views, no menus, minimalism intact.
  Deletion signs out and resets the app; copy notes that store
  subscriptions are cancelled in App Store / Play settings.
- docs/store/privacy-policy.md: the complete data inventory (matching
  the actual schema), transient OpenAI processing with no training, no
  profiling or ads, GDPR legal bases and rights, in-app erasure.
- docs/store/terms-of-service.md: not-therapy positioning with crisis
  guidance, AI-generated-content caveat, 18+ eligibility,
  auto-renewal/cancellation terms, liability, Swedish governing law.
- docs/store/listing.md: App Store and Play copy written to the
  honest-claims rule (subtitle 'Think Beyond Thought', keywords,
  descriptions), plus App Privacy and Data safety questionnaire
  mappings.
- LAUNCH.md updated: host the policy/terms, set store URLs, use the
  prepared listing copy.
- Tests: 30 passing (adds DELETE /me coverage).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0118DaxZR36RpnY524vRqx3z
This commit is contained in:
Claude
2026-08-03 22:37:25 +00:00
parent bf5c4e5f00
commit e5b81f46b0
11 changed files with 314 additions and 8 deletions
+74
View File
@@ -0,0 +1,74 @@
# Store listing copy
All copy follows the honest-claims rule: neurosemantics/NLP as inspiration
and models for reflection — never "scientifically proven", never promised
results. Tone: calm, clear, no hype.
## App Store (iOS)
- **Name:** Semantika
- **Subtitle** (≤30 chars): `Think Beyond Thought`
- **Category:** Lifestyle (primary), Education (secondary)
- **Age rating:** 17+ (unrestricted web-like AI content; matches 18+ terms)
- **Keywords** (≤100 chars):
`reflection,thinking,clarity,communication,meaning,mindset,self insight,NLP,decision,conversation`
- **Promotional text:**
A quiet conversation partner for your thinking. Explore how you create
meaning — one structured conversation at a time.
- **Description:**
Semantika is a minimalist AI conversation partner for reflection,
inspired by neurosemantic principles.
Start a conversation about what is on your mind — a difficult
conversation ahead, a decision you keep postponing, a pattern you keep
repeating. Semantika listens, asks considered follow-up questions, and
helps you see how you interpret your situation. When the picture is
clear, it offers a structured analysis, concrete recommendations, and
practical exercises.
No feeds. No streaks. No noise. One conversation at a time.
— Begin immediately: no registration before your first question
— Conversations are never stored, and never used for training
— A calm, structured method: acknowledge, explore, lift, challenge
— Premium: full analyses, personalised action plans, unlimited dialogue
Semantika is not therapy and does not replace professional care. Its
models are offered as perspectives for reflection, inspired by
neurosemantics and NLP.
Subscriptions ($5.99/month or $49.99/year) renew automatically and can
be cancelled anytime in your App Store settings.
Privacy policy and terms: [PRIVACY_POLICY_URL] · [TERMS_URL]
## Google Play (Android)
- **App name:** Semantika
- **Short description** (≤80 chars):
`A quiet AI conversation partner for reflection, clarity and better decisions.`
- **Full description:** reuse the App Store description above.
- **Category:** Lifestyle
## App Privacy (Apple questionnaire mapping)
- **Contact info → Email address:** collected, linked to identity, for app
functionality only. No tracking.
- **Identifiers → User ID:** account id / device id, app functionality only.
- **Purchases:** subscription status, app functionality only.
- **User content (chat):** processed but **not collected/stored**; declare
as not collected (transient processing), and describe in the privacy
policy.
- **Tracking:** none. No ads, no data sold or shared for advertising.
## Data safety (Google Play form)
- Collected: email, user ids, purchase history (subscription status).
- Shared: none. Encrypted in transit: yes. Deletable: yes, in-app.
- Chat content: processed ephemerally, not stored.
## Required URLs
Host `privacy-policy.md` and `terms-of-service.md` on a public URL (GitHub
Pages is enough for the beta) and set them in both store consoles. Replace
the [PLACEHOLDERS] in both documents first.