Inbox triage
Triage unread Slack and Gmail into respond/review/FYI/defer. Extracts action items into Crux, archives processed emails, produces summary with draft responses.From its SKILL.md
npx -y skills add nyechiel/ai-augmented-workflow --skill inbox-triageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Inbox Triage
Scan Slack and/or Gmail for unread messages, categorize them, and produce an actionable triage summary.
Workflow
1. Determine Scope
Use get_current_time to get today's date. Based on the argument:
slack- Slack onlygmail- Gmail onlyallor no argument - both (default)
2. Slack Triage
A. Gather Unread Messages
- Use
conversations_unreadswithinclude_messages: trueto get all unread messages. - Use
activity_unreadsto get @mentions and thread replies. - For any unread message in a thread, use
conversations_repliesto read the full thread. Decisions live in replies - never categorize from top-level messages alone.
B. Categorize Each Item
| Category | Criteria |
|---|---|
| Respond | Direct question, request for input, blocking someone |
| Review | Shared document, PR, proposal needing your eyes |
| FYI | Announcement, status update, no action needed |
| Defer | Interesting but needs research before responding |
C. Prioritize Respond Items
Rank by: manager/direct stakeholders > people blocked on you > time-sensitive > others.
D. Extract Action Items
Scan Respond and Review items for work that needs tracking beyond a quick reply. For each:
- Dedup against existing Crux tasks via
search_tasks - Create via
add_taskwithassignee: "{YOUR_NAME}",labels: ["action-item"], appropriate priority and estimate
3. Gmail Triage
Use user_google_email: "{YOUR_EMAIL}" for all Gmail calls.
A. Gather Unread Emails
- Search with
is:unread -category:promotions -category:social -category:updates. Paginate fully - Gmail returns max 10 per page. - Fetch message bodies via
get_gmail_messages_content_batch(max 25 per batch). - Skip automated notifications and bulk mail unless they mention you by name.
B. Detect Self-Sent Emails
Search for self-sent emails (from:{YOUR_EMAIL} to:{YOUR_EMAIL} is:unread). These are capture requests, not regular inbox items. For each:
- Create a Crux task (label
readingfor URLs,self-capturefor notes) - Archive the email after task creation
C. Categorize and Prioritize
Same categories as Slack. Additional signals:
- CC vs TO: If on CC, lean toward FYI unless explicitly asked for input
- Reply-all threads with >5 participants and no name mention: lean FYI
D. Extract Action Items
Same logic as Slack - scan for work that needs Crux tracking.
4. Cross-Reference
- Identify duplicates across Slack and Gmail - consolidate into one item
- Connect items to today's calendar events
5. Generate Triage Summary
Present in terminal and save to triages/inbox-triage-YYYY-MM-DD.md:
## Inbox Triage - [date] [time]
**Sources:** Slack [checked/unavailable] | Gmail [checked/unavailable]
### Respond ([count])
1. **[Source]** from **[Person]** ([time ago]) ([link])
> [Summary of what they need]
**Suggested response:** [Draft reply]
### Review ([count])
- **[Source]** from **[Person]** ([link]): [Summary]
### FYI ([count])
- **[Source]** from [Person] ([link]) - [1-line summary]
### Defer ([count])
- **[Source]** from **[Person]**: [Summary + why deferred]
### Action Items Created ([count])
- Crux #[ID]: **[Title]** ([priority])
### Self-Captures ([count], if any)
- **[Subject]** - Created Crux #ID - archived
6. Post-Triage Housekeeping
- Archive processed emails: FYI and Review emails where action is offline. Keep emails awaiting a reply in inbox.
- Mark Slack as read: FYI items and Review items where action is offline. Keep messages awaiting your reply unread.
Graceful Degradation
| Scenario | Behavior |
|---|---|
| Slack MCP unavailable | Skip Slack, run Gmail only (or vice versa) |
| Both unavailable | Cannot proceed |
| Too many unreads (>100) | Scan last 24 hours only, note skipped messages |
| Crux unavailable | List action items in summary with "track manually" note |
Key Principles
- Draft responses, don't send. MCP integrations are read-only.
- Thread-aware. A message that looks FYI in isolation might be Respond in a thread where you committed to something.
- Time-bounded. Default to last 24 hours.
- No false urgency. A good triage has more FYI items than Respond items.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.