Handle email tasks (checking inbox, drafting replies, managing threads, adding events to calendar). Use when working with emails to prevent common mistakes like broken threading or missing recipients.
Handles email workflows by drafting replies with proper threading, managing inbox triage, and proactively adding calendar events from emails. Use when processing emails to avoid common mistakes like broken threads or missing recipients.
/plugin marketplace add harperreed/office-admin-claude/plugin install office-admin@office.harper.devThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Use this skill when handling:
Before drafting emails, load the user's style from ~/.claude/office-admin-config.json:
{
"email": {
"tone": "ultra-terse" | "conversational" | "professional" | "warm",
"signature": "none" | "minimal" | "full",
"formality": "casual" | "standard" | "formal",
"responseLength": "minimal" | "balanced" | "detailed",
"patterns": ["common phrases they use"],
"customGuidelines": "Additional freeform style notes"
}
}
If config doesn't exist, prompt user to run /setup-office-admin first.
When drafting a reply, ALWAYS search for the original email first:
Search for: [subject] from [sender name]
Get: Full email content, thread ID, message ID, recipient email
Why: You need context AND threading information. Skipping this = standalone draft instead of threaded reply.
Extract from search results:
thread_id - Links all messages in the conversationmessage_id - The specific message you're replying to (usually most recent)recipient_email - The To: address (CRITICAL - tool doesn't auto-extract!)Critical: All three are required for proper threading. Missing any = broken draft.
Reference their config for:
Tone Guidelines:
Signature Guidelines:
Response Length:
User Patterns:
Use their common phrases from config patterns array when appropriate.
When creating the draft, specify:
CRITICAL: Always explicitly provide the To: email address. The MCP tool does NOT automatically extract the recipient from the thread - if you omit it, it will create a broken draft with invalid addresses.
Example tool call structure:
To: sender@example.com
Thread ID: 19a5fc252ad4dd3a
In-Reply-To message ID: 19a711957d96874d
Subject: Re: Project Discussion
Body: [message in user's style]
[Signature if configured]
After creating draft, confirm:
If threading failed:
User will refine wording:
IMPORTANT: When emails contain event information, PROACTIVELY add them to the calendar and check for conflicts. Don't wait for user to ask.
Look for:
BEFORE creating the event:
Why: User needs to know if there's a conflict before committing.
Tell the user:
If user confirms or if there's no conflict, create the event with:
Example:
Title: "Lunch with Mike Evans at Soho House"
Date: December 3, 2025
Time: 12:00 PM to 1:30 PM ([User's Timezone from config])
Location: Soho House
Description: "Lunch invitation from Mike Evans to discuss Q1 planning"
Attendees: mike@example.com
Let user know the event was added and provide:
For events pending confirmation:
When scheduling with people in other timezones:
When checking inbox:
Get recent unread emails with:
Group mentally by type:
NEVER categorize as "DELETE" - Users should archive instead of deleting.
For spam/unwanted emails:
Present in order of priority:
For large triage operations (10+ emails):
When user asks to triage many emails or handle multiple replies:
Use subagent for triage:
Use subagent for bulk drafting:
Example prompt structure for subagent:
Triage all unread emails in inbox. Categorize as:
- ACTION NEEDED (with specific next steps)
- CALENDAR (extract event details, check conflicts)
- ARCHIVE (no action needed)
For ACTION NEEDED, draft replies using this style:
[Include user's email config]
Return comprehensive report.
Problem: Draft appears as new email, not in conversation thread Solution: Always get thread ID and message ID before creating draft
Problem: Email doesn't sound like the user Solution: Reference their office-admin config for tone, formality, patterns
Problem: Adding "Best," when user configured "none"
Solution: Check config email.signature setting
Problem: User can't review before it goes out Solution: ALWAYS save as draft, let user send
Problem: User has to manually add events later Solution: Proactively offer to add events when you see them in emails
To: FieldProblem: Draft created with invalid @example.com address that bounces
Solution: ALWAYS explicitly provide recipient email address from thread search
Problem: Event added in wrong timezone Solution: Use timezone from user's config (default: their local timezone)
Before completing an email task, verify:
When processing emails with new contacts:
See office:crm-management skill for details.
You've successfully handled email tasks when:
Email is personal communication using the user's voice. The goal is to save time while maintaining authentic, effective communication that sounds like THEM.
When in doubt: Check their config, follow their patterns, and always draft first.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.