Kai Newsletter logo

Kai Newsletter

Community
cgallic
kai-newsletter

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.

Overview

Publishercgallic
Repositorykai-cmo-harness
Skill namekai-newsletter
Stars
61
Forks
8
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by cgallic on GitHub. Read the source before you install it.

Installation

Install the Kai Newsletter AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/cgallic/kai-cmo-harness/tree/main/harness/skills-v2/kai-newsletter
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/cgallic/kai-cmo-harness.git /tmp/kai-cmo-harness
mkdir -p .claude/skills
cp -r /tmp/kai-cmo-harness/harness/skills-v2/kai-newsletter .claude/skills/kai-newsletter
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Kai Newsletter in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Kai Newsletter on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Kai Newsletter is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

/kai-newsletter — An Edition Subscribers Open Twice

Objective

A send-ready newsletter edition: one lead story worth the open, two or three supporting items, one primary CTA, a subject line and preview text that work as a pair, and a segment and send time chosen on purpose. The edition earns the next open — the footer sets expectations for what comes next and when.

Done when

Work type email-lifecycle — floor E5/C3/O3 (harness/eco-floors.yaml, contract harness/skill-contracts/email-lifecycle.yaml).

  • E5 — the ESP reports the send completed with a recipient count reconciled to the approved segment, verified by someone other than the producer. An edition approved in a file is E3.
  • C3 — four_us_score ≥ 10/16, zero Tier 1 banned words, no AI slop, and a named non-producer reads the edition end to end. Unsubscribe handling and sender identity are a C4 field-standard item, not a lint pass — check them against harness/references/advertising-compliance.md before send.
  • O3 — open rate, click rate, reply rate, unsubscribe rate, or revenue per recipient read from the ESP at the 14-day window against a threshold declared before send.

Constraints

  • Subject line: under 50 characters, no spam trigger words, no ALL CAPS. Generate 5+ candidates and pick with a stated rationale.
  • Preview text complements the subject line. It never repeats it.
  • One primary CTA per edition, one secondary at most. Specific action, not "learn more".
  • Gates before delivery: python scripts/quality_gates/four_us_score.py <file> (min 10/16) and python scripts/quality_gates/banned_word_check.py <file> (zero Tier 1). Max 2 retry cycles, each naming the specific failing rule. After 2 failures, surface to a human with the specific failures and log the diagnosis in memory/lessons.md.
  • Writing rules from the harness apply to every section: conditions after the main clause ("Do X if Y") · instructions start with verbs · sentences under 20 words where possible · bold the answer, not the query terms.
  • Match persona language. No corporate filler, no AI slop ("In conclusion", "It's important to note", "In today's rapidly evolving").
  • Any statistic, benchmark, or performance number in the edition needs a real source. Missing data is a gap, not a rounded claim.
  • Kai drafts and schedules recommendations. Sending is a human action against an approved segment.
  • Read MARKETING.md from the project root before asking the user anything. If it does not exist, build it from the codebase — README, manifests, landing pages, route files, analytics and email config — and confirm the draft. Do not open with discovery questions the repo can answer.

Know these before writing (from MARKETING.md first; ask only for what it cannot answer): the edition's goal (nurture, educate, drive traffic, retain) · the persona(s) receiving it · cadence · which existing content is available to feature · brand voice · past performance (open, click, unsubscribe trends) · which list segment gets this edition.

Context

NeedLoad
Newsletter strategy and edition designknowledge/channels/newsletter-strategy.md
Lifecycle email patternsknowledge/channels/email-lifecycle.md
Format contract, word counts, thresholdsharness/skill-contracts/email-lifecycle.yaml
List growth, acquisition budget, subscriber value, list-quality diagnosisknowledge/playbooks/newsletter-growth-economics.md — load only when the request involves these
Persona language and hooksknowledge/personas/_persona-index.md
Unsubscribe, sender identity, CAN-SPAM/GDPRharness/references/advertising-compliance.md
Product, ICP, voice, current channelsMARKETING.md (project root)

Edition structure: hero story or lead piece (the most valuable item, hook in the first line) · 2-3 supporting items (brief summaries with clear value, linking out to the full content) · quick links or resource roundup · CTA · footer that sets the next edition's date and expectation.

Delivered package: final subject line with rationale · preview text · full body (HTML-ready or plain text as requested) · send-time recommendation for the target segment · Four U's scorecard · gate pass/fail summary.

Output goes to workspace/ with the filename pattern newsletter-YYYY-MM-DD.md.

Escalate when

  • The edition has no lead story worth the open — say so rather than promoting filler.
  • A featured claim or statistic cannot be sourced.
  • Past performance data is unavailable and the send time or segment choice would be a guess.
  • Unsubscribe handling, sender identity, or consent basis for the segment is unresolved.
  • The requested segment does not match the edition's content.
  • Gates fail twice for the same reason.

Frequently asked questions

What does the Kai Newsletter AI skill do?

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.

Why use Kai Newsletter on TypingMind?

Because you install it once and use it with any model. Kai Newsletter is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Kai Newsletter in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/cgallic/kai-cmo-harness/tree/main/harness/skills-v2/kai-newsletter. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Kai Newsletter?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Kai Newsletter?

As many as you like. As long as a model supports skills, you can use Kai Newsletter with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Kai Newsletter AI skill free?

It is published on GitHub by cgallic. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