skills/shared/draft-email/SKILL.md
Draft professional emails (MoM, status updates, decisions, stakeholder communication) and save as a draft in your email provider. Use this skill after a meeting, decision, spec update, or any event that needs email communication. Trigger phrases: "send MoM email", "draft meeting minutes email", "MoM email for [meeting]", "create MoM draft", "email the meeting notes", "draft MoM", "draft email", "send update email", "draft email for [topic]". Reads context from meetings, specs, tickets, and conversation. Looks up attendee emails from a local team directory, formats as HTML email, and pushes to the email provider as a draft (never sends).
npx skillsauth add qa-aman/claude-skills draft-emailInstall 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.
Based on Smart Brevity (Axios), Minto Pyramid Principle (McKinsey), Writing That Works (Ogilvy), HBR Guide to Better Business Writing (Garner), On Writing Well (Zinsser), and Made to Stick (Heath Brothers).
The reader is busy. They will scan, not read. Every line must earn its space. If a line doesn't help the reader understand or act, cut it.
Headers like "What's new" and "Why it matters" are tools, not mandatory labels. Use them when they help the scanner — drop them when they feel forced. The rule: every email leads with the answer and ends with impact. How you get there depends on the email type.
Use "What's new" + "Why it matters" headers ONLY when there is a genuine decision or announcement. For MoMs that summarize observations, discussions, or session findings (no single decision to announce), skip these headers and open with a direct context line.
# When there IS a key decision/announcement:
1. WHAT'S NEW (1 strong sentence - the key decision or outcome)
2. WHY IT MATTERS (1 sentence - impact on project/timeline)
3. GO DEEPER (numbered sections with SCQA for decisions)
4. WHAT'S NEXT (action items with named owners)
5. REFERENCE (attendees, links)
# When summarizing observations/discussions:
1. OPENING LINE (direct context: who met, what was discussed, key takeaway)
2. FINDINGS (numbered sections grouped by theme)
3. WHAT'S NEXT (action items with named owners)
4. REFERENCE (attendees, links)
NO "What's new" — there is no news, it's a report. The data IS the message.
1. OPENING LINE (direct: "Here is the team-wise breakdown of X as of DD-MM-YYYY.")
2. CONTEXT LINE (why the reader should care)
3. DATA TABLE (the primary content - sortable, with filter links)
4. KEY OBSERVATIONS (numbered, bold labels - highlight blockers, risks, outliers)
5. WHAT'S NEXT (action items with named owners)
6. CLOSING LINE (impact - what this means for the project)
7. REFERENCE (master filter, label, links)
NO headers at all — context already exists. Jump straight into the response.
1. DIRECT RESPONSE (answer the question or share the update)
2. DETAILS if needed (numbered points)
3. WHAT'S NEXT if actions are needed
Use "What's new" only if there is genuinely something new. Otherwise open with a direct line.
1. WHAT'S NEW or OPENING LINE
2. WHY IT MATTERS (1 sentence)
3. DETAILS (numbered sections)
4. WHAT'S NEXT (action items)
5. REFERENCE (links)
NO "What's new" — you're telling people what to do, not announcing news.
1. OPENING LINE (what this email covers + why it matters in 1-2 sentences)
2. ROLE-BASED SECTIONS (numbered, one per role/team)
3. SUMMARY (1-line per role as a quick reference)
When in doubt: "What's new" is ONLY for emails where there is a single piece of news to announce. For everything else - meeting summaries, observations, data reports, process notes, instructions - skip the header and open with a direct context line.
<ul>. Always <ol>. People need to say "point 3" in meetings, not count bullets.a. b. c. as plain text with <br/> for sub-points<b>Section Name</b> for every section header<a href="url">[PROJECT-XXXXX]</a><a href="url">Page Title</a><table border="1" cellpadding="6" cellspacing="0" style="border-collapse:collapse; font-size:14px;">. Use tables when data has 3+ rows and 3+ columns. Header row: background-color:#f2f2f2; totals row: bold + same background.<a target="_blank" class="ze_mention" href="mailto:email@[your-domain]">Full Name</a>). Look up email from your team directory.<p>Hi all,</p>
<p><b>What's new:</b> [One sentence - the key decision or outcome]</p>
<p><b>Why it matters:</b> [One sentence - impact on project/timeline]</p>
<p><b>1. [Section title]</b></p>
<p>[1-2 sentences of context using SCQA]</p>
<p><b>2. [Section title]</b></p>
<p>a. [Point with why]<br/>
b. [Point with why]</p>
<p><b>3. What's next</b></p>
<p>a. [Owner @mention] - [specific action]<br/>
b. [Owner @mention] - [specific action]</p>
<p>[One line positioning - what this means for the project]</p>
<p><b>Reference:</b><br/>
Meeting ([purpose]): [attendee names]<br/>
Wiki: <a href="url">Page Title</a><br/>
Ticket: <a href="url">[PROJECT-XXXXX]</a></p>
<p>Regards,<br/>[your name]</p>
<p>Hi all,</p>
<p>Here is the [topic] breakdown as of [DD-MM-YYYY].</p>
<p>[One sentence - why the reader should care]</p>
<p><b>1. [Data section title]</b></p>
<table>
[Table with data, status columns, filter links, @mention leads]
[Total row with bold + background]
</table>
<p>[Callout for items outside filters, if any]</p>
<p><b>2. Key observations</b></p>
<p>a. [Observation with bold label and specific numbers]<br/>
b. [Observation]</p>
<p><b>3. What's next</b></p>
<p>a. [Owner @mention] - [specific action]</p>
<p>[One line - what this means for the project]</p>
<p><b>Reference:</b><br/>
Master filter: <a href="url">#XXXXX</a></p>
<p>Regards,<br/>[your name]</p>
<p>[Direct response - answer the question or share the update]</p>
<p>a. [Detail point]<br/>
b. [Detail point]</p>
<p>[Action items if needed]</p>
<p>Regards,<br/>[your name]</p>
<p>Hi all,</p>
<p>[Opening line - "What's new:" if genuine news, or direct context line]</p>
<p><b>Why it matters:</b> [One sentence - impact]</p>
<p><b>1. [Section title]</b></p>
<p>[Details]</p>
<p><b>2. What's next</b></p>
<p>a. [Owner @mention] - [specific action]</p>
<p>[One line positioning]</p>
<p><b>Reference:</b><br/>
[Links]</p>
<p>Regards,<br/>[your name]</p>
Score the draft on each point. Fix anything below 8 before saving.
| # | Criteria | Test |
|---|----------|------|
| 1 | Can the reader understand the key message in 10 seconds? | Read only the first 3 lines |
| 2 | Is the answer before the context? (Minto) | First sentence = conclusion |
| 3 | Does every section earn its space? | Remove it - does the email still work? |
| 4 | Are all lists numbered (no bullets)? | Grep for <ul> - should be zero |
| 5 | Are all links clickable? | No plain-text URLs or ticket IDs |
| 6 | Is every action item named with an owner? | No "Engineering - estimation needed" without a person |
| 7 | Are em-dashes absent? | Grep - should be zero |
| 8 | Is it under 400 words? | wc -w |
| 9 | Does it end with impact/positioning? | Last line before sign-off = "so what?" |
| 10 | Are attendees at the bottom, not the top? | Reference section, not metadata block |
| 11 | Average sentence length under 20 words? | Count words in 3 longest sentences - none should exceed 30 |
| 12 | Is there one concrete example or specific number? | At least one "e.g." or specific figure |
Determine the email type FIRST, then follow the matching structure and template.
MoM - <Short Title> (<DD Mon>)[Project] | <Topic> - <Key Number> (<Summary>)Re: <existing thread>inReplyTo message ID for threading. Preserve To/CC from original thread.Re: <existing thread> or [Project] | Updates | <topic>Process - <Short Title>.local/meetings/processed/<monthname-yyyy>/<date>-<slug>.md.local/team/users.md - canonical name-to-email mapping (set up as a user convention)For MoM: Read the processed meeting file. Extract title, date, attendees, summary, decisions, action items. For Updates: Gather from conversation - what was decided, by whom, with what rationale. For Replies: Search the email provider for the thread, get the latest message ID, To/CC addresses. For Data-Driven: Fetch live data first (ticket filters, API queries). Gather all numbers before drafting.
Look up each attendee name in .local/team/users.md (match against Short Name or Full Name column).
If any name has no match, flag it and ask the user for the correct email before proceeding.
[your-email@your-domain] (from env var)Pipe the JSON directly to a provider-specific script via stdin — no intermediate files needed:
echo '<json_string>' | python3 scripts/save-draft.py -
Do NOT write to .local/scratch/ or any local file. The provider's draft is the only copy needed.
Always saves as draft - never sends.
The bundled scripts/save-draft.py is a Zoho Mail implementation. Adapt it to your provider (Gmail, Outlook, Fastmail, etc.) by replacing the API calls and auth flow. All provider credentials must come from env vars — no hardcoded URLs or account IDs.
Report: draft saved to [provider], any unresolved emails flagged.
<ul>) — violates the numbered-lists rule.<ol>, never <ul>development
Plan a webinar end-to-end using April Dunford's Obviously Awesome positioning framework to find the topic angle that makes the webinar obviously valuable to the right audience. Produces topic positioning, abstract, speaker brief, registration page, promotion sequence, day-of run-of-show, and post-webinar follow-up. Use when the user asks to plan a webinar, virtual event, online workshop, "we need a webinar on X", host a webinar, online masterclass, or any live virtual event with promotion and follow-up. Reads ICP, services, and brand voice from knowledge/.
development
Write long-form thought leadership articles, opinion pieces, industry POV essays, and CEO/founder bylines using the Made to Stick SUCCESs framework (Chip and Dan Heath). Use when the user asks for a long-form article, executive byline, opinion piece, industry POV, manifesto, "explain our point of view on X", or wants to publish an authority-building piece (1200-2500 words). Reads brand voice and positioning from knowledge/.
development
Plan a monthly content calendar across channels using the Content Marketing Matrix (Dave Chaffey, Smart Insights) - Entertain/Inspire/Educate/Convince. Every post gets a quadrant label. The monthly calendar must hit 40% Educate, 40% Inspire+Convince, 20% Entertain. Produces a week-by-week posting schedule with topics, formats, channels, and asset links. Use when the user says "content calendar", "social calendar", "plan next month's content", "what should we post", "content plan", "editorial calendar", "schedule posts for the month", or wants a structured posting plan for LinkedIn, Twitter, email, or blog. Reads brand voice, ICP, and past learnings from knowledge/.
development
Write SEO-optimized long-form articles targeting specific keywords using the They Ask You Answer Big 5 framework (Marcus Sheridan). Articles are categorized by Big 5 type (Cost, Problems, Versus, Best/Reviews, How-To) and structured accordingly. The "answer first" rule applies to every article. Use when the user asks for an SEO article, blog post for ranking, "rank for keyword X", organic content, search-optimized post, pillar page, or content for organic traffic. Includes keyword targeting, search intent matching, internal linking suggestions, and meta tags.