morning-briefing
$
npx mdskill add sonichi/sutando/morning-briefingDelivers a prioritized morning briefing with key updates from email, calendar, Discord, and news
- Compiles unread emails, calendar events, Discord messages, and system status for daily review
- Uses Gmail API, Discord logs, calendar integration, and custom scripts for data collection
- Prioritizes urgent emails, flagged events, and actionable messages from the previous night
- Sends a voice briefing or Discord DM with summarized updates and insights
SKILL.md
.github/skills/morning-briefingView on GitHub ↗
---
name: morning-briefing
description: "Generate a daily morning briefing: email, calendar, Discord, and news — delivered via voice or Discord DM."
user-invocable: true
---
# Morning Briefing
Generate a prioritized daily briefing from all your channels.
**Usage**: `/morning-briefing`
ARGUMENTS: $ARGUMENTS
## What to gather
Collect from each source (skip any that aren't configured):
1. **Email** — Run `gws gmail +triage` to get unread inbox. Summarize top 5 by priority. Flag anything urgent.
2. **Calendar** — Run `gws calendar +agenda --today` (table output). If you need JSON for parsing, use `gws calendar +agenda --today --format json`. List meetings with times. For each: who's attending, what it's about. Flag any travel (flights, OOO).
3. **Discord** — Read recent messages from `logs/discord-bridge.log` (tail ~100 lines). Summarize anything actionable from overnight. Reference channel ID mapping at `$SUTANDO_MEMORY_DIR/reference_discord_channels.md`. Only surface messages NOT already replied to by the bridge.
4. **Pending tasks** — Check `pending-questions.md` for unanswered items. Check `tasks/` for queued tasks.
5. **System status** — Run `python3 src/health-check.py`. Report any issues.
6. **Daily insight** — Run `python3 src/daily-insight.py`. If it produces an insight, include it at the end of the briefing as "💡 Insight: ..."
7. **Friction check** — Run `python3 src/friction-detector.py`. If friction items found, include as "⚠️ Friction: [count] items need attention" with the top 3.
## How to deliver
Format as a concise briefing:
```
Good morning. Here's your briefing:
📧 Email: [count] unread. [urgent summary]
📅 Calendar: [count] meetings today. [next meeting info]
💬 Discord: [summary of overnight activity]
📋 Tasks: [pending items]
🖥️ System: [health status]
💡 Insight: [behavioral pattern from daily-insight.py, if available]
```
Deliver via:
- Write to `results/briefing-{date}.txt` so the voice agent can speak it
- Send via Discord DM if configured
## Scheduling
To run daily, add to the proactive loop or use `/loop`:
```
/loop 24h /morning-briefing
```
Or schedule at a specific time via cron.