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>
4.8 KiB
4.8 KiB
watch-glance.screen
CocotteAI on Apple Watch / Vision Pro. Implements brief AB. The watch-form-factor reduction of chat-home — what survives compression to a wrist-glance and a 3-second interaction window. Voice: hearth on receipts, plain on alerts.
Layout (Apple Watch Series 10, 49mm rendering)
┌─────────────────────────┐
│ ⌚ 2:14 │ Watch top bar (system)
├─────────────────────────┤
│ │
│ 🟢 simmering │ ambient state (1 char + word)
│ │
│ Bumped Tryst 11:02 │ most recent receipt (1 line)
│ ↶ undo │ single-tap undo affordance
│ │
│ ─── ─── ─── │
│ │
│ 3 wait │ pending count
│ 📥 │ tap → open inbox (handoff to iPhone)
│ │
└─────────────────────────┘
Vision Pro variant: same content surfaces in a translucent glassmorphic panel pinned to the user's left peripheral, with eye-gaze + pinch-to-confirm replacing Watch taps.
What survives compression
The Watch shows only:
- Cocotte state: one of
simmering(idle good) /working(action in progress) /paused/failed— represented as a single emoji + word. - One receipt: most-recent ambient receipt with one-tap undo (30s window per F §F4).
- Pending count: number of things waiting for Quinn, with a glyph that opens iPhone handoff to the relevant inbox/approval surface.
Everything else (chat composition, full approval cards, drawers, settings) is explicitly NOT on the Watch — those operations need a phone.
Complications (Watch face widget)
- Corner complication: Cocotte state emoji + pending count.
- Modular complication: state + most-recent receipt one-liner.
- Rectangular complication: state + receipt + pending count.
Complications refresh every 5 minutes minimum (Watch power budget); push when high-stakes events fire.
States
- Simmering (idle good) — green dot + "simmering" + most recent receipt.
- Working — yellow dot + "working: drafting" + the action being drafted.
- Paused — orange dot + "paused" + "resumes 14:49".
- Failed — red dot + "needs you" + brief failure copy. Tap → iPhone handoff (failed actions don't resolve on Watch).
- Pending high-stakes — pulses; haptic on arrival; tap → iPhone handoff to approval card.
- Offline — grey dot + "offline" + last-synced timestamp.
- Kill-switch armed — full red glyph + "all paused"; tap → iPhone unlock-and-confirm.
- Sleep / Always-On Display — minimal state emoji only; receipts hidden until wake.
Interactions
- Tap state dot → cycles through any unread receipts (rotates one-by-one).
- Tap "↶ undo" → undoes the receipt's action (30s window); confirmation haptic.
- Tap "3 wait" → triggers handoff to iPhone CocotteAI scoped to pending-approvals.
- Long-press anywhere → toggle kill-switch armed state with double-tap confirm (the only meaningful Watch-side stop).
- Digital Crown spin → scroll between receipt + state + pending sections.
- Vision Pro: eye-gaze + pinch on receipt → expand into a floating card with full content; pinch-undo to dismiss.
Edge cases
- Multiple receipts queued — Watch cycles through one per tap; chip shows "1 / N."
- Receipt undo while iPhone is locked — undo still committed; phone shows the receipt-undo result on next unlock.
- Watch offline + iPhone reachable — Watch defers all state through iPhone via standard Watch sync.
- No iPhone paired (cellular Watch standalone) — degraded mode: state + receipts work; pending count tappable opens "Open this on iPhone when you're back" placeholder.
- Accessibility / VoiceOver — full text read; state announced as "Cocotte is {state}." Undo affordance announced separately.
- Reduced motion — no pulse on high-stakes; haptic-only.
Related
- Brief AB — parent.
- chat-home.screen.md — the full-iPhone analog; Watch is a compression of this.
- Brief E — cross-platform variants context.
- Brief K §K5 — Watch kill-switch entry.
- Brief F §F4 — haptic + motion spec.
Out of scope
- Watch-side chat composition (defer; potentially never — composing on Watch is wrong-shaped).
- Watch standalone (no iPhone) primary surface (defer; treat as degraded mode at P0).
- Vision Pro full-immersion mode (defer; AR-glance only at P0).