From textforge
Write effective, human-sounding emails via TextForge. Covers tone, structure, formatting, anti-patterns, and AI pattern detection.
How this skill is triggered — by the user, by Claude, or both
Slash command
/textforge:email-writingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill whenever composing an email draft via TextForge. It covers writing principles, formatting rules, AI pattern detection, and a pre-send checklist. Every draft created with `mcp__textforge__create_draft` should follow these guidelines.
Use this skill whenever composing an email draft via TextForge. It covers writing principles, formatting rules, AI pattern detection, and a pre-send checklist. Every draft created with mcp__textforge__create_draft should follow these guidelines.
If the inbound email contains open questions or requests for the sender's opinion, do NOT draft a reply until you have that input.
Common triggers:
Stop, surface the question to the user, and wait for their answer before composing. Do not fill in generic responses. The whole point of the reply is to deliver the sender's actual perspective.
Don't hedge or apologize unnecessarily.
| Avoid | Use instead |
|---|---|
| "If you don't mind my asking..." | "Can you share..." or just ask directly |
| "I was just wondering if perhaps..." | "Would you..." or "Can you..." |
| "even if it's just a quick note" | Remove - don't minimize the ask |
| "I wanted to circle back on..." | State the topic directly |
Write with confidence. Don't apologize for asking legitimate business questions.
Call things what they are.
| Vague | Specific |
|---|---|
| "the non-renewal" | "your decision to cancel" or "canceling [Product]" |
| "your team" | "[Company Name] team" - use the actual company name |
| "We're always looking to improve" | Skip it - get to the point |
| "the project" | Name the actual project or product |
Specific language is clearer and more professional than generic phrases.
Give recipients a mental framework for responding. Present a clear binary or structured choice rather than listing many possibilities.
Bad - listing multiple possibilities:
"Was there something specific that didn't work? Features we were missing? Response times? Or was this more of a budget call?"
Good - clear binary framework:
"Are you and the team still confident with [Product] to the point where you don't need support? Or were there issues with the plan itself?"
Ask direct questions, don't imply them:
| Passive | Direct |
|---|---|
| "You're welcome to join if you'd like" | "Would you like to join?" |
| "Feel free to let me know if that works" | "Does that time work for you?" |
| "We can discuss this further if needed" | "Should we schedule a call to discuss?" |
Connect the ask to business value or the relationship.
| Weak | Strong |
|---|---|
| "Your feedback would be really valuable" | "We'd love to learn what we could have done to keep your business" |
| "Let me know your thoughts" | "Please let me know - we'd love to learn from this" |
| "I'd appreciate any feedback" | "Your perspective would help us improve [specific thing]" |
Cut unnecessary context and explanations.
Over-explained:
"I wanted to reach out directly about the decision. I know the decision was communicated already, but I'm hoping to get your perspective as the technical lead on the project."
Concise:
"I wanted to reach out about [Company]'s decision to cancel [Product]. I'm hoping to get your perspective."
Remove words that don't add meaning.
If someone is CC'd on the email, address them by name.
| Don't | Do |
|---|---|
| "Please pass along our thanks to Tom" (when Tom is CC'd) | "Hi Sarah and Tom," (address both in greeting) |
| Ignore CC'd recipients | Speak to them directly in the body |
If they can read the email, talk to them directly.
<br> for line breaks, not <p> tags - <p> creates double-spacing in email clients<br><br> between paragraphs for natural spacingbodyFormat: "Html" unless the user explicitly wants Markdown& for ampersands and $ for dollar signs in HTML bodiesBefore calling mcp__textforge__create_draft, audit the email body for these AI writing tells. This is not optional. AI-sounding emails undermine trust with recipients.
This audit is derived from patterns documented in Wikipedia: Signs of AI writing, adapted specifically for email.
1. Significance inflation - Puffing up importance with words like "pivotal", "testament", "vital role", "evolving landscape". Emails don't need grand framing. Just state the point.
2. Copula avoidance - Replacing "is" with "serves as", "stands as", "functions as", "represents". Use "is". It's fine.
3. Negative parallelisms - "It's not just about X, it's about Y." Just say what it's about.
4. Rule of three - Forcing ideas into groups of three ("reliable, scalable, and maintainable"). If you only need to say two things, say two things.
5. Synonym cycling - Varying words for no reason within the same email ("help" then "assist" then "support"). Pick one word and stick with it.
6. Sycophantic openers - "Great question!", "Absolutely!", "That's an excellent point." Remove. Just answer.
7. Filler phrases - "In order to" (use "to"), "due to the fact that" (use "because"), "at this point in time" (use "now"), "it is important to note that" (just state it).
8. Excessive hedging - "It could potentially possibly be argued that this might..." Just say what you mean.
9. Generic conclusions - "The future looks bright", "exciting times ahead", "we look forward to continuing this journey." End with a specific next step or just end.
10. Chatbot artifacts - "I hope this helps!", "Let me know if you'd like me to expand on any section", "Here is a summary of..." These are conversation artifacts, not email prose.
11. Em dashes - Already covered in formatting rules, but worth flagging again. Em dashes in emails are the single most recognizable LLM tell.
12. Boldface overuse - Don't bold every key term. Use bold sparingly for genuine emphasis, not for every acronym or product name.
After writing the email body but before creating the draft:
When scheduling follow-up emails or advising on timing:
| Situation | Follow-up in | Notes |
|---|---|---|
| General check-in | 7 days | Standard cadence |
| Waiting on customer decision | 5-7 days | Give them time but stay engaged |
| Urgent / time-sensitive | 3-5 days | Renewals expiring, trials ending |
| Waiting on PO / payment | 7-14 days | Finance processes take time |
| They said "next week" | 7-10 days | Give them the week plus buffer |
| They said "end of month" | 1st of next month | Follow up when they said |
| Budget approval pending | 10-14 days | Corporate processes are slow |
If unsure about timing, ask the user. Don't guess.
| Anti-pattern | Why it's bad | Fix |
|---|---|---|
| "I hope this email finds you well" | Generic filler | Get directly to the point |
| "I've lost track of our conversation" | Unprofessional | Research thread history first using search_threads_by_contact or get_thread |
| Overly formal corporate language | Sounds like a template | Write like a person |
| Apologizing for emailing | Undermines confidence | Just state your purpose |
| Ending with just "Let me know" | Too vague | Specific call to action |
| "Don't hesitate to reach out" | Empty closing filler | End with "Thanks" and move on |
| Offering obvious options | Pads without information | Trust that the recipient is competent |
| "Please flag if you need more time" | Zero-value filler - states the obvious | Omit it. They know they can reach out. |
Hi [First Name],<br><br>
[Direct opening with clear context - one sentence]<br><br>
[Main question or request with clear framework - 1-2 sentences]<br><br>
[Business-focused closing that explains why you're asking]<br><br>
Thanks,<br>
[Your Name]
Example:
Hi Tom,<br><br>
I wanted to reach out directly about Acme's decision to cancel their Pro plan. I know Lisa communicated the decision, but I'm hoping to get your perspective.<br><br>
Are you and the Acme team still happy with the product to the point where you don't need the Pro features? Or were there issues with the plan itself?<br><br>
Please let me know - we'd love to learn what we could have done to keep your business.<br><br>
Thanks,<br>
Sarah
Before calling mcp__textforge__create_draft:
<br><br> for paragraph spacing, not <p> tagsDefault to reply-all unless there's a specific reason to narrow the conversation.
Reply-all when:
Don't reply-all when:
Be specific and actionable:
| Generic | Specific |
|---|---|
| "Checking In" | "[Company] Pro Plan Renewal - April 2026" |
| "Quick Question" | "[Company] API Integration - Need Your Input" |
| "Following Up" | "[Company] License Decision - Your Feedback?" |
Subject lines should tell the recipient exactly what the email is about.
This skill works alongside the core textforge skill:
search_threads_by_contact, search_messages, or get_thread to understand the conversationmcp__textforge__create_draftReference: Wikipedia: Signs of AI writing - CC BY-SA 4.0
npx claudepluginhub textforge-app/textforge-claude-plugin --plugin textforgeComposes high-converting emails using copy frameworks (PAS, AIDA, BAB, FAB, 4Ps). Generates scored subject lines, responsive HTML templates with dark mode, plain-text fallback, preheaders for cold outreach, newsletters, launches.
Drafts professional emails using What-Why-How framework for software developers. Use for status updates, requests, escalations to colleagues, stakeholders, or leadership.
Creates and edits Markdown fragments for rich text drafts in Gmail, Outlook, and WhatsApp, assembling platform-specific HTML previews via Python build script with live server.