
inbox-summary
by Eddale
SKILL.md
name: inbox-summary description: Smart email triage from Gmail and iCloud. Highlights what needs attention based on priority senders and mission context. Trigger phrases include "email" or "mail" - use when "check my email", "triage my email", "what emails need attention", "email summary", "mail inbox". allowed-tools: Bash, Read, Write, Edit
Inbox Triage
What This Does
Fetches the last 24 hours of email from Gmail and iCloud, then intelligently triages into:
- Needs Attention - Priority senders, mission-relevant, questions needing replies
- Worth Knowing - Receipts, notifications, first-time senders (flagged as unusual)
- Filtered - Newsletters, promos, automated (count only)
The skill learns your priority senders over time as you mark them.
Instructions
Step 1: Fetch and Triage Emails
Run the triage script:
python3 skills/inbox-summary/scripts/fetch_inbox_summary.py
Filter by sender domain:
python3 skills/inbox-summary/scripts/fetch_inbox_summary.py --sender blackbelt.com
The --sender flag filters results to only show emails from that domain (e.g., --sender stripe.com for payment notifications). Still applies the 24-hour window.
This returns JSON with:
triage.attention- Emails needing attention with reasonstriage.knowing- Worth knowing, groupedtriage.filtered- Noise (stats only)priority_domains- Currently marked priority senders
Step 2: Present the Triage Summary
Format the output like this:
## Inbox Triage (Last 24 Hours)
**Gmail:** [X] emails | **iCloud:** [Y] emails
### Needs Attention
- **[sender]** - [subject]
[reason: Priority sender / Mission-context: BlackBelt / Looks like it needs a reply]
- **[sender]** - [subject]
[reason]
### Worth Knowing
- **[domain]** ([count]) - [brief description: Receipts / Calendar updates]
- **[sender]** - [subject]
*Unusual: First time seeing this sender*
### Filtered ([count] emails)
- Newsletters: [X]
- Promotions: [Y]
- Automated: [Z]
---
*[X] priority senders configured. Say "mark [domain] as priority" to add more.*
Step 3: Handle Priority Domain Requests
When the user says "mark [domain] as priority":
- Read the config file:
cat skills/inbox-summary/config/priority-domains.json
-
Add the domain to the
domainsarray andaddedobject with today's date -
Write back using Edit tool
-
Confirm: "Added [domain] to priority senders. Future emails will appear in Needs Attention."
Step 4: Offer Next Steps
After presenting the summary:
"Want to mark any senders as priority? Or dive into a specific email?"
Classification Logic
| Signal | Classification |
|---|---|
| Domain in priority-domains.json | Needs Attention |
| Mentions BlackBelt, AI Powerhouse, Little Blue Report | Needs Attention + mission flag |
| Subject has ?, "can you", "please review", "urgent" | Needs Attention |
| First-time sender | Worth Knowing + unusual flag |
| Receipt, calendar, shipping | Worth Knowing (grouped) |
| Newsletter, promo, marketing patterns | Filtered |
Mission Context Keywords
The skill watches for these (from Ed's mission-context):
- BlackBelt, Taki Moore
- AI Amplified, AI Powerhouse, Coaching Powerhouse
- Little Blue Report, Substack
- 30 Day Challenge
When detected, emails are flagged with the matching context.
Guidelines
- Read-only - Never send, delete, or modify emails
- Privacy first - Show subjects and snippets, not full content
- Learn over time - Priority domains persist between sessions
- Flag the unusual - First-time senders get highlighted
- Summarize noise - Don't list every newsletter, just count them
Error Handling
If the script fails:
- Check credential issues (token expired, wrong password)
- For Gmail OAuth: Browser will open to re-authenticate
- For iCloud: Verify ICLOUD_APP_PASSWORD is set in environment
File Locations
| File | Purpose |
|---|---|
scripts/fetch_inbox_summary.py | Main fetch + triage script |
scripts/classify_emails.py | Classification logic |
config/priority-domains.json | Learned priority senders |
tests/test_classification.py | Automated tests |
Examples
User: "check my email"
Response:
## Inbox Triage (Last 24 Hours)
**Gmail:** 18 emails | **iCloud:** 4 emails
### Needs Attention
- **taki@blackbelt.com** - Quick question about the workshop
Mission-context: BlackBelt
- **prospect@business.com** - Can you send me the pricing?
Looks like it needs a reply
### Worth Knowing
- **stripe.com** (3) - Payment receipts
- **google.com** (2) - Calendar notifications
- **unknown@newstartup.io** - Partnership inquiry
*Unusual: First time seeing this sender*
### Filtered (13 emails)
- Newsletters: 8
- Promotions: 3
- Automated: 2
---
*2 priority senders configured. Say "mark [domain] as priority" to add more.*
User: "mark newstartup.io as priority"
Response:
Added newstartup.io to priority senders. Future emails from this domain will appear in Needs Attention.
Current priority senders: blackbelt.com, newstartup.io
User: "show me emails from blackbelt.com"
Response:
## Emails from blackbelt.com (Last 24 Hours)
**Gmail:** 3 emails | **iCloud:** 0 emails
### All Emails
- **taki@blackbelt.com** - Quick question about the workshop
Mission-context: BlackBelt
- **support@blackbelt.com** - Your invoice for January
- **team@blackbelt.com** - Weekly team update
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon