skills/inbox/SKILL.md
Process your email inbox to reach inbox zero. Triage, delete junk and system notifications, archive unique content, log new work, and surface action items. Use when the user says "inbox", "email", "triage", or "inbox zero".
npx skillsauth add EqualsGroup/claude-executive-assistant inboxInstall 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.
Context (parallel reads from $EA_ROOT/):
memory/people/ — list filenames only (resolve people lazily per email)memory/projects.md — active initiativesmemory/my-work.md — current work itemsoutputs/assessments/ — scan directory for existing assessmentsInbox (paginated):
<!-- CUSTOMIZE: Choose your email integration --> <!-- Option A: Microsoft 365 MCP -->Use your ~~email connector to fetch inbox emails. Paginate until all emails are retrieved. For ambiguous emails, read the full body for more context.
Typical pagination pattern:
limit: 50, offset: 0offset: 50, then offset: 100, etc. until fewer than the limit come backDo NOT load all person files upfront. Resolve senders on demand:
memory/people/[first]-[last].mdmemory/people/ for the sender's email or nameException — Meeting summary/recap emails: These are NOT system noise. They contain AI-generated meeting recaps with action items. You MUST digest the content BEFORE archiving or deleting. Read the full email body using your email MCP connector, then update relevant memory files: my-work.md for action items and commitments, projects.md for decisions and status changes, the relevant person's file in memory/people/ for observations, coaching points, and relationship context. Only after digestion is complete should you archive the email. Never skip digestion — these summaries are often the only structured record of what was discussed.
Phishing red flags — flag to user, don't auto-delete:
memory/people/)memory/people/)## DELETE (X emails)
| From | Subject | Why |
## ARCHIVE (X emails)
| From | Subject | Why |
## ACTION NEEDED (X emails)
| From | Subject | Context | Suggested action |
## DECIDE (need your input)
| From | Subject | Question |
For ACTION items, cross-reference memory files to add context:
memory/people/, note their role and recent contextWait for user to approve the plan, then execute:
$EA_ROOT/memory/my-work.md:
$EA_ROOT/memory/people/ with contextUse the following escalation strategy. Try each level in order; fall back to the next if the current approach fails.
If your email MCP connector supports delete/archive/move operations, use those directly. This is the fastest and most reliable path.
When MCP tools don't support write operations, fall back to browser automation:
tabs_context_mcp (with createIfEmpty: true) to get browser contextread_page) to get fresh refs. Never reuse stale refs.If this fails (e.g. virtualized rendering returns 0 items in DOM, screenshots timeout, inbox list doesn't render), escalate to Level 3.
When the inbox list interface is unusable (e.g. virtualized rendering returns 0 DOM children), navigate to each email individually using deep links. Most webmail clients support opening a single message by URL, which renders a full toolbar independently of the list view.
How it works:
aria-label selectors or visible button text to locate the correct control.tabs_context_mcp(createIfEmpty: true) before navigating to the next email — if the tab is gone, a new one is created automatically.Tips:
memory/people/ files (domain ownership, team structure)Before archiving any email that contains substantive content (meeting summaries, decision threads, action item lists), you MUST read and digest the content first:
This is especially critical for meeting recap/summary emails from Zoom, Teams, etc. — they often contain the only structured record of what was discussed and agreed. Skipping digestion means losing information permanently.
After processing, report:
$EA_ROOT/outputs/assessments/[name]/self-assessment-YYYY.md exists. If not, flag as action item: "Fetch and save [Name]'s self-assessment, then run comparison with manager assessment." If both assessments now exist, trigger the Assessment Comparison Workflow (see assess skill). Delete the email after processing — the data is saved locally and in the HR system.tools
Compare user's data files against the current plugin scaffold to find and fix structural drift — missing sections, wrong placements, format mismatches, CLAUDE.md rule drift, stale placeholders, and directory gaps. Use when the user says "upgrade", "check for updates", "compare scaffold", or after a plugin update.
development
Sync memory files from external sources (~~documents, ~~messaging, ~~code) using parallel subagents. Use when the user says "sync", "refresh", "pull latest", or "update from sources".
testing
Interactive setup wizard — initializes the EA memory folder, fills in placeholders, and checks connector availability. Use when the user says "setup", "initialize", "get started", or when the SessionStart hook reports memory is not initialized.
testing
Review a document with full memory context, then post structured comments on specific sections. Use when the user says "review this", "look at this doc", "give me feedback on", or shares a document link for analysis.