SkillHub

ravi-email-writing

v1.7.1

Best practices for writing high-quality emails that look professional and avoid spam filters. Reference this before composing, replying, or forwarding emails with ravi-email-send.

Sourced from ClawHub, Authored by Raunak Singwi

Installation

Please help me install the skill `ravi-email-writing` from SkillHub official store. npx skills add raunaksingwi/ravi-email-writing

Email Writing Guide

Write emails that look like they came from a real person — not an AI. Good email hygiene improves deliverability, avoids spam filters, and gets responses.

Subject Lines

  • 40-60 characters — long subjects get truncated on mobile
  • Be specific — "Q3 metrics review for Acme project" beats "Update"
  • No ALL CAPS — spam filters penalize this heavily
  • Avoid spam triggers — "free", "act now", "limited time", "click here", "urgent", "guaranteed", "no obligation"
  • Match the tone — casual for teammates, professional for external contacts

HTML Body Structure

The --body flag in ravi email compose/reply/forward accepts HTML. Always use semantic tags — never pass plain text.

Note: --subject is only used with ravi email compose. Reply and forward commands auto-derive the subject from the original message (prepending Re: or Fwd:).

Do this:

<p>Opening line that states the purpose.</p>

<p>Supporting details in a second paragraph.</p>

<ul>
  <li>Key point one</li>
  <li>Key point two</li>
</ul>

<p>Closing with a clear next step or ask.</p>

<p>Best,<br>IDENTITY_NAME</p>

Don't do this:

Plain text with no tags at all

Or this:<br><br>Using br chains<br><br>instead of paragraphs

Rules: - Always wrap text in <p> tags - Use <h2> for section headers (not <h1>) - Use <ul>/<li> for lists, not dashes or asterisks - Use descriptive text for links — never bare URLs - No <html>, <head>, or <body> wrapper tags — the email system adds these - No <br> chains — use separate <p> tags instead - Get the identity name with: ravi identity list --json | jq -r '.[0].name'

Copy-paste starting point for most emails:

NAME=$(ravi identity list --json | jq -r '.[0].name')

ravi email compose 
  --to "[email protected]" 
  --subject "Specific subject under 60 chars" 
  --body "<p>Hi Alex,</p>

<p>I'm reaching out about [specific topic]. [One sentence of context.]</p>

<p>[Core message — what you need, what you're sharing, or what you're asking.]</p>

<ul>
  <li>[Key point or action item]</li>
  <li>[Key point or action item]</li>
</ul>

<p>[Clear next step — what should the recipient do?]</p>

<p>Best,<br>$NAME</p>" --json

Tone and Style

  • First person, active voice — "I'll send the report Monday" not "The report will be sent"
  • Short paragraphs — 2-3 sentences max per <p> tag
  • Get to the point — state your purpose in the first sentence
  • End with an action item — "Can you review by Friday?" not "Let me know your thoughts"
  • No filler phrases — cut "I hope this email finds you well", "Just wanted to touch base", "Per our previous conversation"
  • No robotic language — cut "I am writing to inform you", "Please be advised", "Kindly note"
  • Match the thread tone — if they're casual, be casual. If they're formal, be formal.

Anti-Spam Essentials

These rules help your emails land in the inbox, not spam:

  • High text-to-HTML ratio — more words, fewer tags. Don't over-format.
  • No link shorteners — use full URLs. Spam filters distrust bit.ly, t.co, etc.
  • Max 2-3 links per email — more links = higher spam score
  • No ALL CAPS — not even for emphasis. Use <strong> instead.
  • No image-only emails — always include text content
  • One topic per email — don't cram multiple requests into one message
  • Don't repeat yourself — saying the same thing in different words triggers spam heuristics

Common Mistakes

Mistake Why it's bad Do this instead
Plain text in --body Renders as one blob, no formatting Wrap everything in <p> tags
<br><br> chains Looks spammy, inconsistent spacing Use separate <p> tags
"Dear Sir/Madam" Outdated, signals mass email Use the recipient's name or "Hi there"
Wall of text Nobody reads long emails Break into 2-3 short paragraphs
"Click here" links Spam trigger, bad accessibility descriptive text
Empty or vague subject Low open rates, looks like spam Be specific: "Invoice #1234 for January"
Excessive HTML styling High tag-to-text ratio triggers filters Keep formatting minimal
No signature Looks impersonal, unprofessional Sign with identity name
"Sent by AI" disclaimers Undermines trust, unnecessary Just write naturally
  • ravi-email-send — CLI commands for compose, reply, reply-all, and forward
  • ravi-inbox — Read incoming email to understand what you're replying to
  • ravi-identity — Get your identity name for email signatures
  • ravi-feedback — Tell the Ravi team if email deliverability could be better