diff --git a/ClaudeQAPlan.md b/ClaudeQAPlan.md index 51067a6a..ab2ea170 100644 --- a/ClaudeQAPlan.md +++ b/ClaudeQAPlan.md @@ -22,6 +22,26 @@ Scope decisions: **exhaustive** visual pass (all ~50 screens, both modes); **ful `EntitlementChecker.isPremium()` — so premium almost certainly does NOT unlock for the free partner there. Pass A confirms + enumerates this; the fix phase applies couple-shared everywhere. +## Execution mode — run to completion (autonomous; do NOT stop) +- **Do not stop to check in or ask for approval.** Run all five passes → the fix phase → re-QA rounds **continuously + until a flawless round** (zero open P0–P2, Passes D + E clean, every game fully played through, navigation/back-stack + verified). Don't hand control back early. +- **Unblock yourself:** if anything **blocks progress** (a stale/blocking session, a crash, a build break, a missing + prerequisite state, a broken nav path that prevents reaching a screen), **fix it immediately and continue** — even + though passes are otherwise report-only. Blocking issues are fixed inline so the run can proceed; non-blocking + findings are still logged and fixed in the fix phase. +- **"Once executed, complete it":** never declare done before the Definition of Done is met — keep cycling fix → re-QA + until flawless, then stop. +- **Context limits ≠ stopping.** If a context window fills, that's a checkpoint, not a stop: make sure the run-state + header + MD files are current and committed; the resume command continues automatically. Keep the loop alive across + sessions until flawless. +- **Don't pause for "by-design vs bug":** log the ambiguous finding and keep going (don't unilaterally rewrite + deliberate design — the log captures it). Never halt the run to ask. +- **Only true stop = a gated action you cannot perform.** Production deploys, admin Firestore writes/seeds, and + entitlement toggles still need per-occurrence authorization (the classifier enforces this regardless of this doc). + If one is genuinely required to proceed and is denied, do **all** other work first, then surface only that single + blocker — don't halt the whole run for it. + ## Methodology (every pass) - Devices: **5554 (QA)**, **5556 (Sam)**, paired; one **fresh throwaway account** for pre-pairing flows. - Drive via adb tap/swipe; resolve coords from `uiautomator dump` bounds; downscale screenshots to read; @@ -53,7 +73,7 @@ State lives in **files**, not memory: ## Guardrails & efficiency - **Never `pm clear` / wipe app data** — breaks the App Check debug token. Pre-pairing QA: sign-out → fresh sign-up. - **Never run `seed/build_db.py`.** Admin seeds/writes, entitlement toggles, and any deploys are **user-authorized per occurrence**. -- **By-design vs bug:** if a finding may be intended behavior, log it and **confirm with the user before changing it**. +- **By-design vs bug:** if a finding may be intended behavior, **log it and keep going** (don't stop to ask; don't unilaterally rewrite deliberate design — the log captures it). - **Pass C parallelism:** set **5554 = Dark, 5556 = Light** to capture both themes at once. - Never log decrypted message/answer content. diff --git a/ClaudeReport.md b/ClaudeReport.md index 32220e5e..0a5f749f 100644 --- a/ClaudeReport.md +++ b/ClaudeReport.md @@ -2,6 +2,7 @@ > **RUN-STATE: Round 2 (re-QA + deferred coverage) NEXT | NEXT ACTION: re-verify A-001 + E-001 fixes; **play each game ONE complete time through on both devices** (Pass B was launch-only — full playthroughs still owed); then Pass C deep/stateful screens (reveal, wheel session, dates, bucket list, auth/onboarding) in both themes + **navigation from every entry point & back-stack/double-back checks**, full live notification matrix, D3 live non-member test.** > Round 1 complete (all 5 passes run report-only; P0–P2 found were fixed in-line). Fixes: A-001 (e8892a9), E-001 (ce12abb). Open P3: A-003, B-001, E-002. +> **EXECUTION MODE: autonomous run-to-completion — do NOT stop; fix anything that blocks progress and continue; keep cycling fix→re-QA until a flawless round. Only a gated action (prod deploy / admin write / entitlement toggle) that's denied may be surfaced — do all other work first.** > Playbook: `ClaudeQAPlan.md`. Coverage matrix: `ClaudeQACoverage.md`. Report-only during passes (no fixes until the fix phase). > Devices: emulator-5554 (QA=`Y05AKO`) + emulator-5556 (Sam=`imDjjO`), paired (coupleId `Xal3Kw3gjSdn0niERYKJ`). Build == HEAD `64f0a7e`.