Email Drafting
/install email-response-drafting
Email Response Drafting
This skill covers drafting email replies that sound human, thread correctly, and render properly across email clients. It is scoped to response drafting — not marketing campaigns or mass outreach.
Draft-First: The Non-Negotiable Rule
Never send an email without the user's explicit approval. The workflow:
- Compose the draft (in markdown, in the agent's chat, or in a file)
- Present recipients, subject, and body to the user for review
- Save as draft to Outlook (or the user's email client) if available
- Wait for the user to say "send," "send now," "reply now," or equivalent
- Send only after explicit approval
If intent is ambiguous ("looks good" could mean "I approve the draft" or "I'll send it myself"), ask for one-line confirmation before sending.
Voice and Tone Matching
The cardinal rule: match the sender's register.
| Relationship | Tone | Example opener |
|---|---|---|
| Internal team / contractors | Short, direct, no filler | "Sent the updated file. Let me know if anything looks off." |
| Existing clients (high trust) | Warm but efficient | "Quick update — the document is ready for your review." |
| New contacts / cold replies | Professional, value-first | Lead with what is relevant to them, not your credentials |
| Formal threads | Match their formality | If they write "Dear Steven," reply with "Dear [Name]," not "Hey!" |
Calibration signals
Read the sender's email for cues:
- Length — if they wrote 2 sentences, don't reply with 5 paragraphs
- Greeting style — mirror their "Hi" / "Hello" / "Dear" / no greeting
- Closing — mirror their "Best" / "Thanks" / "Regards" / no closing
- Emoji/exclamation use — match their energy level, don't exceed it
What to avoid
- Over-explaining process — state the outcome, not the journey. "The agreement is ready" beats "I reviewed the agreement, made several updates to sections 3 and 7, cross-referenced with our template library, and..."
- Filler phrases — "I hope this email finds you well" is noise. Start with the point.
- Quoting others on your own product — never attribute your product description to someone else
- Singling out one insight from a rich conversation — if you had a long call, reference the breadth of the discussion, don't cherry-pick
Threading: Get It Right
Broken threading looks unprofessional. Before creating a reply draft:
- Check the subject — if it has "Re:" or "RE:", this is a reply to an existing thread
- Find the original message — search by sender + subject keywords
- Get the message ID — use it as the
in_reply_toorreply_toparameter - Create a threaded reply — not a standalone new message
If the original message cannot be found, tell the user rather than silently creating a standalone draft that will break the thread in the recipient's inbox.
REST API: Use POST /me/messages/{id}/createReply to maintain threading. This preserves conversation ID and In-Reply-To headers.
MCP: reply_to_email handles threading automatically.
Structure: One Ask Per Email
Every email should have exactly one clear action item. If you need multiple things, either:
- Pick the most important one and save the rest for a follow-up
- Use a numbered list where the first item is the ask and the rest are context
Structure template for action-needed replies:
[1-2 sentence context/update]
[The ask — what you need from them, by when]
[Optional: supporting detail they might need to act]
Structure template for informational replies:
[The news — what happened or what's ready]
[Optional: what they should do next, or "no action needed"]
Formatting That Survives Email Clients
Email rendering is a minefield. Markdown that looks perfect in a text editor can break in Outlook, Gmail, or Apple Mail.
Gotchas
| Issue | What breaks | Fix |
|---|---|---|
| Cuddled lists | No blank line before first - item |
Always add a blank line before the first list item |
| Raw markdown in HTML | **bold** renders as literal asterisks in HTML email |
Convert markdown to HTML before sending |
| Missing plain-text body | HTML-only emails get flagged by spam filters | Always include both HTML and plain-text versions |
| Signature placement | Signature appears before the quoted thread | Put signature after reply body, before the quoted thread |
| Long URLs | URLs wrap mid-word and break clickability | Use hyperlink text [click here](url) in markdown; convert to \x3Ca> in HTML |
| Tables | Many email clients don't render markdown tables | Use HTML \x3Ctable> with inline styles for email |
Character encoding
- Curly quotes (
\u201c\u201d) and straight quotes (") should both be handled - Em dashes (
\u2014) render fine in modern clients but may break in plain-text - Non-ASCII characters in subject lines need proper encoding (most APIs handle this)
Draft File Format
When saving drafts to files (for MCP or manual review), use YAML frontmatter:
---
to: [email protected]
subject: Re: Project update
in_reply_to: \x3Cmessage-id-from-original>
---
Body of the email in markdown.
The MCP or send script converts this to HTML + plain text automatically.
Do not pre-populate draft_id or draft_link — these are auto-appended by the MCP after saving to Outlook.
Tone Calibration by Context
Delivering good news
Lead with the news. "The document is signed and filed" — then details if needed.
Delivering bad news
Lead with empathy, then the fact, then the path forward. "I understand the timeline is tight. The review is taking longer than expected — we should have it by Thursday. I will send it as soon as it is ready."
Following up (no response yet)
Soft-remind the agreed action, don't re-ask. "Circling back on the agreement — let me know if you need anything to move forward." Not: "Did you get my last email?"
Declining or redirecting
Be direct and offer an alternative. "I'm not the right person for this, but [Name] at [Company] specializes in exactly this."
Feedback
If this skill helped, star us on GitHub: https://github.com/UseJunior/email-agent-mcp
On ClawHub: clawhub star stevenobiajulu/email-response-drafting
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install email-response-drafting - 安装完成后,直接呼叫该 Skill 的名称或使用
/email-response-drafting触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Email Drafting 是什么?
Draft email replies with tone matching, proper threading, and formatting that survives email clients. Use when user says "draft a reply," "respond to this em... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 98 次。
如何安装 Email Drafting?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install email-response-drafting」即可一键安装,无需额外配置。
Email Drafting 是免费的吗?
是的,Email Drafting 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Email Drafting 支持哪些平台?
Email Drafting 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Email Drafting?
由 Steven Obiajulu(@stevenobiajulu)开发并维护,当前版本 v0.1.1。