skills/inbox-commander/SKILL.md
Email triage and organization system for Gmail. Use when user asks to "triage my inbox", "check my email", "process emails", "what needs my attention", "inbox zero", or any request to organize, classify, or act on emails. Provides GTD-style processing with autonomous actions for clear-cut items and surfaced decisions for ambiguous ones. Creates newsletter digests, drafts replies, and suggests bulk unsubscribes.
npx skillsauth add dazuck/operator-skills inbox-commanderInstall 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.
Email triage using GTD: Do it now, Decide, Defer, or Dump.
Check for gscli first (faster, includes calendar/drive context):
which gscli && gscli auth status
If available and authenticated, use gscli for READ operations:
gscli gmail list - List messagesgscli gmail read <id> - Read messagegscli calendar list - Get upcoming meetingsgscli drive search - Find related docsUse Gmail MCP for WRITE operations (gscli is read-only):
Fallback: If gscli unavailable, use Gmail MCP for everything.
Process ALL unarchived mail (Inbox), regardless of read state:
snooze/YYYY-MM-DD) → ignore until date passes1. Check tool availability (gscli vs MCP-only)
2. Load references:
- learned-rules.md (corrections take precedence)
- known-senders-private.md (if exists) or known-senders.md
3. Check snoozed items → unsnooze if date passed
4. Fetch emails (Inbox, regardless of read state)
5. Fetch context: calendar, Linear (graceful fail)
6. For each email:
a. Already labeled by Gmail filter? → Validate, compute urgency
b. Unlabeled? → Classify, apply label, track pattern
c. Invoice/Bill detected? → Validate, flag validity, surface for approval
7. Execute Tier 1 actions (no approval needed)
8. Aggregate Tier 2 → create newsletter digest
9. Process invoices → validate, present for approval, forward if approved
10. Present triage summary grouped by computed urgency
11. Await decisions → execute → log corrections
12. Suggest new Gmail filters if patterns emerged
Labels = stable categorization (stored on email) Urgency = dynamic computation (calculated fresh each run)
Urgency changes constantly (Monday's "this week" becomes Friday's "today"). Don't label urgency — compute it based on context.
Gmail filters handle deterministic patterns instantly at delivery. AI handles unlabeled items and suggests new filters when patterns emerge.
If email is already labeled (by Gmail filter):
If email is unlabeled:
Create labels if missing. Use Gmail MCP get_or_create_label.
Content Bundles (for Simplify Gmail visual grouping):
Newsletters - digested content, auto-archive afterReceipts - payment confirmations, auto-archiveBills - invoices awaiting payment (never auto-archive)Bills/Queued - invoices forwarded to Brex for paymentBills/Crypto-Pending - crypto invoices awaiting manual paymentBills/Paid - paid invoices (audit trail)Notifications - tool notifications, auto-archive (unless error)Transactional - shipping, confirmationsEntity Types (for rules + search):
Team - internal team domainsInvestors - known investor contactsLegal - law firms, legal mattersVendors - payroll, finance, contractorsAction State (workflow tracking):
ic/needs-response - user owes a replyic/waiting-on - ball in their courtic/scheduled - has follow-up dateic/processed - audit trail (apply before archiving)Snooze (time-based deferral):
snooze/YYYY-MM-DD - hide until this dateCompute urgency fresh each run based on context:
🔴 TODAY - Surface immediately
🟡 THIS WEEK - Surface prominently
🟢 SOMETIME - Surface in list
⚪ FYI - Mention briefly or skip
| Pattern | Action | |---------|--------| | Payment confirmations | Label: Receipts → Archive | | Calendar responses (Accepted/Declined/Tentative) | Archive | | Tool notifications | Label: Notifications → Archive | | Misrouted (wrong recipient, user not CC'd) | Archive + note |
Escalate to Tier 3 if contains: "failed", "error", "action required", "urgent", "security alert"
Match: *@substack.com, *@tldrnewsletter.com, *@beehiiv.com, known senders (see references/known-senders.md)
Action: Label: Newsletters → Summarize → Archive originals
Output: Create digest with top stories, key insights. Digest is the deliverable; originals archived for reference.
ic/needs-response labelKeep it scannable. Group by computed urgency:
🔴 TODAY (2)
├── **Alex** [Team] - Q1 budget review needs sign-off by EOD
│ Labels: Team, ic/needs-response
│ Context: You're meeting them at 2pm
│ → [Draft response] [Snooze 2h] [Mark waiting-on]
│
└── **Justworks** [Vendors] - Payroll processing failed
Labels: Vendors, ic/needs-response
Context: Payroll due today, $102K
→ [Draft response] [Call 888-534-1711]
🟡 THIS WEEK (3)
├── **Cooley** [Legal] - Stock option docs for review
│ Labels: Legal, ic/needs-response
│ → [Draft response] [Snooze to Monday]
...
🟢 SOMETIME (5)
├── **Random Vendor** - Quarterly review request
│ → [Draft polite decline] [Snooze 2 weeks]
...
✅ AUTO-PROCESSED
- Archived: 3 calendar responses, 2 receipts, 4 notifications
- Labels applied: 2 new Team, 1 new Vendors
📰 NEWSLETTER DIGEST
- 6 newsletters summarized → [View digest]
- Archived originals
🗑️ ELIMINATION CANDIDATES (4)
- [email protected] (3 emails, cold outreach)
- [email protected] (5 emails, drip)
→ [Unsubscribe all] [Select individually] [Skip]
When user requests snooze:
snooze/YYYY-MM-DDic/scheduled labelOn future triage runs, check snoozed items:
When user approves a draft:
Never send without explicit "send" or "yes send it" confirmation.
Handoff first. If a dedicated bill-pay skill/flow is available in this environment (e.g. an org's
/bill-pay), do NOT process bills inline — detect the bill, label itBills, and defer to that skill. It owns vendor registry, payment-rail classification, fraud validation, and reconciliation against spend history. The flow below is the standalone fallback for environments without one.
When an email is detected as an invoice or bill that requires manual payment action.
SKIP this flow for auto-pay items:
known-senders.md for autopay: true)PROCESS through this flow:
Trigger invoice flow when email contains:
AND sender is NOT marked as autopay: true in known-senders.md.
For each invoice, assess validity:
✅ LOOKS VALID - All conditions met:
known-senders.md🚩 SUSPICIOUS - One or more concerns:
⛔ LIKELY FRAUD - Reject signals present:
Invoices may require different payment methods. Validation applies to ALL payment types.
💳 STANDARD (Brex) - Default for most vendors:
🪙 CRYPTO/USDC - Separate payment flow:
payment: crypto)⚠️ Note: Crypto payment request from a vendor that normally takes USD is a RED FLAG. Crypto request from a known crypto-native vendor is expected.
💰 INVOICES REQUIRING APPROVAL (2)
📄 AWS - $2,847.23 [AUTO-PAY - No action needed]
Just FYI: Card on file will be charged
→ [Note only]
📄 Legal Firm LLP - $12,500.00 💳
Invoice #: INV-2025-0042
Due: Jan 25, 2025
Validation: ✅ LOOKS VALID
Confidence: HIGH
Reason: Known vendor, consistent with retainer amount
Payment: ACH/Wire
Prior invoices: 6 (avg: $12,500/mo)
→ [Approve & forward to Brex] [Review first] [Reject]
📄 Web3 Infra Co - $5,000.00 🪙
Invoice #: 2025-01-001
Due: Jan 20, 2025
Validation: ✅ LOOKS VALID
Confidence: HIGH
Reason: Known crypto-native vendor, USDC payment expected
Payment: USDC (expected for this vendor)
Prior invoices: 3 (avg: $5,000/mo)
→ [Pay via USDC] [Review first] [Reject]
📄 Acme Consulting - $15,000.00 🚩
Invoice #: 2025-001
Due: Jan 20, 2025
Validation: 🚩 SUSPICIOUS
Confidence: LOW
Reason: First invoice from this sender, no prior relationship found
Payment: Wire requested
Prior invoices: 0
→ [Review carefully] [Request verification] [Reject]
When user approves a valid invoice for standard payment:
[email protected]Bills/QueuedForward email format:
To: [email protected]
Subject: Fwd: [Original subject]
Body: [Original email content]
Never auto-forward - Always require explicit approval per invoice.
When user approves a crypto invoice:
Bills/Crypto-PendingBills/PaidTrack invoice history for validation:
references/invoice-history.md (create if missing)For Tier 4 items:
Track patterns in unlabeled emails that AI classifies. When a pattern emerges, suggest Gmail filter creation.
Suggest new Gmail filter when:
Output format for suggestions:
📋 SUGGESTED GMAIL FILTERS
Based on patterns I've seen:
1. from:*@cooley.com → Legal
(classified 5 emails this way, 100% match)
→ [Create filter] [Ignore] [Add to known senders]
2. from:*@srsacquiom.com → Vendors
(classified 3 emails, shareholder notices)
→ [Create filter] [Ignore]
3. subject:"Your order" from:*@amazon.com → Receipts
(classified 8 emails)
→ [Create filter] [Ignore]
Suggest unsubscribe/block rules when:
When user overrides AI classification:
references/learned-rules.mdExample correction log:
You archived "SRS Acquiom" despite HIGH urgency classification.
→ Noted: Shareholder notices from SRS Acquiom = FYI only
→ Suggest filter: from:*@srsacquiom.com subject:shareholder → auto-archive?
All optional. Graceful fail. Note status at end: "Calendar: connected | Linear: unavailable"
ic/processed label before archiving (audit trail)autopay: true in known-sendersreferences/invoice-history.mdreferences/classification-rules.md - Detailed patterns for each tierreferences/known-senders.md - VIPs, team, newsletter sources (template)references/known-senders-private.md - Personal overrides (if exists, takes precedence)references/learned-rules.md - Corrections from past runs (auto-generated)references/invoice-history.md - Invoice history for validation (auto-generated)development
Document work and learnings for publication. Assesses session work, recommends format (tweet, thread, week notes, full write-up), drafts in your voice, writes to draft folder.
development
Explain technical projects or codebases to a non-engineer. Use for "orient me" or "explain this repo".
tools
Adapt any skill to your specific workflow, or create new ones for repetitive tasks. Use when adapting skills to your tools/process.
development
Prepare a demo artifact for daily team show & tell. Aggregates work from the last 24 hours into a presentable format with evidence (command output, screenshots). Use when asked to "prep for show and tell", "what did I do today", or "prepare my demo".