cocottetech/@platform/codebase/@features/ai-copilot/docs/notifications-settings.screen.md
natalie 1b719e1fd7 chore(bootstrap): initial V4 commit
Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac
working tree at ~/Code/@projects/@cocottetech/. node_modules and build
artifacts excluded via .gitignore.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 08:11:41 -07:00

4.9 KiB
Raw Blame History

notifications-settings.screen

S3 settings category — notification channel × stakes × specialist preferences. Implements per brief S §S3 + brief C matrix. Reached from settings-root.screen.md "Notifications" card. Voice: working.

Layout (full-screen sheet)

┌─────────────────────────────────────────────────┐
│ ◄ Settings                              Done    │ 56pt
├─────────────────────────────────────────────────┤
│                                                 │
│  ─── Channels ───                               │
│  ☑ iOS push                                     │
│  ☑ iMessage self-notify                         │
│  ☑ Email digest                                 │
│  ☐ Apple Watch                                  │   AB only on if Watch paired
│                                                 │
│  ─── By stakes ───                              │
│         Push     iMsg     Email    Watch        │   matrix per brief C
│  High   ☑        ☑       ☑       ☑              │
│  Med    ☑        ☐       ☑       ☐              │
│  Low    ☐        ☐       ☑       ☐              │
│                                                 │
│  ─── Quiet hours ───                            │
│  From: [ 22:00 ▼ ]  To: [ 08:00 ▼ ]              │
│  Override for high-stakes: ☑ allow              │
│                                                 │
│  ─── Per-specialist ───                         │
│  • ai-copilot    [ inherits ▼ ]                  │
│  • triage        [ high+med only ▼ ]             │
│  • content-x     [ inherits ▼ ]                  │
│  • bookings-tryst [ failure-only ▼ ]             │
│  [ See all 11 → ]                               │
│                                                 │
│  ─── Daily digest ───                           │
│  ☑ Show in-app at first chat open               │
│  ☑ Send via email at 06:00 local                │
│  [ Customize sections → ]                       │
│                                                 │
└─────────────────────────────────────────────────┘

Components

Component Notes
Channels 4 channels Quinn can opt into. Watch greyed when no Watch paired.
Stakes matrix 3×4 grid: high/med/low × channel. Per brief C default-checked pattern.
Quiet hours Time range + high-stakes override flag.
Per-specialist Per-specialist preference: inherits / high+med only / failure-only / off.
Daily digest In-app daily-digest.screen.md surfacing toggle + email cadence.

States

  1. Default — sensible matrix per brief C. Quiet hours empty (no restriction).
  2. No push permission — top banner: "Cocotte doesn't have push permission. Grant in iOS Settings."
  3. Watch unpaired — Watch column greyed.
  4. All channels off — banner: "Cocotte can't reach you. Approvals will queue in-app only. Enable at least one channel."
  5. Quiet hours covering current time — banner: "It's quiet hours now. Cocotte's holding notifications."
  6. Per-specialist override active — chip: "{N} specialists overriding defaults."
  7. VoiceOver — matrix announced as table; channel columns announced as headers.

Interactions

  • Tap a stakes-matrix cell → toggle that channel for that stakes tier.
  • Tap quiet hours picker → time range editor.
  • Tap per-specialist row → preference picker for that specialist.
  • Tap "Customize sections" → daily-digest section toggles (which sections appear).
  • Tap "See all 11" → full per-specialist list.

Edge cases

  • High-stakes notification during quiet hours, override off — Cocotte still sends via iMessage as fallback (per brief M fallback hierarchy).
  • Email channel set but Quinn's email unverified — chip "Email unverified. Add a working address."
  • Daily digest off + chat-home open at 06:00 — Cocotte still shows the pinned card (digest section toggle covers the email, not in-app).

Out of scope

  • Per-channel quiet-hours overrides (defer).
  • Notification-action quick replies (P3+).