Send and draft professional emails with seasonal HTML formatting, authentic writing style, contact lookup via Google Contacts, security-first approach, and Google Gmail API via Ruby CLI. This skill should be used for ALL email operations (mandatory per RULES.md).
Install
mkdir -p .claude/skills/email && curl -L -o skill.zip "https://mcp.directory/api/skills/download/329" && unzip -o skill.zip -d .claude/skills/email && rm skill.zipInstalls to .claude/skills/email
About this skill
Email Agent Skill
✅ PRE-FLIGHT VERIFICATION
CRITICAL: Before proceeding with ANY email operation, verify this skill loaded correctly:
- ✅ This SKILL.md file loaded successfully
- ✅ You can see version 2.5.0 at the bottom of this file
- ✅ You can see the preferred email addresses section (Mark, Julie, Rose, Ellerton/Michael)
- ✅ You can see the Core Workflow section with recipient resolution
If ANY of these are missing:
- 🛑 STOP immediately - do NOT proceed with email
- Report to user: "❌ Email skill did not load correctly"
- Show the error you encountered
- Ask user for guidance on how to proceed
- NEVER use alternative approaches (email search, manual Gmail API calls)
Purpose
Send and draft professional emails on behalf of Arlen Greer with:
- Automatic contact lookup via Google Contacts
- Seasonal HTML formatting based on current date
- Authentic professional writing style
- Security-first approach with credential redaction
- Gmail API via Ruby script primary, Himalaya CLI fallback
🔴 CRITICAL NAME RULE: User's name is "Arlen Greer" or "Arlen A. Greer"
- ✅ CORRECT: Arlen, Arlen Greer, Arlen A. Greer
- ❌ NEVER: Arlena (this is WRONG - system username confusion)
- The system username is "arlenagreer" but the actual name is "Arlen"
When to Use This Skill
🔴 CRITICAL: This skill is MANDATORY for ALL email operations per RULES.md
Use this skill when:
- User requests to send or draft an email
- Email-related keywords detected: "email", "send", "compose", "draft", "message", "write to"
- User mentions contacting someone by email
- NO EXCEPTIONS - Even "simple" emails require this skill
Why Mandatory:
- Provides Arlen's authentic writing style
- Ensures seasonal HTML formatting
- Handles contact lookup automatically
- Enforces security-first approach
- Maintains professional communication standards
Core Workflow
1. Recipient Resolution
Preferred Email Addresses (Skip Lookup):
These contacts have preferred email addresses that ALWAYS take precedence over Google Contacts lookup:
- Mark Whitney →
[email protected] - Julie Whitney →
[email protected] - Rose Fletcher →
[email protected] - Jayson Bernstein →
[email protected] - Susan Butch →
[email protected] - Kevin Blair →
[email protected] - Ryan Walsh →
[email protected]
Project-Specific Contacts:
- Ellerton Whitney / Michael Whitney (when in ellerton project) →
[email protected]- ⚠️ GREETING NAME: Address as "Michael" (not Ellerton)
- Applies to all email communications in the ellerton project context
Team Aliases:
-
ALT Team (when in american_laboratory_trading project) → Send to all four:
-
Dreamanager Team or Five Star Team → Send to all four:
[email protected][email protected][email protected][email protected](Dreamanager context)
Context-Sensitive Routing:
-
Ed Korkuch → Context-based email selection:
[email protected]- For Dreamanager project-related communications[email protected]- For all other topics
How to determine context:
- Dreamanager context indicators: project work, database, Rails app, deployments, features, bugs, investor/resident functionality
- Non-Dreamanager context: general consulting, other projects, non-project discussions
When in doubt: Default to
[email protected]for professional safety
Contact Lookup (for all other recipients):
~/.claude/skills/email/scripts/lookup_contact_email.rb --name "First Last"
⚠️ CRITICAL: Require BOTH first AND last name:
- ❌ WRONG:
--name "John"or--name "Smith" - ✅ RIGHT:
--name "John Smith"
Error Handling:
- If lookup fails (status = "error"): STOP immediately and prompt user for email
- If multiple matches (note field present): Inform user, proceed with first match
- Never proceed without valid email address
User Shorthands:
- "bcc me" → Add
[email protected]to BCC field - "send to [Name]" → Look up contact email
- "send to [email]" → Use email directly
🔴 CRITICAL: BCC Default Behavior:
- Multiple Recipients (2+): MANDATORY - ALWAYS include
[email protected]in BCC field automatically- This is NON-NEGOTIABLE - do NOT ask user permission
- Do NOT mention in conversation - just include it
- User wants copy of ALL group emails for record-keeping
- Single Recipient: BCC only if user explicitly requests "bcc me"
- Verification: Before sending ANY multi-recipient email, confirm BCC field includes [email protected]
2. Security Review (🔴 CRITICAL - MANDATORY)
🔴 CRITICAL: BEFORE composing ANY email, MUST scan ALL content for sensitive information:
NEVER Include These in Emails (Zero Tolerance):
- ❌ API Tokens - Including app-specific tokens, bearer tokens, service tokens
- ❌ API Keys - AWS keys, Google API keys, service API keys, authentication keys
- ❌ Access Tokens - OAuth tokens, JWT tokens, session tokens, refresh tokens
- ❌ Passwords - Current, temporary, default, or any password variations
- ❌ Auth Credentials - Username/password pairs, login credentials, auth strings
- ❌ Private Keys - SSH keys, PGP keys, certificates, signing keys
- ❌ Database Credentials - Connection strings, database passwords, DB URLs with credentials
- ❌ Credit Card Information - Full numbers (use last 4 digits only if absolutely necessary)
- ❌ Social Security Numbers - Or any government-issued ID numbers
- ❌ Secret Environment Variables - AWS credentials, secret keys, config secrets
🔴 CRITICAL API Token Examples (MUST REDACT):
❌ WRONG: "The API token is: j22pamuqie56upqinzeeNj"
❌ WRONG: "Use api_token=abc123xyz456 for authentication"
❌ WRONG: "Bearer token: eyJhbGciOiJIUzI1NiIsInR5cCI6..."
✅ CORRECT: "I've configured the API token (redacted for security)"
✅ CORRECT: "API token: ...XXXX (last 4 chars: Nj)"
✅ CORRECT: "The authentication token has been set up in the system"
✅ CORRECT: "Token configured (see secure documentation for access)"
When Sensitive Info Must Be Referenced:
- Reference it exists but NEVER include actual value
- Use "...XXXX" notation with last 4 characters only if verification needed
- Direct recipient to secure channel (secure docs, password manager, encrypted communication)
- Provide system location where they can find it securely
Scanning Procedure (MANDATORY):
- 🔍 Scan user's original request for any sensitive data
- 🔍 Scan email body you're about to compose for any secrets
- 🔍 Scan code snippets or technical examples for credentials
- 🔍 Scan URLs for embedded tokens (e.g.,
?token=...or?api_key=...) - 🔍 Scan configuration examples for default/example credentials
- 🔒 REDACT immediately if ANY sensitive data found
Remember: Email is NOT ENCRYPTED. When in doubt, redact it out. NEVER compromise security for convenience.
3. Date & Theme Selection
Determine Current Date:
- Check system clock from
<env>context - Never assume dates from knowledge cutoff
Apply Theme:
- Check for matching national holiday (takes priority)
- Otherwise use seasonal theme based on date
- See
references/seasonal_themes.mdfor detailed styling
Season Ranges:
- Spring: March 20 - June 20
- Summer: June 21 - September 22
- Fall: September 23 - December 20
- Winter: December 21 - March 19
4. Compose Content
Apply Arlen's Writing Style:
- Professional but approachable tone
- Direct and solution-oriented
- Lead with status/accomplishment
- Use bullets for multiple items
- Offer proactive support
See references/writing_style_guide.md for:
- Greeting patterns
- Email structure templates
- Communication scenarios
- Language patterns
- Closing conventions
Signature & Footer Requirements:
- Standard:
-Arlen - Formal:
-Arlen A. Greer(for senior executives, legal, contracts) - ❌ ABSOLUTELY NO AI ATTRIBUTION OR AUTOMATION NOTES
- ❌ NO FOOTERS beyond signature - emails must end with signature only
- ❌ FORBIDDEN PHRASES: "generated by", "automation", "Claude Code", "AI-generated", "Co-Authored-By"
- Emails MUST appear to come directly from Arlen with no indication of automation
5. Handle Attachments
Detect Attachment Requests:
- Keywords: "attach", "attachment", "include", "send with", "along with", "please see attached"
- File references: Specific paths, file names, document descriptions
- Examples: "attach the report", "include invoice.pdf", "send with the contract"
File Path Resolution:
- Absolute paths: Use directly (e.g.,
/Users/name/Documents/report.pdf) - Relative paths: Resolve to absolute using current working directory
- File names only: STOP and ask user for full absolute path
- User workspace: Check common locations (
~/Documents,~/Downloads, current directory)
File Validation (🔴 CRITICAL - MANDATORY):
- Check existence: Verify file exists at specified path using
File.exist?(path) - Verify readability: Ensure file can be accessed and read
- Size awareness: Gmail has 25MB total attachment size limit
- Warn if single file >10MB
- Calculate total size for multiple attachments
- Suggest alternatives (cloud storage links) for large files
Multiple Attachments:
- Support array of file paths:
["file1.pdf", "file2.docx", "image.png"] - Validate each file individually before proceeding
- All files must exist and be readable
- Total size must not exceed Gmail's 25MB limit
Attachment Array Format:
attachments: [
"/absolute/path/to/report.pdf",
"/absolute/path/to/invoice.xlsx",
"/absolute/path/to/presentation.pptx"
]
Supported File Types:
- Documents:
.pdf,.doc,.docx,.txt,.rtf - Spreadsheets:
.xls,.xlsx,.csv - Prese
Content truncated.
More by arlenagreer
View all skills by arlenagreer →You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversManage your emails effortlessly with Gmail, the email management software that organizes, sends, and retrieves messages
Connect your free email services or Mailchimp for seamless automation. Manage emails efficiently with IMAP and SMTP supp
Send transactional emails easily using Mailtrap Email API. Reliable email delivery, flexible features, and secure integr
Mailtrap Email API enables seamless sending of transactional emails. Alternative to SendGrid API or temp mail API. Try r
Mailgun MCP Server lets AI assistants send emails via the Mailgun API and view email delivery analytics for seamless AI
Securely access and manage your emails domains with IMAP Apple and SMTP. Enjoy reliable email delivery with IMAP/SMTP su
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.