Draft Newsletter
Create a newsletter from topics or notes
Check if User Analysis Results (file: writing-style.md) has content. If empty or missing:
"I can write better newsletters if I know your writing style. Want me to analyze some samples?
You can paste writing samples, or if you have Gmail/Slack/Notion connected, I can learn from those."
If user wants style capture, run Analyze Writing Style.
If user wants to proceed without, continue with generic professional tone.
Check Domain Preferences (domain: newsletter) for existing preferences
(newsletter_name, audience, tone, length). If found, confirm: "Using your usual
settings - [newsletter name] for [audience], [tone] tone. Change anything?"
If not found or user wants to change, gather newsletter context:
BASICS
- Newsletter name/brand (if recurring)
- Target audience
- Tone (casual, professional, playful)
- Length preference (quick read vs comprehensive)
CONTENT
- Main topics or updates to cover
- Any supporting links or details
- Key takeaways or calls to action
- Any sections that should be included (e.g., "Featured", "Quick Hits")
Validate scope before drafting:
LENGTH CHECK
- Count topics provided: <3 topics = short (2-3 min read), 3-5 = medium (3-5 min), 6+ = long
- If 6+ topics: Suggest prioritizing the most important 4-5 or splitting into multiple newsletters
- Match length to user's preference from context gathering
FORMAT CHECK
- Confirm newsletter is the right format for this content:
- Newsletter = recurring, scannable, multi-topic updates
- Blog post = single topic deep dive (redirect to blog-writer skill)
- Press release = formal announcement
- Internal memo = one-time directive
- If content seems better suited to another format, pause and ask
COMPLEXITY CHECK
- If technical content + non-technical audience: plan to simplify jargon, use analogies
- If mixed audience: plan layered content (lead with universal benefit, add depth for advanced readers)
Structure the newsletter:
SUBJECT LINE (3 options)
- Clear benefit or hook
- Avoid clickbait but spark curiosity
- Keep under 50 characters
PREVIEW TEXT
- Extends the subject line
- Shows in inbox previews
- 35-90 characters
OPENER (2-3 sentences)
- Hook or context
- Why this issue matters
- Set the tone
MAIN CONTENT
- Lead with the most important item
- Use headers to break sections
- Keep paragraphs short (2-3 sentences)
- Include relevant links inline
QUICK HITS / ADDITIONAL ITEMS
- Bullet format for shorter items
- One line per item with link if relevant
CLOSER
- Wrap up or preview next issue
- Clear CTA if applicable
- Sign-off that fits the brand
Polish for email:
- Scannable with headers and bullets
- Mobile-friendly paragraph length
- Links have clear anchor text
- No walls of text
If this is a recurring newsletter and preferences weren't already saved, offer:
"Want me to remember these settings for next time?"
If yes, save to Domain Preferences (domain: newsletter):
newsletter_name: [name]
target_audience: [description]
tone: [casual/professional/etc]
default_length: [quick/comprehensive]
To run this task you must have the following required information:
> Topics, notes, or content to include in the newsletter
If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.
---
You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple CONSECUTIVE read steps in a row, read them all at once (in parallel). Otherwise, do not read a file until you reach that step.
Add all steps to your todo list now and begin executing.
## Steps
1. [Read Newsletter Writing Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/compose.newsletter.guide.md`
2. [Read Human-Style Prose]: Read the documentation in: `skills/sauna/[skill_id]/references/shared.prose.style.md` (Natural writing principles)
3. [Read Invisible AI Writing]: Read the documentation in: `skills/sauna/[skill_id]/references/writing.human.invisible.md` (Prescriptive rules for human-sounding prose)
4. [Read User Analysis Results]: Discover relevant information in the user's filesystem at `documents/user/analysis/*.md`. (User's captured writing voice (file: writing-style.md))
5. [Read Domain Preferences]: Discover relevant information in the user's filesystem at `documents/preferences/[domain].md`. (Read state:preferences.domain.settings (domain: newsletter) for saved settings)
6. Check if `documents/user/analysis/*.md` (file: writing-style.md) has content. If empty or missing:
"I can write better newsletters if I know your writing style. Want me to analyze some samples?
You can paste writing samples, or if you have Gmail/Slack/Notion connected, I can learn from those."
If user wants style capture, run `skills/sauna/[skill_id]/references/recipes/context.style.analyze.md`.
If user wants to proceed without, continue with generic professional tone.
7. Check `documents/preferences/[domain].md` (domain: newsletter) for existing preferences
(newsletter_name, audience, tone, length). If found, confirm: "Using your usual
settings - [newsletter name] for [audience], [tone] tone. Change anything?"
If not found or user wants to change, gather newsletter context:
BASICS
- Newsletter name/brand (if recurring)
- Target audience
- Tone (casual, professional, playful)
- Length preference (quick read vs comprehensive)
CONTENT
- Main topics or updates to cover
- Any supporting links or details
- Key takeaways or calls to action
- Any sections that should be included (e.g., "Featured", "Quick Hits")
8. Validate scope before drafting:
LENGTH CHECK
- Count topics provided: <3 topics = short (2-3 min read), 3-5 = medium (3-5 min), 6+ = long
- If 6+ topics: Suggest prioritizing the most important 4-5 or splitting into multiple newsletters
- Match length to user's preference from context gathering
FORMAT CHECK
- Confirm newsletter is the right format for this content:
- Newsletter = recurring, scannable, multi-topic updates
- Blog post = single topic deep dive (redirect to blog-writer skill)
- Press release = formal announcement
- Internal memo = one-time directive
- If content seems better suited to another format, pause and ask
COMPLEXITY CHECK
- If technical content + non-technical audience: plan to simplify jargon, use analogies
- If mixed audience: plan layered content (lead with universal benefit, add depth for advanced readers)
9. Structure the newsletter:
SUBJECT LINE (3 options)
- Clear benefit or hook
- Avoid clickbait but spark curiosity
- Keep under 50 characters
PREVIEW TEXT
- Extends the subject line
- Shows in inbox previews
- 35-90 characters
OPENER (2-3 sentences)
- Hook or context
- Why this issue matters
- Set the tone
MAIN CONTENT
- Lead with the most important item
- Use headers to break sections
- Keep paragraphs short (2-3 sentences)
- Include relevant links inline
QUICK HITS / ADDITIONAL ITEMS
- Bullet format for shorter items
- One line per item with link if relevant
CLOSER
- Wrap up or preview next issue
- Clear CTA if applicable
- Sign-off that fits the brand
10. Polish for email:
- Scannable with headers and bullets
- Mobile-friendly paragraph length
- Links have clear anchor text
- No walls of text
11. If this is a recurring newsletter and preferences weren't already saved, offer:
"Want me to remember these settings for next time?"
If yes, save to `documents/preferences/[domain].md` (domain: newsletter):
newsletter_name: [name]
target_audience: [description]
tone: [casual/professional/etc]
default_length: [quick/comprehensive]