skills/cmd-email-md/SKILL.md
Convert markdown to email-safe HTML with inline styles and cross-client compatibility. Use when writing newsletters, transactional emails, or any HTML email from markdown source.
npx skillsauth add olshansk/agent-skills cmd-email-mdInstall 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.
Convert markdown into a complete, self-contained HTML email with inline CSS, table-based layout, and cross-client compatibility (Gmail, Outlook, Apple Mail).
.md fileExtract YAML frontmatter from the top of the markdown. All fields are optional — use defaults for anything missing.
| Field | Default | Description |
|---|---|---|
| preheader | (none) | Hidden inbox preview text |
| brand-color | #2563eb | Primary accent (links, buttons, highlights) |
| heading-color | #1a1a1a | h1-h3 color |
| body-color | #333333 | Body text color |
| background-color | #f4f4f4 | Outer background |
| content-background | #ffffff | Inner content area |
| font-family | Arial, Helvetica, sans-serif | Safe font stack |
| font-size | 16px | Base body size |
| line-height | 26px | Body line height (must be px for Outlook) |
| content-width | 600px | Max content width |
| header-logo | (none) | URL to logo image |
| footer-text | (none) | Footer text (unsubscribe, address, etc.) |
Read the following files for technical rules and component templates:
references/email-html-compatibility.md — cross-client rules, document structure, quirksreferences/email-components.md — HTML snippets with {{variable}} placeholdersWalk through the markdown content and generate email-safe HTML:
{{variable}} placeholders with frontmatter values (or defaults)<style> blocks in <body><div> for structuremax-width fix<div> if preheader is setheader-logo is setfooter-text is setMarkdown element mapping:
| Markdown | Email component |
|---|---|
| # Heading | Heading (h1-h4) with size per level |
| Paragraph | Paragraph with inline styles |
| **bold**, *italic*, ~~strike~~ | Inline <strong>, <em>, <del> |
| [text](url) | Styled <a> with brand-color |
| - item / 1. item | Unordered/Ordered list |
| - [ ] task | Task list with Unicode checkboxes |
| `code` | Inline code |
| ```code block``` | Code block (dark theme) |
| > quote | Blockquote with left border |
|  | Image with explicit dimensions |
| --- | Horizontal rule |
| ==highlight== | <mark> with background color |
Special directives (fenced with :::):
| Directive | Behavior |
|---|---|
| :::hero | Full-width section with brand-color background, white text |
| :::callout[type] | Highlighted box — type: info, tip, warning, danger |
| :::button[text](url) | CTA button with VML fallback |
| :::button.secondary[text](url) | Secondary button variant |
| :::centered | Center-aligned text block |
| :::footer | Footer section (overrides footer-text frontmatter) |
newsletter.md), write to newsletter.html in the same directoryReport:
<style> in <body> — Gmail strips it. Only allowed in <head> for responsive media queries.<button> elements — use <a> tags styled as buttons<div> only for non-structural content (e.g., preheader hiding)rem, em, vh, vw, or calc()width and heightsrc and href must be fully qualified---
preheader: "Your weekly update is here"
brand-color: "#6366f1"
header-logo: "https://example.com/logo.png"
footer-text: "Acme Inc. | 123 Main St | [Unsubscribe](https://example.com/unsub)"
---
:::hero
# Welcome to the Weekly Update
Everything you need to know, in one email.
:::
## What's New
We shipped **three major features** this week:
- Real-time collaboration
- Dark mode support
- Export to PDF
:::callout[tip]
Try dark mode by going to Settings > Appearance.
:::
:::button[Try it now](https://example.com/app)
## By the Numbers
| Metric | This Week | Last Week |
|---|---|---|
| Active Users | 12,450 | 11,200 |
| Signups | 890 | 720 |
> "This is the best update yet!" — A happy user
---
Thanks for reading. See you next week!
testing
Ask the agent whether it finished everything or has more to do — a lightweight completeness gate for the end of any task
development
Audit personal skills for redundancy, verbosity, weak triggers, and overlap. Runs a Claude→Codex review loop, presents per-item approval checkboxes, then applies approved edits and updates README and agent metadata. Use when asked to "review my skills", "audit my skills", "revisit my skills", or "clean up my skills". Accepts an optional skill name to scope the review to a single skill.
development
Set up or extend golden/snapshot tests for a project. Covers fixture design, Makefile targets, snapshot storage, diff workflow, and update protocol.
development
Proofread posts before publishing for spelling, grammar, repetition, logic, weak arguments, broken links, and optionally reformat for skimmability or shape the writing vibe toward a known author's style