Generate a comprehensive daily digest combining weekly plan (Epic focus and tasks), emails (last 2 days), Slack messages (today), meeting notes (previous day's action items, decisions, summaries), and upcoming calendar events (today and tomorrow). Saves to operations/ folder as markdown. Use this skill to start the day with a complete overview or to catch up after time away. Triggers: "daily digest", "morning briefing", "daily summary", "catch me up", "what do I need to know", "daily overview", "morning summary", "start my day", "briefing", "what's happening today".
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Generate a comprehensive daily digest combining weekly plan (Epic focus and tasks), emails (last 2 days), Slack messages (today), meeting notes (previous day's action items, decisions, summaries), and upcoming calendar events (today and tomorrow). Saves to operations/ folder as markdown. Use this skill to start the day with a complete overview or to catch up after time away. Triggers: "daily digest", "morning briefing", "daily summary", "catch me up", "what do I need to know", "daily overview", "morning summary", "start my day", "briefing", "what's happening today".
Weekly Plan โ current Epic focus and tasks from operations/pmo/weekly-plan.md
Emails (last 2 days) โ categorized by action type
Slack (today) โ key messages and action items from channels
Meetings (previous day) โ action items, decisions, and summaries
Calendar (today + tomorrow) โ upcoming events
Output saved to operations/YYYY-MM-DD-daily-digest.md.
Available MCP Tools
Email Tools
Gmail
Tool
Purpose
mcp__gmail__gmail_list_accounts
List configured Gmail accounts
mcp__gmail__gmail_search
Search emails with Gmail query syntax
Exchange
Tool
Purpose
mcp__exchange__exchange_list_accounts
List configured Exchange accounts
mcp__exchange__exchange_search
Search emails with KQL syntax
Slack Tools
Tool
Purpose
mcp__slack__conversations_search_messages
Search messages with date/channel/user filters
mcp__slack__channels_list
List available channels
mcp__slack__conversations_history
Get recent messages from a specific channel
Meeting Tools (Granola โ Local Cache)
Note: The proofgeist Granola MCP reads from local cache (~/Library/Application Support/Granola/cache-v3.json). Only ~15 recent meetings have transcripts; older meetings have metadata only.
Tool
Purpose
mcp__granola__search_meetings
Search meetings by keyword, participant, or content
mcp__granola__get_meeting_details
Get meeting metadata with local timezone
mcp__granola__get_meeting_documents
Get meeting notes, summaries, structured content
mcp__granola__get_meeting_transcript
Get full transcript with speaker IDs (recent only)
Calendar Tools
Tool
Purpose
mcp__calendar__calendar_today
Get today's calendar events
mcp__calendar__calendar_tomorrow
Get tomorrow's calendar events
mcp__calendar__calendar_list
List all synced calendars
Weekly Plan (Local File)
File
Purpose
operations/pmo/weekly-plan.md
Current week's Epic focus and selected tasks
Workflow
1. Gather Data (Run in Parallel)
Execute these data gathering operations concurrently:
Weekly Plan (Local)
Read operations/pmo/weekly-plan.md
Extract from "Current Week" section:
- Week dates (e.g., "2026-02-03 to 2026-02-09")
- Epic Focus table (priority, key, title, project, status)
- Tasks This Week checklist
- Commitments list
Emails (Last 2 Days)
# List all accounts first
mcp__gmail__gmail_list_accounts()
mcp__exchange__exchange_list_accounts()
# Then search each account (parallel)
# Gmail: use newer_than:2d or after:YYYY/MM/DD
mcp__gmail__gmail_search(account="<name>", query="newer_than:2d", max_results=50, include_body=true)
# Exchange: use date range
mcp__exchange__exchange_search(account="<name>", query="received>=YYYY-MM-DD", max_results=50, include_body=true)
Slack (Today)
# Search for today's messages across all channels
mcp__slack__conversations_search_messages(filter_date_on="Today", limit=50)
# Or filter by specific channel
mcp__slack__conversations_search_messages(filter_date_on="Today", filter_in_channel="#general", limit=50)
# Filter out automated/bot messages when processing results
# (e.g., ClickUp, Jira, GitHub integrations)
Note: Filter results to exclude high-volume bot notifications (ClickUp, GitHub, etc.) when summarizing. Focus on human messages.
Meetings (Previous Day)
# Search for yesterday's meetings by date
mcp__granola__search_meetings(query="YYYY-MM-DD", limit=20)
# Or search by keyword/participant
mcp__granola__search_meetings(query="standup", limit=10)
mcp__granola__search_meetings(query="Circuit", limit=10)
# Then get details and documents for each meeting
mcp__granola__get_meeting_details(meeting_id="<uuid>")
mcp__granola__get_meeting_documents(meeting_id="<uuid>")
# For recent meetings with transcripts available
mcp__granola__get_meeting_transcript(meeting_id="<uuid>")
Limitation: The local cache MCP doesn't support date-range filtering directly. Search by date string or filter results client-side.
Group messages by channel and highlight threads that need your response.
Meeting Extraction
For each meeting, extract:
Summary โ 2-3 sentence overview
Key Decisions โ What was decided
Action Items โ Tasks with owners if available
Follow-ups โ Next steps or scheduled follow-ups
Calendar Preparation
For each event, note:
Time โ Start time and duration
Title โ Event name
Location/Link โ Physical location or meeting URL
Attendees โ Key participants (if included)
Prep needed โ Flag if meeting needs preparation
3. Generate Digest Document
Filename:YYYY-MM-DD-daily-digest.md (use current date)
Location:operations/
Markdown Structure:
# Daily Digest: [Day of Week], [Month Day, Year]**Generated:** YYYY-MM-DD HH:MM
**Week:** W06 (Feb 3-9, 2026)
**Coverage:** Weekly plan, emails (2 days), Slack (today), meetings (yesterday), calendar (today + tomorrow)
---
## This Week's Focus### Epic Priorities
| # | Epic | Project | Status |
|---|------|---------|--------|
| 1 | [CIR-13](https://2linessoftware.atlassian.net/browse/CIR-13): AI & Chat Features | Circuit | In Progress |
| 2 | [PAC-8](https://2linessoftware.atlassian.net/browse/PAC-8): Data Warehouse | Pacwest | In Progress |
### Tasks This Week- [ ] CIR-50: Implement chat UI
- [x] CIR-51: Add AI response handling _(completed)_- [ ] PAC-20: Schema design
- [ ] PAC-21: ETL pipeline
### Commitments- [ ] Complete chat UI implementation (CIR-50)
- [x] Finish schema design for data warehouse
- [ ] Start AI response handling
> _From `operations/pmo/weekly-plan.md`. Run `/weekly-plan review` to update._
---
## Today's Schedule### [Today's Date]
| Time | Event | Location | Notes |
|------|-------|----------|-------|
| 9:00 AM | Team Standup | Zoom | Weekly sync |
| 2:00 PM | Client Call | Teams | Prep: review proposal |
### [Tomorrow's Date]
| Time | Event | Location | Notes |
|------|-------|----------|-------|
| 10:00 AM | Planning Session | Conference Room | Bring laptop |
---
## Slack Highlights (Today)### Action Items
| Channel | From | Message | Time |
|---------|------|---------|------|
| #zane-product | @alexey | Review ZANE-127 contract/field names | 1:44 PM |
| #daily | @bryce | URGENT: Dan prioritization re: modules | 4:18 PM |
### Key Discussions**#zane-product**- MVP philosophy discussion (Bryce): build fast, reworks expected at this stage
- Transactions module backend changes ready for review
**#yodlee (DM)**- Staging credentials working, production credentials issue under investigation
### Awaiting Your Response
| Channel | Thread | From | Question |
|---------|--------|------|----------|
| #zane-product | ZANE-127 | @alexey | Need contract confirmation for frontend |
---
## Yesterday's Meetings### [Meeting Title 1]**Date:** YYYY-MM-DD | **Attendees:** Name1, Name2
**Summary:**
[2-3 sentence overview]
**Decisions:**- [Decision 1]
- [Decision 2]
**Action Items:**- [ ] [Action item with owner]
- [ ] [Action item with owner]
### [Meeting Title 2]
...
---
## Email Highlights (Last 2 Days)### Action Required
| From | Subject | Date | Action |
|------|---------|------|--------|
| sender@example.com | Subject line | YYYY-MM-DD | Brief action description |
### Response Needed
| From | Subject | Date | Question/Request |
|------|---------|------|------------------|
| sender@example.com | Subject line | YYYY-MM-DD | What they need |
### FYI / Updates
| From | Subject | Date | Summary |
|------|---------|------|---------|
| sender@example.com | Subject line | YYYY-MM-DD | One-line summary |
---
## Priority Actions for Today
Synthesize from weekly plan, meetings, and emails:
1.**[Task from weekly plan that aligns with today's calendar]** โ Source: weekly-plan + calendar
2.**[Urgent email or meeting follow-up]** โ Source: email/meeting
3.**[Next task from weekly commitments]** โ Source: weekly-plan
---
## Statistics-**Weekly Epics in focus:** N
-**Weekly tasks remaining:** N of M
-**Meetings yesterday:** N
-**Action items from meetings:** N
-**Emails received (2 days):** N
-**Requiring action:** N
-**Slack messages (today):** N (excluding bots)
-**Slack threads awaiting response:** N
-**Calendar events today:** N
-**Calendar events tomorrow:** N
4. Save and Confirm
Write to operations/YYYY-MM-DD-daily-digest.md and confirm the path to the user.
Date Calculations
For a digest run on February 7, 2026:
Today: 2026-02-07
Tomorrow: 2026-02-08
Yesterday (meetings): 2026-02-06
Email range: 2026-02-05 to 2026-02-07
Gmail Date Queries
newer_than:2d
# OR
after:2026/02/05 before:2026/02/08
Exchange Date Queries
received:2026-02-05..2026-02-07
# OR
received>=2026-02-05
Granola Meeting Search
# Search by date (returns meetings containing that date in title/content)
mcp__granola__search_meetings(query="2026-02-06", limit=20)
# Search by keyword
mcp__granola__search_meetings(query="standup", limit=10)
# Filter results by date in your code after retrieval
Note: The proofgeist MCP doesn't support native date-range filtering. Search broadly and filter results by checking meeting dates in the response.
Tips
Weekly plan first: The weekly focus section anchors the day โ what Epics matter this week?
Cross-reference: Link emails and meetings to weekly Epics when relevant (e.g., "relates to CIR-13")
Parallel fetching: Fetch emails, meetings, and calendar simultaneously for speed
Email volume: If >100 emails, focus on non-newsletter, non-promotional content
Meeting priority: Prioritize meetings with action items in the summary
Calendar prep: Flag events happening in the next 2 hours as needing immediate attention
No weekly plan? If operations/pmo/weekly-plan.md is empty, suggest running /weekly-plan
Error Handling
Weekly plan missing/empty โ Show "No weekly plan set. Run /weekly-plan to prioritize your Epics."
MCP not connected โ Skip that section, note in output
No meetings found โ State "No meetings recorded for [date]"
No transcript available โ Note "Transcript not in local cache (older meeting)"
No emails found โ State "No new emails in the past 2 days"
Slack MCP not connected โ Skip section, note in output
No Slack messages โ State "No Slack messages today"
Calendar empty โ State "No scheduled events"
Granola Local Cache Limitations
The proofgeist Granola MCP reads from local cache only:
All meeting metadata is available (~300+ meetings)
Only ~15 recent meetings have transcripts cached
Older transcripts are stored in AWS and not accessible via this MCP
For older meetings, use get_meeting_documents instead of get_meeting_transcript
Optional Enhancements
If user requests, also include:
Weather โ Current conditions and forecast
Task list โ Open tasks from project management tools