Triggered when user wants to check, triage, review, or process their email inbox. Matches: "check my email", "what's in my inbox", "triage email", "any urgent emails", "process inbox", "email summary", "unread messages", "what emails do I have", "morning email check", "catch up on email". Also triggered by daily-briefing skill when email review is part of morning routine. Do NOT use for reviewing non-email messaging (Slack DMs, Teams messages, WhatsApp, SMS), checking calendars or meetings, or drafting emails (use email-draft) or setting follow-up reminders (use email-followup) without triage context first.
From tandemnpx claudepluginhub binatrixai/tandem-marketplace --plugin tandemThis skill is limited to using the following tools:
evals/evals.jsonexamples/sample-triage.mdreferences/examples/sample-triage.mdreferences/template.mdtemplate.mdVerifies tests pass on completed feature branch, presents options to merge locally, create GitHub PR, keep as-is or discard; executes choice and cleans up worktree.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Categorize the user's inbox by priority and present a structured summary with actionable next steps.
See METHODOLOGY.md language mirror rule. Reply in the user's language.
This skill requires a connected email tool (Gmail, Outlook, etc.).
If no email connector is available:
AskUserQuestion: "I need access to your email to triage your inbox. Would you like to set up a connection?"
Options: ["Yes, connect my email (/connect)", "Skip for now"]
If the user selects connect, guide them to the /connect command.
Retrieve unread/recent emails from the connected inbox. Default: last 24 hours.
AskUserQuestion: "What time range should I check?"
Options: ["Last 24 hours", "Last 3 days", "This week", "Custom range"]
Sort every email into exactly one of four priority categories:
| Category | Criteria | Action Expectation |
|---|---|---|
| Urgent | Requires response today. Time-sensitive, from key contacts, contains deadlines within 48h, escalations, client requests | Respond today |
| Important | Requires response this week. Significant but not time-critical, project updates needing input, scheduling requests | Respond this week |
| Actionable | Requires action but not a reply. Invoices, approvals, documents to review, sign-ups, confirmations | Take action |
| FYI | Informational only. Newsletters, CC'd threads, automated notifications, receipts | Read or archive |
Categorization rules:
Use the format from template.md. For each email include:
Show category counts at the top for quick overview.
After presenting the triage summary:
AskUserQuestion: "What would you like to do next?"
Options: [
"Draft replies to Urgent emails",
"Show full email for [specific sender]",
"Mark all FYI as read",
"Set follow-up reminders",
"Skip — I'll handle it manually"
]
If user selects "Draft replies to Urgent emails":
email-draft skillIf user selects "Show full email":
AskUserQuestion: "What would you like to do with this email?" Options: ["Draft a reply", "Forward to someone", "Mark as read", "Set follow-up reminder", "Back to triage"]If user selects "Set follow-up reminders":
email-followup to add trackingAfter completing actions:
~/Tandem/email/MEMORY.md under Session LogAfter triage completion, suggest 1-2 of these based on context:
Memory is user-triggered only. Offer to remember:
AskUserQuestion: "Would you like me to remember any categorization preferences for next time?"
Options: ["Yes, let me specify", "No, we're done"]
Follow template.md for the structured output format. See examples/sample-triage.md for a complete example.
When outputting in Hebrew, structure the summary table with right-aligned text. Sender names in Hebrew should appear naturally without transliteration.
/connect to re-authenticateAfter completing the workflow, append an entry to ~/Tandem/stats.json:
{
"type": "email",
"action": "triaged",
"count": <number of emails processed in this triage session>,
"timeSavedMinutes": <count * 5>,
"description": "Triaged 12 emails - 4 urgent, 3 important, 2 actionable, 3 FYI",
"timestamp": "<current ISO 8601>"
}
If ~/Tandem/stats.json does not exist, create it as [<entry>]. If it exists, read it, parse the JSON array, append the new entry, and write it back.
After appending to stats.json, follow the /sync workflow from tandem-skills/core/sync/SKILL.md to rebuild ~/Tandem/dashboard.html with updated statistics. This keeps the dashboard current after every skill run. If /sync fails (e.g., dashboard.html does not exist yet), continue — the main skill workflow must complete successfully regardless of sync outcome.