agentsclimarketplace

Kai gate

Skill cgallic/kai-cmo-harness/harness/skills/kai-gate

Open-source AI CMO for Claude Code: marketing agent skills for SEO, content, email, ads, launches, CRO, AEO/GEO, and AI-search visibility.

Install
npx -y skills add cgallic/kai-cmo-harness --skill kai-gate

Assembled 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

Run Kai CMO Harness quality gates on content. Scores Four U's (Unique/Useful/Ultra-specific/Urgent), checks for banned words and AI slop, runs SEO lint for search content. Use when "score this", "quality check", "run quality gates", "check this content", "four u's score", "banned word check", "SEO lint", or any request to validate content quality before publishing.

SKILL.md

5.7 KB, as published. Nobody here has run it

Kai root note: knowledge/, harness/, and scripts/ paths in this skill live in the Kai install, not the user's project. Resolve them against the first ancestor directory of this SKILL.md that contains a knowledge/ folder (the Kai plugin root, ~/.claude/kai, or the kai-cmo-harness repo). MARKETING.md, memory/, and any output files live in the current project. If a referenced scripts/ command is not available in this install, say so, skip it, and continue with the file-based guidance — never fabricate its output.

Run the Kai CMO Harness quality gate pipeline on a piece of content.

Gate Pipeline

Run all three checks in order:

1. Four U's Score

Score each dimension 1-4:

UQuestionScore
UniqueCan only WE write this? Original data, perspective, or experience?1-4
UsefulCan the reader take action immediately?1-4
Ultra-specificNumbers, named tools, concrete examples?1-4
UrgentIs there a reason to engage today?1-4

Thresholds: 12/16 for blog/SEO/articles. 10/16 for email/ads.

2. Banned Word Check

Instant reject (Tier 1): leverage, utilize, synergy, innovative, deep dive, circle back, touch base, moving forward, at the end of the day

AI slop (also reject): "In conclusion", "It's important to note", "In today's rapidly evolving", "This comprehensive guide", "Without further ado", "It's worth noting that"

Flag exact locations of violations.

3. Voice Pattern Check (programmatic — DO NOT skip)

Binary clichés ("X-not-Y" / "It's not X, it's Y" / "isn't X — it's Y") read as LinkedIn slop and slip past subjective scoring. Run these regexes against the file with the Grep tool. Any match = FAIL.

PatternCatches
, not [a-z]"X, not Y"
— not [a-z]"X — not Y"
\bisn'?t [a-z][^.\n]+ — it'?s\b"isn't X — it's Y"
\baren'?t [a-z][^.\n]+ — they'?re\b"aren't X — they're Y"
\bIt'?s (a|the|an) [^.\n]+, not (a|the|an)\b"It's a/the X, not a/the Y"
\bThat'?s (a|the|an) [^.\n]+, not (a|the|an)\b"That's a/the X, not a/the Y"
\bIf you [a-z][^,.]+, [a-z]"If you X, Y" rhetorical
\bHere'?s the thing\bLinkedIn slop
\bI'?ll be honest\bLinkedIn slop
\bLet that sink in\bLinkedIn slop
\bHot take\bLinkedIn slop

Skip matches inside HTML comments (<!-- ... -->) and code fences (```) — those are scorecard / metadata blocks.

Replacements that work:

  • Collapse to a single load-bearing claim.
  • Use parallel-positive contrast where both halves are positive: "Description is passive. State is something the agent can act on."
  • Use a metaphor: "expensive webhook" not symmetrical reversal.

Project hook integration: if the project has .claude/hooks/voice-gate.py, that hook fires PostToolUse on Edit/Write and catches these patterns at draft time. The gate step still runs the regexes — belt and suspenders.

4. SEO Lint (search content only)

Apply only if the content targets search engines. Check against Algorithmic Authorship rules:

  • Conditions after main clause
  • Instructions start with verbs
  • Sentences under 20 words
  • Bold the answer, not query terms
  • No links in first sentence of paragraphs

For full rule set, read knowledge/frameworks/content-copywriting/algorithmic-authorship.md.

5. Optional Panel Scoring (advisory)

Use panel scoring only when the user asks for a second opinion or the artifact is high-stakes. It does not replace Kai gates and cannot override a hard fail from banned words, source gaps, policy risk, or missing approval.

Recommended panel roles:

  • Audience reviewer: checks persona fit and plain-language clarity
  • Channel reviewer: checks platform fit, format, and norms
  • Proof reviewer: checks source locations, attribution, and unsupported claims
  • Conversion reviewer: checks CTA clarity and objection handling

Output panel scores as advisory notes:

ReviewerScoreConcernSuggested fix
Audience1-5......

Governance rules:

  • Label panel output as simulated review, never expert validation.
  • Do not create fake credentials, endorsements, or named reviewers.
  • Treat missing source locations as a gate issue, not a panel preference.
  • Run panel scoring on drafts first; publishing still requires approval.

Output Format

## Quality Gate Results

**Four U's:** [X]/16 [PASS/FAIL]
- Unique: [X]/4 — [reason]
- Useful: [X]/4 — [reason]
- Ultra-specific: [X]/4 — [reason]
- Urgent: [X]/4 — [reason]

**Banned Words:** [PASS/FAIL]
- [list violations with line numbers, or "None found"]

**AI Slop:** [PASS/FAIL]
- [list violations with line numbers, or "None found"]

**Voice Patterns:** [PASS/FAIL]
- [list X-not-Y / LinkedIn-slop violations with line numbers, or "None found"]

**SEO Lint:** [PASS/FAIL/SKIPPED]
- [list violations, or "All rules pass"]

**Overall:** [PASS/FAIL]

If FAIL: list specific fixes needed. Offer to auto-fix and re-score.

Learning hook

Gate script runs log to data/learning/gate_runs.jsonl automatically. If the same diagnosis fails twice on one piece, append a lesson to memory/lessons.md before escalating (write trigger #3 in memory/MEMORY.md). Recurring failures across pieces get mined by /kai-retro and promoted into new gate checks with golden corpus cases.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.