Skip to content

Morning Briefing

Cadence: Daily, start of day Duration: ~5 minutes Trigger: "Run the morning briefing" or session-start hook Deploys changes: No (read-only)

Purpose

A quick-read status report that tells you where things stand across every active domain so you can prioritize your day. Not a wall of text. Not a list of everything that ever happened. Just: what matters today.

What the briefing covers

1. Follow-up Queue Snapshot

Pull from wiki/_stats.json and the Notion "Needs Follow-up" filter: - Total items in "Needs Follow-up" (currently 93) - How many are High priority - The 5 oldest items (most overdue) - Any items that crossed a stale threshold (>14 days untouched)

2. Domain Status (one line each)

For each active domain, one sentence on current state:

  • Google Ads — Are campaigns running? Any spend anomalies yesterday? Daily negatives done?
  • SEO — Any new GSC coverage errors? Rank movement on tracked keywords?
  • Website — Any deploys pending? Draft content sitting unpublished?
  • Litify — Intake pipeline flowing? Any SMS sync errors?
  • Content — Was yesterday's daily content piece published? What topic is next?

3. Today's Routine Calendar

Which routines are scheduled for today based on the day of the week: - Monday: SEO Pulse - Tuesday: Ads Weekly Review - Wednesday: Litify Health Check - Thursday: Website Tech Audit - Friday: Follow-up Triage - Every day: Ads War Room, Daily Content

4. Blockers and Escalations

Anything that's stuck: - Failed GitHub Actions runs - Expired credentials - Items flagged as blocked in Notion

Data Sources

Source What it provides
wiki/_stats.json Entry counts by status, project, priority
wiki/timeline.md Recent entries, chronological
wiki/index.md Project breakdown
Notion API (if available) Live "Needs Follow-up" filter
GitHub Actions API Workflow run status

Expected Output Format

SAIL Morning Briefing — [date]

FOLLOW-UP QUEUE: 93 items (45 High, 38 Medium, 10 Low)
Oldest 5:
  1. [title] — [age] days — [project]
  2. ...

DOMAIN STATUS:
  Google Ads: 3 campaigns active, $[X] spent yesterday, [N] negatives added
  SEO: [N] new coverage issues, [keyword] moved [+/-N] positions
  Website: [N] drafts pending publish, last deploy [date]
  Litify: Intake pipeline clear, [N] new matters this week
  Content: Yesterday's piece "[title]" published, today's topic: [topic]

TODAY'S ROUTINES:
  [x] Morning Briefing (this)
  [ ] Google Ads War Room
  [ ] Daily Content Piece
  [ ] [Day-specific routine]

BLOCKERS: [none / list]

How to extend

If you want the briefing to include a new domain or data source, add it to section 2 above and specify where the data comes from. The briefing should never exceed one screen of text.