Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Draft email replies and compose new messages. Given email ID(s) or message context, generate professional email drafts in user's preferred tone. Offers multiple variants (concise, warmer) and includes assumptions/questions for confirmation. Use when user wants to reply to emails, compose new messages, or needs help with email writing. Does NOT send emails.
.claude/skills/evolution-foundation-gog-email-draft/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 86% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 104% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 665% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 330% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 826% | 0% |
Generate professional, context-aware email drafts with tone variants and confirmation prompts.
Use this skill when:
Important: This skill creates DRAFTS only. It NEVER sends emails. Use gog-email-send skill for sending (with explicit confirmation).
Before drafting, gather:
Option A - Reply to existing email(s):
gog gmail search or triage outputgog gmail get <messageId> --jsonOption B - Compose new email:
If not previously known, ask:
What tone would you like for this email?
- Professional (formal, business-standard)
- Friendly (warm but professional)
- Concise (brief and to-the-point)
- Detailed (thorough, includes context)
Or describe your preferred style.Remember preference for future drafts in the session.
Identify what's needed to draft effectively:
Ask clarifying questions before drafting if critical info is missing.
For replies:
bashgog gmail get <email_id> --json
Parse:
If email has a thread, consider reading previous messages in thread for context.
Analyze what the reply should address:
Questions asked: Direct questions that need answers Action items: Tasks or requests that need response Context needed: Background or explanation to provide Next steps: Proposed follow-up or timeline Tone match: Match or adjust based on sender's tone
Before drafting, list assumptions being made:
markdown## Assumptions - [Assumption 1: e.g., Budget is approved for this project] - [Assumption 2: e.g., Timeline of 2 weeks is acceptable] - [Assumption 3: e.g., Legal review is not required] - [...]
List clarifying questions if any:
markdown## Questions to Confirm 1. [Question 1: e.g., Should we include pricing in this email?] 2. [Question 2: e.g., Do you want to propose a specific meeting time?] 3. [Question 3: e.g., Is there a deadline we should mention?]
If questions are critical, ask now and wait for answers. If minor, include in output for user to address.
Create TWO versions:
Variant A: Concise
Variant B: Warmer/Detailed
Output in this format:
markdown# Email Draft: [Subject] **To**: [recipient(s)] **CC**: [if applicable] **Subject**: [subject line] --- ## Variant A: Concise [Draft text here] --- ## Variant B: Warmer [Draft text here] --- ## Assumptions - [List assumptions made] ## Questions to Confirm 1. [List questions if any] --- **Next Steps**: - Edit either variant as needed - Confirm assumptions are correct - Answer any questions listed - When ready: "Send this draft" (will invoke gog-email-send with confirmation)
After presenting drafts:
Iterate until user is satisfied.
When user approves final draft, offer:
Ready to send? Say "Save as draft" to create in GOG, or "Send this email" to proceed with sending (requires explicit confirmation).When user says "Save as draft" or "Create draft":
bash# Create draft body file first cat > /tmp/draft_body.txt << 'EOF' [Draft email body content] EOF # Create draft gog gmail drafts create \ --to "recipient@example.com" \ --cc "cc@example.com" \ --subject "Subject line" \ --body /tmp/draft_body.txt \ --json # Clean up temp file rm /tmp/draft_body.txt
Note: Reply threading is handled automatically by Gmail when replying to a thread. If creating a standalone draft, omit reply-related flags.
Return draft ID to user:
✅ Draft created successfully!
Draft ID: draft_abc123
You can:
- Review it in your email client
- Edit it further there
- Send it via: "Send draft draft_abc123"Every draft output MUST include:
Email body format:
User: "Draft a reply to email msg_abc123"
Assistant:
[Fetches email msg_abc123...]
Original email from sarah@company.com:
"Hi, can we schedule a meeting to discuss Q2 budget? I'm available Tuesday or Thursday afternoon."
---
# Email Draft: Re: Q2 Budget Meeting
**To**: sarah@company.com
**Subject**: Re: Q2 Budget Meeting
---
## Variant A: Concise
Hi Sarah,
Tuesday afternoon works for me. How about 2pm? I'll send a calendar invite.
Thanks,
---
## Variant B: Warmer
Hi Sarah,
Thanks for reaching out about the Q2 budget discussion. I'd be happy to meet.
Tuesday afternoon works well for me. Would 2pm work for you? I can send a calendar invite with a Zoom link if that's convenient, or we can meet in person if you prefer.
Looking forward to discussing the budget plans!
Thanks,
---
## Assumptions
- 2pm is a reasonable time for "afternoon"
- Virtual meeting is acceptable (can offer in-person)
- User has authority to discuss Q2 budget
## Questions to Confirm
1. Do you have any specific time preferences for Tuesday afternoon?
2. Should I propose an agenda or specific topics to cover?
---
**Next Steps**: Which variant do you prefer, or would you like me to adjust anything?User: "Compose an email to vendor@acme.com asking about the pricing proposal status"
Assistant:
# Email Draft: Pricing Proposal Follow-up
**To**: vendor@acme.com
**Subject**: Following up on pricing proposal
---
## Variant A: Concise
Hi [Vendor Name],
I wanted to follow up on the pricing proposal we discussed. Have you had a chance to review it?
Please let me know if you need any additional information.
Thanks,
---
## Variant B: Warmer
Hi [Vendor Name],
I hope this email finds you well. I wanted to check in regarding the pricing proposal we sent over on [date, if known].
We're working on finalizing our Q2 budget and would greatly appreciate an update on where things stand. If you need any clarification or additional details from our side, please don't hesitate to reach out.
Thank you for your time, and I look forward to hearing from you soon.
Best regards,
---
## Assumptions
- Vendor contact name is known (replace [Vendor Name])
- Previous proposal was sent and vendor is aware of it
- There's no hard deadline pressuring the follow-up
## Questions to Confirm
1. Do you know the vendor contact's name? (Replace [Vendor Name])
2. When was the original proposal sent? (Can mention specific date)
3. Is there a deadline by which you need their response?
4. Should I mention the next steps if they accept?
---
**Next Steps**: Please provide the vendor contact's name and any other details, then I can finalize the draft.User: "Draft replies for emails msg_123 and msg_456"
Assistant:
Let me draft replies for both emails.
---
# Draft 1: Re: [Subject of msg_123]
[Full draft for email 1...]
---
# Draft 2: Re: [Subject of msg_456]
[Full draft for email 2...]
---
Would you like to review and refine these individually, or are they ready to save as drafts?Symptom: gog gmail get <messageId> fails or returns error
Resolution:
gog gmail thread get <threadId>Symptom: Cannot draft effectively without key facts
Resolution:
Symptom: User says "Too formal" or "Too casual"
Resolution:
Symptom: Original email is part of long thread
Resolution:
Symptom: Original email has many recipients
Resolution:
gog gmail drafts createTo safely test this skill using only user@example.com:
Test 1: Draft to self (safe)
In Claude Code:
gog gmail drafts create commandTest 2: Reply to self (safe)
gog gmail search "from:user@example.com" --max 1 --jsonSee skills/gog/_shared/references/testing.md for complete test plan.
gog-email-triage: Often invoked after triage to reply to prioritized emailsgog-email-send: Invoked after draft is finalized to send (with confirmation)gog-followups: Can suggest adding follow-up tracking for sent emailsreferences/ directory| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,959 | 4,420 | -56% | 1 | 1 | 0% | 1,672 | 3,580 | +114% | 0 | 0 | — |
case-02 | fail→pass | 13,422 | 5,989 | -55% | 1 | 1 | 0% | 2,314 | 4,308 | +86% | 0 | 0 | — |
case-03 | fail→pass | 9,388 | 9,805 | +4% | 1 | 1 | 0% | 1,745 | 3,555 | +104% | 0 | 0 | — |
case-04 | pass→fail | 2,950 | 5,414 | +84% | 1 | 1 | 0% | 447 | 4,140 | +826% | 0 | 0 | — |
case-05 | fail→fail | 3,338 | 6,052 | +81% | 1 | 1 | 0% | 540 | 3,583 | +564% | 0 | 0 | — |
case-06 | fail→fail | 7,503 | 5,986 | -20% | 1 | 1 | 0% | 1,255 | 3,607 | +187% | 0 | 0 | — |
case-07 | fail→pass | 3,728 | 8,203 | +120% | 1 | 1 | 0% | 583 | 4,460 | +665% | 0 | 0 | — |
case-08 | fail→fail | 7,874 | 5,764 | -27% | 1 | 1 | 0% | 1,306 | 4,223 | +223% | 0 | 0 | — |
case-09 | fail→fail | 6,603 | 4,342 | -34% | 1 | 1 | 0% | 1,088 | 3,413 | +214% | 0 | 0 | — |
case-10 | fail→pass | 6,543 | 7,000 | +7% | 1 | 1 | 0% | 1,067 | 4,593 | +330% | 0 | 0 | — |
case-11 | fail→fail | 4,036 | 8,482 | +110% | 1 | 1 | 0% | 565 | 3,742 | +562% | 0 | 0 | — |
case-12 | fail→fail | 8,060 | 7,238 | -10% | 1 | 1 | 0% | 1,253 | 4,423 | +253% | 0 | 0 | — |
case-13 | fail→fail | 13,870 | 8,738 | -37% | 1 | 1 | 0% | 1,325 | 4,711 | +256% | 0 | 0 | — |
case-14 | fail→fail | 13,617 | 4,565 | -66% | 1 | 1 | 0% | 1,101 | 3,506 | +218% | 0 | 0 | — |
case-15 | fail→fail | 7,304 | 5,218 | -29% | 1 | 1 | 0% | 1,082 | 3,468 | +221% | 0 | 0 | — |
case-16 | pass→pass | 6,014 | 4,788 | -20% | 1 | 1 | 0% | 926 | 3,982 | +330% | 0 | 0 | — |
case-17 | pass→fail | 3,073 | 8,451 | +175% | 1 | 1 | 0% | 508 | 3,476 | +584% | 0 | 0 | — |
case-18 | fail→fail | 7,305 | 4,519 | -38% | 1 | 1 | 0% | 1,132 | 3,499 | +209% | 0 | 0 | — |
case-19 | fail→fail | 8,145 | 4,628 | -43% | 1 | 1 | 0% | 1,200 | 3,448 | +187% | 0 | 0 | — |
case-20 | fail→fail | 6,124 | 4,183 | -32% | 1 | 1 | 0% | 982 | 3,444 | +251% | 0 | 0 | — |
case-21 | fail→fail | 3,151 | 8,838 | +180% | 1 | 1 | 0% | 369 | 3,808 | +932% | 0 | 0 | — |
case-22 | fail→fail | 9,191 | 4,379 | -52% | 1 | 1 | 0% | 1,372 | 3,473 | +153% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 9 counted toward the lift figure. The other 13 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 9 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.