Founder reviews the morning brief
Persona
John Moelker, solo founder. Starts each morning with a single markdown digest that replaces the need to check inboxes, dashboards, and scorecards manually. Has 10–15 minutes for operational review. Job: triage what's broken, what needs approval, what agents handled overnight. Trusts summarization but demands evidence — every claim has a clickable drill link. Silent failures are the worst outcome.
Entry points
- Email digest — Vercel cron fires
POST /api/cron/morning-brief-composeat 6:55am. Inserts row intomorning_briefstable (one per date, idempotent). Email sent via Resend at 7:00am. Subject: "Morning Brief — [Day] [Date]." - Dashboard page —
https://churchwiseai.com/founder/[token]/morning-brief— today's digest with view history toggle.
Click-through flow
Steps
-
Receives and opens the morning brief — Email formatted as markdown. Header: one-line portfolio summary (e.g., "All systems operational · MRR $X · 3 action items"). Traffic-light indicators (green/yellow/red) for each property (CWA, PewSearch, ITW, SermonWise, Pro Website). Compose step aggregates from: latest readiness scorecards,
ops_errorstable (unresolved P0/P1 from past 24h),founder_action_items(open items ≤ P1),moderation_violations(high-severity past 7d),premium_churcheswithis_real_customerfilter, Stripe MCP for live MRR. -
Scans portfolio summary — Sections in order: What's Live (per-property status snapshot with scorecard link and last-run timestamp), Money (Stripe customers, MRR, failed webhooks; outreach counts), What Broke Overnight (regressions with before/after scorecard diff links). If a scorecard was not generated (build failed), section shows
⚠ unverified: [reason]— never omitted. -
Drills into a flagged issue — Drill links open source artifacts:
/founder/[token]/readiness/cwa/latestfor a scorecard, GitHub diff for a regression, Stripe event for a failed webhook. All drill links are generated fresh by the compose step (never hardcoded). Founder reviews, decides next action, returns to brief. -
Reviews action items flagged for the founder — Section "Actions For You (N items, ~X min)" listing P0/P1 items only: refund requests pending approval, provisioning failures needing manual area code selection, moderation escalations. Each item has a concrete action link ("Approve refund in Stripe," "Provide Telnyx area code"). Most take 1–3 minutes per item.
-
Closes the brief — Founder exits with a clear portfolio state. Actions taken are logged in the brief's JSON metadata. A follow-up "Actions Taken For You" section (updated by an evening agent) logs what cron agents handled overnight.
Acceptance spec
No external acceptance spec — internal operational routine. Governed by:
- Process spec:
knowledge/processes/morning-brief.md - Database:
morning_briefstable (date, markdown_body, json_meta, composed_at, email_sent_at, founder_completed_at); related:ops_errors,founder_action_items,moderation_violations,premium_churches - Code files:
churchwiseai-web/src/app/api/cron/morning-brief-compose/route.ts,churchwiseai-web/src/app/founder/[token]/morning-brief/page.tsx
Success criteria
- Brief arrives by 7:05am on business days, readable in under 2 minutes.
- Any P0 issue is at the top with evidence link.
- All links point to live data.
- Action items are concrete: "Approve refund for $50," not "Something may need reviewing."
- Regressions are flagged with before/after links, not buried.
- If an input fails (Stripe API down, scorecard not generated), brief says so rather than showing stale data.
Known failure modes
-
Stale scorecards. Brief shows
⚠ unverifiedwith link to latest available scorecard if current one was not generated. Silence is worse than incomplete signal. -
Metrics lag. Brief shows data freshness timestamp ("As of 7:02am, 5m ago"). Never show MRR or customer count without a timestamp.
-
Email delivery failure. If Resend bounces, founder misses the brief. Dashboard page is always the fallback. Monitor for delivery failures.
-
Accumulating action items. P2 alert fires if
founder_action_itemshas >10 open items older than 1 day. Founder's target: queue under 5 items at any given time.