| name | kai-newsletter |
| description | Plan and produce newsletter editions — content selection, subject lines, scheduling, and production with quality gates. Use when "newsletter", "plan newsletter", "newsletter content", "email newsletter", "weekly digest", or any request to create or manage a newsletter. |
Kai Newsletter Skill
Plan and produce newsletter editions with strategy, content selection, subject lines, and full production pipeline.
Phase 0: Load Product Context
Check if MARKETING.md exists in the project root (same directory as CLAUDE.md, README.md, package.json).
If it exists: Read it — skip product discovery questions. It has the product name, ICP, value prop, monetization, brand voice, current channels, and competitive landscape.
If it does NOT exist: Auto-explore the codebase to create it in the project root (next to CLAUDE.md). Do NOT ask the user what the product is. Read CLAUDE.md, README.md, PROJECT.md, package.json, landing pages, and any project files. Search for email/ad/analytics config. Then create MARKETING.md using the template from /kai-email-system. Present draft to user for confirmation.
Phase 1: Discovery
Read from MARKETING.md. Only ask about things not covered there:
- Newsletter purpose — What is the goal? (nurture, educate, drive traffic, retain)
- Audience — Which persona(s) from the harness? Load from
knowledge/personas/_persona-index.md
- Cadence — Weekly, biweekly, monthly?
- Existing content — Any blog posts, articles, or assets to feature?
- Brand voice — Formal, conversational, irreverent?
- Past performance — Open rates, click rates, unsubscribe trends?
Phase 2: Plan
Build the newsletter edition plan:
- Load strategy framework:
knowledge/channels/newsletter-strategy.md
- Load email lifecycle patterns:
knowledge/channels/email-lifecycle.md
- Load skill contract:
harness/skill-contracts/email-lifecycle.yaml
- Define edition structure:
- Hero story / lead piece
- Supporting content (2-3 items)
- Quick links / resource roundup
- CTA (one primary, one secondary max)
- Subject line candidates — Generate 5+ options, score for open-rate potential
- Preview text — Complement (not repeat) the subject line
- Segment targeting — Which list segment receives this edition?
Phase 3: Produce
Write the newsletter content:
- Hero section — Lead with the most valuable piece. Hook in the first line.
- Supporting sections — Brief summaries with clear value. Link out to full content.
- Tone — Match persona language patterns. No corporate filler.
- CTA — One clear action per edition. Make it specific.
- Footer — Manage expectations (next edition date, what to expect).
Apply these rules from the harness:
- Conditions AFTER main clause ("Do X if Y")
- Instructions start with verbs
- Sentences under 20 words where possible
- Bold the answer, not the query terms
Phase 4: Quality Gates
Run all gates before delivery:
- Four U's Score:
python scripts/quality_gates/four_us_score.py <file>
- Minimum: 10/16 (email threshold)
- Banned Word Check:
python scripts/quality_gates/banned_word_check.py <file>
- AI Slop Check — No phrases like "In conclusion", "It's important to note", "In today's rapidly evolving"
- Subject line validation — Under 50 characters, no spam trigger words, no ALL CAPS
Max 2 auto-retry cycles. After 2 failures, surface to human with specific failure reasons.
Phase 5: Output
Deliver the final newsletter package:
- Subject line (final selection with rationale)
- Preview text
- Full newsletter body (HTML-ready or plain text as requested)
- Send time recommendation (based on audience segment)
- Four U's scorecard
- Gate pass/fail summary
Write output to workspace/ with filename pattern: newsletter-YYYY-MM-DD.md