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.
npx -y skills add cgallic/kai-cmo-harness --skill marketing-sprintAssembled 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.