Frank

Frank's Fed

UAT · Pre-prompt push permission UX (NOTIF-04 / D-14..D-17)

Pre-prompt push permission UX (NOTIF-04 / D-14..D-17)

Phase 03 NOTIF-04 soft Open
Status
Open
Assigned
Unassigned
Started
Completed

Expected behaviour

On Device A (fresh install, Frank skin): add a pet → log first feed → confirm sheet does NOT appear during 7s undo → confirm sheet appears within ~1s after undo closes → verify Frank-voice copy ("Want this for everyone else?" + "Frank's home screen widget stays up to date when the household logs anything. Want that?") → tap [Not now] → verify iOS system Allow dialog does NOT appear → background+foreground app: sheet does not re-appear → invite Device B; on B redeem invite → on A: sheet re-appears once (1→2 member transition, D-17) → tap [Not now] again, no further re-asks. Repeat on Miles skin (different account or skin switch): "Allow live updates?" + "The household refreshes Miles' status across every device — invisibly. Allow that?" + [Later] secondary CTA. Permission denial path: deny via iOS dialog → Phase 3 surfaces ZERO UI (D-16) → silent pushes from B still update A's widget (NOTIF-05).

Why human

Step-by-step subjective UX flow on physical hardware including iOS system dialogs (SpringBoard probe is structurally tested but the actual dialog suppression is hardware-only). The harness flag XCTSkipUnless gating means automated UITests are deferred to Phase 6. The Bible-voice subjective pass ("would this make a tired pet owner feel understood?") is a founder gut-check that no automated test can substitute.

Comments

No comments yet. Add one by editing the comments array in .planning/uat-state.json.

Evidence

No evidence attached. Drop screenshots into .planning/uat-evidence/phase-3-uat-02-push-permission-ux/ and reference them in the test's evidence array.

Update this test

Pick yourself, then claim, comment, drop a screenshot, or close. Each action opens a PR against master; site reflects after merge + next /franks-fed-status-publish run. Mutations are audit-logged.

Sign in as

How to claim, comment, or close this

The mutable state lives in .planning/uat-state.json. Easiest path is to ask Claude Code in the project repo:

"Assign phase-3-uat-02-push-permission-ux to Treth and add a comment: 'Setting up two iPhones tonight, will start the 24h window from 19:00.'"

Or hand-edit .planning/uat-state.json directly. Drop screenshot evidence into .planning/uat-evidence/phase-3-uat-02-push-permission-ux/ and reference the filename in the evidence array. Once the test passes or fails, set status to pass or fail with completed_at + a closing comment, then run /franks-fed-status-publish. The skill will write a closure record to .uat-pending-resolutions.json with a one-paste prompt that updates the originating VERIFICATION.md.

Source artefact: .planning/phases/03-widgets-apns-fan-out/03-VERIFICATION.md  ·  verification index: 1  ·  SC: NOTIF-04