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>
113 lines
6.6 KiB
Markdown
113 lines
6.6 KiB
Markdown
# Vigil-close digest · screen
|
||
|
||
The morning surface where a closed vigil becomes a readable journal entry + activity recap. Pairs with [brief Q](./Q-vigil-journal-auto-conversations.brief.md) §Q1–Q2 and [brief I](./I-audit-trust-replay.brief.md) §I1 (daily digest).
|
||
|
||
## When it fires
|
||
|
||
Vigil-detector closes a vigil when activity gap exceeds N hours (per v2 heuristics; defaults preserved). Closure fires `vigil-journal-generator`. When Quinn next opens CocotteAI after the close, this digest is the **first message in chat-home** from ai-copilot.
|
||
|
||
## Layout
|
||
|
||
```
|
||
┌────────────────────────────────────────┐
|
||
│ ai-copilot · today, 06:18 │
|
||
│ │
|
||
│ ◐ Vigil closed at 04:42 │
|
||
│ eight hours, twenty drafts, six │
|
||
│ receipts. │
|
||
│ │
|
||
│ Journal — auto-drafted │
|
||
│ ┌──────────────────────────────────┐ │
|
||
│ │ A slow morning. Tryst stayed │ │
|
||
│ │ steady, OF held two warm threads,│ │
|
||
│ │ and the Berlin tease cooled │ │
|
||
│ │ overnight. Mood: even. Worth │ │
|
||
│ │ re-warming Friday. │ │
|
||
│ │ │ │
|
||
│ │ Mood: even Tags: #of #berlin │ │
|
||
│ │ Mentions: @felix, @sasha │ │
|
||
│ └──────────────────────────────────┘ │
|
||
│ [ feels right ] [ re-tag ] ⋮ │
|
||
│ │
|
||
│ Receipts │
|
||
│ · Bumped Tryst 6× · TS4Rent 6× │
|
||
│ · Posted 4 to X, 1 to OF │
|
||
│ · Drafted 12 DMs (sent 9, queued 3) │
|
||
│ · 1 retry: Tryst @ 03:14 → OK 03:16 │
|
||
│ │
|
||
│ 3 things want your eyes │
|
||
│ · @felix · OF · waiting since 02:11 │
|
||
│ · Tryst inquiry · waiting since 03:40 │
|
||
│ · OF post draft · 8pm slot │
|
||
│ │
|
||
│ [ open queue ] │
|
||
└────────────────────────────────────────┘
|
||
```
|
||
|
||
## Three layered blocks
|
||
|
||
The card has a deliberate visual hierarchy: **journal** (hearth, generative) → **receipts** (working, terse) → **call-outs** (working, decision-bound).
|
||
|
||
### Block 1 · Vigil header
|
||
- Phase glyph + duration + small counts (drafts / receipts).
|
||
- Hearth register, never urgent.
|
||
|
||
### Block 2 · Journal (auto-drafted)
|
||
- Claude-drafted paragraph (per `JOURNAL_MODEL_VERSION`).
|
||
- Mood + tags + mentions ribbon below.
|
||
- **Feedback affordances** (per Q2 correction-loop):
|
||
- `feels right` — implicit endorsement, model learns positively.
|
||
- `re-tag` — opens a small editor for mood + tags; correction lands in the journal-generator training loop.
|
||
- overflow `⋮`:
|
||
- `add a note from me` — Quinn-authored addendum, stored alongside.
|
||
- `delete this entry` — soft-delete; preserved for moderator/audit per Q open question.
|
||
- `make it private from peers` — never publishable upward (already the default; toggle reaffirms).
|
||
|
||
### Block 3 · Receipts (audit summary)
|
||
- 4–6 lines, plain enumeration.
|
||
- Tap any line → opens audit drawer (brief I §I2) scoped to that slice.
|
||
- Working register — never decorative.
|
||
|
||
### Block 4 · Call-outs (what wants Quinn's eyes)
|
||
- Up to 3 highest-priority items: inbox-warm-and-waiting, approval-queue-aging, scheduled-post-needs-final.
|
||
- Each line is tappable to its source (prospect drawer / approval card / content-plan drawer).
|
||
- `open queue` button collapses these into the full approval queue drawer.
|
||
|
||
## States
|
||
|
||
1. **Typical** (shown above).
|
||
2. **Quiet vigil** (low activity) — journal short, receipts collapsed to "kept steady, nothing notable", call-outs may be empty.
|
||
3. **Loud vigil** (failures, escalations) — journal mood likely "uneven"; receipts list failure lines first; call-outs prioritize escalations.
|
||
4. **Journal generation failed** — fallback:
|
||
> Cocotte couldn't draft the journal this morning. Receipts below. Try again in chat.
|
||
5. **First-ever vigil** (D-onboarding handoff) — journal block replaced by:
|
||
> First vigil on record. She'll start journaling from here on.
|
||
6. **Vigil still open** (Quinn opened the app mid-vigil) — different card entirely; this digest doesn't render until close.
|
||
7. **Privacy reminder** (every Nth open; tunable) — appended footer:
|
||
> Journals stay with you. Cocotte never sends them, never quotes them in outbound.
|
||
|
||
## Privacy invariants (rendered as part of the screen contract, not just brief Q text)
|
||
|
||
- Journal text is `outbound_suppressed=true` at the adapter boundary — never echoed into a DM draft.
|
||
- Mentions (@felix, @sasha) are tappable inside Quinn's drawers but never serialized into anything that ships to those prospects.
|
||
- The "make it private from peers" toggle is **always already on** for journals. The toggle exists so Quinn can confirm the invariant visually; it cannot be flipped off in P0.
|
||
|
||
## Gestures
|
||
|
||
- **Swipe down on the journal block**: collapses to a one-line summary, leaves receipts + call-outs visible. Persists for the rest of the day.
|
||
- **Long-press the journal block**: opens journal-entry detail (B5-adjacent drawer) with full text, full mention list, history of corrections.
|
||
- **Tap any mention chip**: opens prospect drawer (B3) scoped to that prospect's cross-vigil mention history (per Q open question Q-Q3, default-on).
|
||
|
||
## Edge cases
|
||
|
||
- **Multiple vigils since last open** (Quinn was away 2 days) — stack the digests, most recent first; offer "summarize all" affordance that asks ai-copilot to produce a meta-summary.
|
||
- **Vigil closed but call-outs already actioned** (Quinn handled them on web companion) — call-outs section shows "all caught up — nothing waiting."
|
||
- **Tag conflict** (journal-model tagged `#anxious`, Quinn re-tagged `#focused` last vigil; this vigil's draft uses `#anxious` again) — small inline note:
|
||
> Last time you re-tagged a similar entry. Want the model to lean your way?
|
||
|
||
## Related
|
||
|
||
- [brief Q](./Q-vigil-journal-auto-conversations.brief.md) §Q1, Q2.
|
||
- [brief I](./I-audit-trust-replay.brief.md) §I1 daily digest (this screen is a richer cousin).
|
||
- [brief A](./A-chat-surface.brief.md) §State 1 first-run empty (which this card replaces post-onboarding).
|
||
- [voice](./00-system-voice.md) §V2a hearth register for journal copy.
|