docs: reconcile stale docs with project reality (Batch 1 doc hygiene)

Every point-in-time doc now carries an explicit status header so no one works
from a dead plan or stale claim:

- CopyMigration.md: CLOSED — migration stopped by owner decision after Slice 1;
  Slices 2-4 cancelled (several target strings since rewritten by the Closer
  Couples prose rename anyway).
- store-assets.md + NameChange.md: the support-URL 'couplesconnect.app' claim
  was stale — ExternalLinks.kt already uses closer.app/support; remaining action
  is Play-console listing fields only.
- internal-testing-checklist.md: SUPERSEDED by store-assets.md + release_guide;
  also corrected its applicationId error (app.closer -> closer.app, the same
  namespace swap behind the 4e807cb0 deep-link bug).
- private-mvp-checklist.md: SUPERSEDED by the ClaudeQAPlan system.
- UI_UPGRADE / standardization-review / ui-review / date-planning-roadmap /
  IOS_E2EE_STATUS / iphone ARCHITECTURE_AUDIT: stamped historical/paused with
  pointers to the live sources (Future.md, ClaudeBrandingReview, ERM).

NOT touched: DEVELOPMENT_LOG.md (verified alive — newest entry 2026-07-08,
prepend-ordered; earlier 'log is dead' read was wrong) and the Engineering
Reference Manual (another agent's Phase-4 review owns its drift).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
null 2026-07-11 18:29:08 -05:00
parent 654be1feff
commit 08e9be626e
11 changed files with 61 additions and 8 deletions

View File

@ -1,5 +1,10 @@
# iOS↔Android E2EE Parity — Status Memo
> **Status (stamped 2026-07-11): snapshot as of 2026-06-28; iOS work is PAUSED — the ship scope is
> Android-only (owner decision, see `release_guide.md`).** Still accurate as the resume-point memo
> for whenever iOS work restarts; nothing here has been invalidated, but nothing has advanced either
> (canonical-vector CI run still `TODO_ANDROID_RUN` per the Engineering Manual).
>
> **Phase: iOS E2EE code-complete, parity verified in isolation, deployment pending Mac/CI infrastructure.**
> **Author:** Ripley (Ripley subagent), 2026-06-28
> **Audience:** Next session (you, Scarlett, Bishop, Neo, future Claude), and anyone resuming the iOS E2EE work

View File

@ -1,5 +1,10 @@
# Closer UI Upgrade
> **Status (stamped 2026-07-11): historical planning doc (written 2026-07-01), not a live tracker.**
> Much of its direction shipped via the R30 polish round (see `ClaudeReport.md` R30) and the brand
> system in `docs/brand/`. For current visual/brand backlog use `ClaudeBrandingReview.md`
> (BRAND-ICON-CUSTOM) — do not work items from this file without checking they aren't already done.
This document is the focused visual upgrade plan for making Closer feel more beautiful, polished, and emotionally specific without turning it into a decorative wellness app.
The direction: keep the app calm and private, but make important relationship moments feel more intentional.

View File

@ -1,5 +1,13 @@
# Copy migration — brand-voice copy → `CloserCopy`
# Copy migration — brand-voice copy → `CloserCopy` [CLOSED]
> **⛔ CLOSED (2026-07-11) — stopped by owner decision after Slice 1.** The ROI review concluded
> pure copy-relocation wasn't worth the churn; effort went to higher-value work instead (server/
> removal, benefit-list reconciliation). **Slices 24 are CANCELLED, not pending.** The catalog's
> scope is frozen at paywall + subscription + age-gate (`ui/brand/CloserCopy.kt`). Also note: the
> 2026-07-11 "Closer Couples" in-app prose rename REWROTE many strings quoted below (e.g. the
> age-gate disclaimer is now "Closer Couples is an 18+ app.") — treat quoted copy as historical.
> Rename record: `docs/NameChange.md`.
>
> Incremental migration of **brand-voice** hardcoded copy into the typed `CloserCopy` catalog.
> Builds on the paywall + subscription slice (commit `51efff3f`). Status tracked per slice below.
@ -80,4 +88,5 @@ Three **domain-scoped** catalogs, by design (not a smell to unify):
- **Slice 1 (age-gate): ✅ done.** Min-age error de-triplicated → `CloserCopy.AgeGate.ageError(minAge)`;
both disclaimer variants + the duplicated DOB prompt consolidated. 6 call sites across
SignUp{Screen,ViewModel} + CreateProfile{Screen,ViewModel} now source from the catalog. Compile clean.
- Slices 24: pending.
- Slices 24: **cancelled** (2026-07-11 close-out — see header). Several of their target strings were
since edited in place by the "Closer Couples" prose rename instead.

View File

@ -96,6 +96,6 @@ Removed the two unreferenced banner-like generated-art files so there is a singl
- **Launcher untouched:** `app_name` in `strings.xml` and `CFBundleDisplayName` in `Info.plist` both still "Closer".
- No build required (no source touched); optional `./gradlew :app:assembleDebug` still succeeds unchanged.
## Pre-existing issue noted (NOT fixed here)
## Pre-existing issue noted (RESOLVED 2026-07-11)
`store-assets.md:106` — support URL `couplesconnect.app` vs the `closer.app` domain used elsewhere; unrelated to this rename, leave for separate cleanup.
The support-URL inconsistency (`couplesconnect.app` vs `closer.app`) is resolved in code — `ExternalLinks.kt` uses `https://closer.app/support`; `store-assets.md` §3 updated accordingly. Only the Play-console listing fields remain (set when the listing is created).

View File

