skills/email-triage/SKILL.md
--- name: email-triage description: Reads your Gmail inbox for a configurable window (default: last 8 hours) and surfaces only what needs action — replies, decisions, or follow-up. Filters out receipts, notifications, newsletters, and anything that doesn't need you. --- # Email Triage ## The Problem Most of us spend real time triaging email that could be sorted automatically. Scrolling through a mixed inbox of newsletters, order confirmations, Jira notifications, and actual human asks is a ta
npx skillsauth add mohitagw15856/pm-claude-skills skills/email-triageInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Most of us spend real time triaging email that could be sorted automatically. Scrolling through a mixed inbox of newsletters, order confirmations, Jira notifications, and actual human asks is a tax on focus. The 40 emails since lunch contain maybe 4 that actually need you — this skill finds those 4.
| Requirement | Details | |-------------|---------| | Gmail connector | Must be active in Claude settings (Settings → Connectors → Gmail) | | Gmail account | The account you want triaged |
If the Gmail connector is not connected, Claude will prompt you to connect it before proceeding.
| Input | Required | Default | Notes | |-------|----------|---------|-------| | Time window | No | Last 8 hours | Accepts: "last 8 hours", "last 24h", "today", "since Monday", "last 3 days" | | Always-include senders | No | None | Specific names or email addresses that always surface, regardless of content | | Always-ignore senders | No | None | Domains or addresses to always suppress (e.g. noreply@*, [email protected]) | | Focus area | No | None | Optional context: "focus on anything from clients" or "flag anything about the launch" |
Claude suppresses the following categories. They are counted in the summary but not shown:
Claude surfaces only emails that meet one or more of these criteria:
## Inbox Triage — [Time window] | [Date], [Time]
**Total emails scanned:** X | **Actionable:** Y | **Filtered out:** Z
---
### 🔴 High Priority — Needs reply or decision today
**From:** [Name] <[email protected]>
**Subject:** [Subject line]
**Received:** [Time, e.g. 2:14 PM]
**What they need:** [One sentence — the actual ask, not a summary of the email]
**Reply starter:** "[A draft opener they can continue — 1 sentence max]"
---
**From:** [Name] <[email protected]>
**Subject:** [Subject line]
**Received:** [Time]
**What they need:** [One sentence]
**Reply starter:** "[Draft opener]"
---
### 🟡 Medium Priority — Reply within 24–48h
**From:** [Name] <[email protected]>
**Subject:** [Subject line]
**Received:** [Time]
**What they need:** [One sentence]
**Reply starter:** "[Draft opener]" *(or "No reply needed — action only: [what to do]")*
---
### 🟢 FYI — Worth knowing, no action required
- **[Name]** re: [Subject] — [One-line summary of why it might be relevant]
- **[Name]** re: [Subject] — [One-line summary]
---
### ⚪ Filtered Out — [Z emails]
Receipts: X | Newsletters: X | Notifications: X | Other automated: X
*(No action needed — not shown in detail)*
Confirm the Gmail connector is active. Parse the requested time window and translate it to an exact datetime range (e.g. "last 8 hours" = [current time minus 8 hours] to now). State the window at the top of the output.
Fetch emails from the inbox for the specified time window. Include: sender name, sender email, subject, received time, and email body (or first 500 words if long). Do not fetch emails older than the window.
If the user specified always-ignore senders or domains, suppress those immediately. If no ignore list was given, apply standard suppression (see What Gets Filtered Out). Track counts for the filtered summary.
For each non-suppressed email, classify into one of four categories:
Apply the always-include list after classification: any email from a flagged sender surfaces regardless of category, with its actual classification.
This is the highest-value part of the output. Write exactly one sentence that captures the actual ask — not a summary of the email, the ask.
Bad: "Sarah sent an email about the Q3 report." Good: "Sarah needs your sign-off on the Q3 report before she sends it to the board at 5 PM."
If there is no clear ask, it is probably FYI or filtered out.
For High and Medium priority emails, write a one-sentence reply opener. The opener should:
Example: "Thanks for flagging this — let me check with the team and get back to you by EOD."
If the email requires an action rather than a reply (e.g. "please approve this expense"), write: "No reply needed — action only: [describe the action]."
Use the output format exactly as specified. Do not add extra sections, editorialise, or explain your reasoning. The output should be scannable in under 60 seconds.
After the triage output, offer one of:
Keep this to one line. Do not elaborate.
This skill works from the Claude mobile app (Dispatch). On mobile, the output renders cleanly with the emoji priority markers serving as visual anchors for quick scanning. Recommended mobile trigger: "Check my emails" or "/email-triage".
/email-triagedevelopment
Build a framework for creating shareable, high-reach social media content. Use when asked to plan viral content, develop a shareable content strategy, create a hook writing system, or build a repeatable process for content that gets shared. Produces a platform-specific viral content framework with hook formulas, content structures, shareability triggers, and a content testing system.
development
Generate article or newsletter thumbnail candidates using the Gemini API from inside Claude Code. Claude reads article copy, proposes composition concepts, writes image generation prompts incorporating brand specs, calls Gemini to generate the images, evaluates the results via computer vision, and returns ranked candidates with rationale. Use when asked to create thumbnails, generate cover images, or produce visual candidates for an article or newsletter.
testing
Flips Claude's default from "find reasons you're right" to "find reasons you're wrong." A genuine thinking partner, not a mirror with grammar. Use before high-stakes decisions, plans, assumptions, or pitches you haven't stress-tested.
development
Scrapes a Substack Notes page and exports engagement data (likes, comments, restacks) to a formatted .xlsx file with conditional formatting and summary stats.