Kai newsletter
Open-source AI CMO for Claude Code: marketing agent skills for SEO, content, email, ads, launches, CRO, AEO/GEO, and AI-search visibility.
npx -y skills add cgallic/kai-cmo-harness --skill kai-newsletterAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
4.1 KB, as published. Nobody here has run it
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 - Load growth economics (only when the request involves list growth, acquisition budget, subscriber value, or list-quality diagnosis):
knowledge/playbooks/newsletter-growth-economics.md - 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>- Zero Tier 1 violations
- 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