2026-06-24 19:59:04 -05:00
# Claude QA Coverage Matrix
> Resume anchor. Status: `todo | pass | fail(→id) | n/a`. See `ClaudeReport.md` run-state header for current position.
> Round 1 in progress.
## Pass A — Couple-shared premium (states: neither / partner-only / self)
| Feature | neither→locked | partner→both unlock | self→unlock | Status |
|---|---|---|---|---|
| Chat media + reactions | pass | pass | pass | pass (couple-shared) |
| Play: Desire Sync | pass | **fail→A-001** | pass | fail→A-001 |
| Play: Memory Lane | pass | **fail→A-001** | pass | fail→A-001 |
| Play: Connection Challenges | pass | fail→A-001 | pass | fail→A-001 |
| Question Packs (premium) | pass | fail→A-001 | pass | fail→A-001 |
| Wheel: Category Picker / Spin / History | pass | fail→A-001 | pass | fail→A-001 |
| Date Match / Plan Date | pass | fail→A-001 | pass | fail→A-001 |
| Subscription screen (own status) | n/a | n/a | n/a | pass (by-design per-user) |
2026-06-24 20:53:39 -05:00
Pass A: **complete** (1 systemic P1). **A-001 FIXED** (e8892a9) — couple-shared everywhere; re-verify each feature in re-QA. New cosmetic A-003 (P3, badge). Subscription screen by-design.
2026-06-24 19:59:04 -05:00
## Pass B — Games lifecycle (start / play / finish + results)
2026-06-24 22:30:09 -05:00
**RESTARTED 2026-06-24 (R2-B2): full re-run from game #1 with the PLAY-AS-THE-USER mindset** (navigate only via the
real in-app path; report-first-then-workaround on any broken flow). Prior R2 This or That / How Well passes are
superseded — redo every game cleanly. (Prior result for reference: This or That 5/5 ✅, How Well 5/5 ✅.)
2026-06-24 19:59:04 -05:00
| Game | starts | plays | finishes/results | no crash | Status |
|---|---|---|---|---|---|
2026-06-24 22:42:18 -05:00
| 1. This or That | pass | **pass (full, user-nav)** | **pass** | pass | **R2-B2: 5/5 via Play hub, answers synced, results match both (4/5 "Two peas in a pod", Q2 Differ correct), no crash ✅. Session-lifecycle bug B-001 (P1) hit on exit.** |
2026-06-24 22:30:09 -05:00
| 2. How Well Do You Know Me | todo | todo | todo | todo | todo (redo, user-nav) |
| 3. Desire Sync | todo | todo | todo | todo | todo (premium; couple has premium) |
| 4. Connection Challenges | todo | todo | todo | todo | todo (premium) |
| 5. Memory Lane | todo | todo | todo | todo | todo (premium) |
| 6. Spin the Wheel | todo | todo | todo | todo | todo (premium) |
| 7. Date Match | todo | todo | todo | todo | todo |
_Note: stale active session blocked games (B-001); cleared via in-app "End their game" (recovery verified). Exit each game via Back to Play between games so the session closes._
2026-06-24 21:24:08 -05:00
**REQUIREMENT (updated): each game must be played ONE COMPLETE time through on both devices (every step → finish/
reveal/results), not just launched.** All rows above are currently `launch ok / partial` only → **full playthrough
still owed for every game** in Round 2 (premium games need a premium toggle). A launch-only row counts as `partial` , not `pass` .
2026-06-24 20:04:54 -05:00
2026-06-24 19:59:04 -05:00
## Pass C — Visual (light + dark), all ~50 routes
2026-06-24 21:26:23 -05:00
_todo — enumerate from AppRoute.kt; 5554=Dark, 5556=Light. Main tabs pass; deep/stateful screens owed._
**Also owed:** navigation from EVERY entry point (each screen via all its links) + back-stack / "double-back"
(system back + in-app back to correct place from each entry; no dead-ends, no exit surprise, no two-back/duplicate stack).
2026-06-24 19:59:04 -05:00
## Pass D — Security & Encryption (D1– D6)
_todo_
## Pass E — Notifications (17 types × {foreground, background, killed} + tap-to-open)
_todo_