Parent epic: #193
Context
The briefing generator runs daily and produces a single global briefing per user. With Emergent Lifebooks (#193 Child 1 shipped via #242), each user has 3-N detected life domains with their own wings, signals, and capability sets. A single global briefing doesn't surface the per-domain texture.
Scope
Partition the daily briefing into per-Lifebook sections, with a global "across all your domains" header that summarizes cross-cutting items, then sections per domain ordered by importance.
- Briefing generator pulls signals and decision history per wing rather than globally
briefing-prose prompt gets a lifebook input variable so prose adapts per domain ("In Health this week, you had 2 appointments and skipped 4 walks…")
- Briefing schema grows a
sections: [{ lifebookId, prose, evidence }] field; the global prose stays as the lead-in
- Falls back to single-section global briefing when no Lifebooks exist (new user)
Acceptance criteria
Dependencies
Parent epic: #193
Context
The briefing generator runs daily and produces a single global briefing per user. With Emergent Lifebooks (#193 Child 1 shipped via #242), each user has 3-N detected life domains with their own wings, signals, and capability sets. A single global briefing doesn't surface the per-domain texture.
Scope
Partition the daily briefing into per-Lifebook sections, with a global "across all your domains" header that summarizes cross-cutting items, then sections per domain ordered by importance.
briefing-proseprompt gets alifebookinput variable so prose adapts per domain ("In Health this week, you had 2 appointments and skipped 4 walks…")sections: [{ lifebookId, prose, evidence }]field; the global prose stays as the lead-inAcceptance criteria
briefing-proseprompt acceptslifebookcontext; eval fixtures cover health-shaped, project-shaped, hobby-shaped sectionssections[]with per-Lifebook prose and evidenceDependencies