@ -1,5 +1,10 @@
# Date Planning Feature Roadmap
> **Status (stamped 2026-07-11): historical vision doc (2026-06-16); the core shipped.** Date Match,
> Date Builder/Plan, Date Memories/Reflection, and match notifications are all live and QA-covered
> (`ClaudeQACoverage.md` Pass N). Remaining ideas here are unscheduled product backlog — pull them
> through `Future.md` if/when prioritized; don't treat this file as a commitment list.
## Vision
Build a complete Date Operating System for Closer — not a simple list of date ideas.

View File

@ -1,5 +1,11 @@
# Closer — Private MVP QA Checklist
# Closer — Private MVP QA Checklist [SUPERSEDED]
> **Status (stamped 2026-07-11): SUPERSEDED — do not run this checklist.** The live QA system is
> `ClaudeQAPlan.md` (playbook, passes AP) with state in `ClaudeQACoverage.md` + `ClaudeReport.md`;
> it covers everything here plus security/E2EE/notifications/billing depth this list predates. It
> also references files since removed by the 2026-07-09 dead-file sweep. Kept only as a historical
> record of the 2026-06 MVP pass.
>
> Manual testing checklist for the internal MVP build. Covers every top-level flow in the app and notes known gaps discovered during the 2025-06 QA pass.
> Last updated: 2026-06-21 — reflects pairing security hardening, notification preferences, appearance screen, email invite removal, real PartnerHomeScreen, real SubscriptionScreen, ProGuard log stripping, strings.xml, and support URL fix. All 17 release blocker items resolved or pending deploy.

View File

@ -1,5 +1,9 @@
# Batch 8 — Responsive Visual QA Code Review
> **Status (stamped 2026-07-11): completed historical batch (2026-07-02).** Its findings were fixed
> and are regression-covered by the recurring QA rounds (`ClaudeQACoverage.md` Pass C/J). Reference
> only — new responsive issues go through the live QA playbook, not this file.
## Scope
Reviewed Compose UI files under `app/src/main/java/app/closer/ui/` for responsive layout issues:
- Missing `maxLines` + `TextOverflow.Ellipsis` in constrained containers

View File

@ -1,6 +1,13 @@
# Closer — Internal Testing Build Checklist
# Closer — Internal Testing Build Checklist [SUPERSEDED]
> Steps to prepare, sign, and distribute an internal testing build for the private MVP. Assumes Android Gradle Plugin 8.7.3, Kotlin 2.0.21, minSdk 26, targetSdk/compileSdk 35, and `app.closer` applicationId.
> **Status (stamped 2026-07-11): SUPERSEDED by `docs/release/store-assets.md` (§5 signing, §8
> pre-launch) and the ship-readiness plan (`release_guide.md`, Phases 12b), which reflect the
> current release-guard build config, keystore plan, and Play internal-testing path.** Also note a
> factual error below: the applicationId is `closer.app``app.closer` is the code namespace (the
> same swap that produced the Manage-subscription deep-link bug fixed in `4e807cb0`). Kept as
> historical context only.
>
> Steps to prepare, sign, and distribute an internal testing build for the private MVP. Assumes Android Gradle Plugin 8.7.3, Kotlin 2.0.21, minSdk 26, targetSdk/compileSdk 35, and ~~`app.closer`~~ **`closer.app`** applicationId.
Internal testing should verify the product goal: **private, mutual-reveal relationship questions with real encryption and calmer UX**.

View File

@ -104,7 +104,7 @@ private rhythm for checking in, listening better, and making time for each other
- [ ] Privacy policy URL defined and reachable: currently `https://closer.app/privacy`.
- [ ] Terms of service URL defined and reachable: currently `https://closer.app/terms`.
- [ ] Subscription terms URL defined and reachable: currently `https://closer.app/subscription-terms`.
- [ ] **Action needed**: Support URL currently points to `https://couplesconnect.app/support` in `ExternalLinks.kt`; migrate to `closer.app` domain and update store listing support/contact email.
- [x] ~~Support URL migration in code~~ **done in code** (verified 2026-07-11): `ExternalLinks.kt` now uses `https://closer.app/support` (the old `couplesconnect.app` claim was stale). **Remaining action is console-only**: set the store-listing support URL / contact email to the `closer.app` values when the listing is created.
- [ ] All legal pages load over HTTPS.
- [ ] Privacy policy accurately describes data collected (answers, FCM tokens, purchase data, couple pairing info).

View File

@ -1,5 +1,10 @@
# Code standardization & modernization review (2026-07-06)
> **Status (stamped 2026-07-11): point-in-time review; the "Applied" section shipped, the rest is
> backlog.** Unapplied items overlap the refactor backlog tracked in `Future.md` (session-game
> engine dedupe, DispatcherProvider injection, error-surfacing standardization) — `Future.md` is
> the live list; this file is the evidence/rationale record behind it.
A grounded pass over the Android app (313 Kotlin files), Cloud Functions (TypeScript), and build. Each
item is a *real, measured* inconsistency (with counts), not generic advice.

View File

@ -1,5 +1,12 @@
# Closer iOS App — Architecture Audit
> **Status (stamped 2026-07-11): STALE in places — verify against current Android source before
> porting.** Known drift since this was generated: the `server/` Express backend it references was
> DELETED (Cloud Functions is the only backend); the RevenueCat webhook auth is now HMAC-SHA256
> (`X-RevenueCat-Webhook-Signature`), not Ed25519; a 2026-07-09 dead-file sweep removed several
> Android classes it may cite; in-app prose now reads "Closer Couples". iOS work is paused
> (Android-only ship). Canonical architecture reference: `docs/Engineering_Reference_Manual.md`.
>
> Generated from the Android (Kotlin) codebase at `app/src/main/java/app/closer/`,
> Cloud Functions at `functions/src/`.
>