agentsclimarketplace

Marketing sprint

Skill cgallic/kai-cmo-harness/legacy/marketing-sprint

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 marketing-sprint

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 the full content pipeline in one command — brief, write, gate, log. Progress updates between steps. 5-minute timeout with partial state recovery.

SKILL.md

3.3 KB, 863 tokens by cl100k_base, as published. Nobody here has run it

/marketing-sprint — The Full Pipeline

One command, full pipeline. Chains /content-brief/content-write/content-gate → log in a single interactive session. Shows progress between each step.

This is the marketing equivalent of gstack's /ship.

Arguments

Required:

  • format: Content format (blog, seo, linkedin, etc.)
  • site: Site key
  • keyword: Target keyword in quotes

Example: /marketing-sprint blog kaicalls "AI receptionists for law firms"

The Skill

Step 1: Brief (60 seconds)

Show: "Step 1/4: Generating brief..."

Run the brief generation:

kai-brief --format {format} --site {site} --keyword "{keyword}" --output json

Display the brief summary. Save to ~/.kai-marketing/briefs/.

If brief generation fails, stop and show the error. Save partial state: "Sprint stopped at Step 1. Fix the error and resume with /content-brief {format} {site} \"{keyword}\""

Step 2: Write (120 seconds)

Show: "Step 2/4: Writing content using {framework} + {persona}..."

Using the brief from Step 1, write the content following the same process as /content-write:

  • Load framework files
  • Load persona
  • Load learned defaults
  • Write the piece
  • Save to ~/.kai-marketing/drafts/

If writing fails, save partial state with the brief: "Sprint stopped at Step 2. Brief saved. Resume with /content-write"

Step 3: Gate (30 seconds)

Show: "Step 3/4: Running quality gate..."

Score the draft:

kai-gate score {draft_path} --format json

Display the scorecard summary:

Gate: {score}/100 ({grade}) — {PASS|FAIL}
  AA: {aa}%  |  GEO: {geo}%  |  CS: {cs}%  |  4U: {4u}/16

If gate fails: Attempt one auto-revision (fix only failing rules). Re-score. If still fails after 1 retry in sprint mode, show failures and stop: "Sprint paused at gate. Run /content-gate to review failures in detail."

Step 4: Log (5 seconds)

Show: "Step 4/4: Logging content..."

Append to ~/.kai-marketing/content-log.jsonl and create pending check in ~/.kai-marketing/pending/.

Completion

MARKETING SPRINT COMPLETE
══════════════════════════════════════════

Brief:    ~/.kai-marketing/briefs/{filename}
Draft:    ~/.kai-marketing/drafts/{filename}
Gate:     {score}/100 ({grade}) — PASS
Logged:   {id} — 30-day check scheduled for {date+30}

Total time: {elapsed}

Next: Publish the draft, then run /content-report in 30 days.

Timeout and Recovery

Total timeout: 5 minutes. If any step exceeds its budget:

  • Step 1 (brief): 60s
  • Step 2 (write): 180s (includes LLM call)
  • Step 3 (gate): 60s
  • Step 4 (log): 10s

On timeout, save partial state and tell user which step to resume from.

Error Handling

  • Any step fails: Save partial state, show which step failed, suggest resume command
  • LLM timeout: "LLM timed out at Step {N}. Partial state saved. Resume with /{skill_for_step}"
  • Config missing: Direct to kai-config init

Chain State

Writes: Brief, draft, gate result, content log entry, pending check Reads: Config, frameworks, personas, learned defaults

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 327,132. 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.