Inbox triage
A template for building your own AI-powered knowledge worker workflow using Claude Code and MCP.
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.
What its author says it does
Copied from the file, not written here
Triage unread Slack and Gmail into respond/review/FYI/defer. Extracts action items into Crux, archives processed emails, produces summary with draft responses.
SKILL.md
5.2 KB, 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.