AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Content Retro

skill-cgallic-kai-cmo-harness-content-retro · by cgallic

Analyze content performance patterns. Extract what works (hook types, formats, personas). Auto-update learned defaults so future content improves.

— No reviews yet
0 installs
31 views
0.0% view→install

Install

$ agentstack add skill-cgallic-kai-cmo-harness-content-retro

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • ✓ Prompt-injection patterns
  • ✓ Secret / credential exfiltration
  • ✓ Dangerous shell & filesystem operations
  • ✓ Untrusted network calls
  • ✓ Known-malicious package signatures

What it can access

  • ✓ Network access No
  • ✓ Filesystem access No
  • ✓ Shell / process execution No
  • ✓ Environment & secrets No
  • ✓ Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-cgallic-kai-cmo-harness-content-retro)

Reliability & compatibility

✓ Security review passed
0 installs to date
— no reviews yet
● 3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Content Retro? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

/content-retro — The CMO's Feedback Loop

Analyze what's working across your published content. Extract winner patterns and auto-update the system's learned defaults so future content improves without manual tuning.

This is the skill that closes the loop. Everything upstream — /content-brief, /content-write, /content-gate — reads the defaults this skill updates.

Preamble

source "$(dirname "$0")/../lib/preamble.sh"

The Skill

Step 1: Load Performance Data

Read ~/.kai-marketing/content-log.jsonl and filter for pieces with performance_30d set (not null).

If fewer than 5 graded pieces exist, tell user: "Need 5+ graded pieces for reliable pattern extraction. You have {N}. Run /content-report to grade pending pieces, or publish more content."

Step 2: Pattern Analysis

Analyze the graded pieces for statistical patterns. For each dimension, compare winner rates:

Dimensions to analyze:

  • Hook type: Which hook types (curiosity gap, social proof, pain agitate, contrarian, data-led) produce more winners?
  • Format: Which formats (blog, linkedin, email, etc.) perform best?
  • Persona: Which personas produce winners?
  • Word count range: Is there a sweet spot?
  • Publish day of week: Does timing matter?
  • Quality gate score: What score range correlates with winners?

Statistical threshold: A pattern is significant only when:

  • n >= 5 samples for that dimension value
  • Winner rate delta >= 15% above baseline

Step 3: Display Findings

CONTENT RETRO — Pattern Analysis
══════════════════════════════════════════

Data: {N} pieces analyzed ({winners} winners, {avg} average, {under} underperformers)

SIGNIFICANT PATTERNS (n≥5, delta≥15%):

  Hook Type:
    curiosity_gap:  72% winner rate (n=7)  ← +22% above baseline
    social_proof:   40% winner rate (n=5)  ← baseline
    pain_agitate:   33% winner rate (n=6)  ← -17% below baseline

  Persona:
    Shock Absorber: 80% winner rate (n=5)  ← +30% above baseline
    Competent Cog:  50% winner rate (n=8)  ← baseline

  Format:
    blog:           65% winner rate (n=12) ← +15% above baseline

NOT ENOUGH DATA:
  - Publish day: need 5+ per day (max is 3 for Tuesday)
  - Word count: need 5+ per range

Step 4: Update Learned Defaults

For each significant pattern, propose updating the learned defaults:

"Found {N} significant patterns. Update learned defaults?"

If user approves:

  1. Backup the current defaults: copy ~/.kai-marketing/marketing-defaults.md to ~/.kai-marketing/marketing-defaults.md.bak
  1. Write updated defaults to ~/.kai-marketing/marketing-defaults.md:
# Learned Defaults — Auto-Generated by /content-retro
# Last updated: {date}
# Based on: {N} pieces analyzed

## Hook Preferences
- Prefer curiosity_gap hooks (72% winner rate, n=7)
- Avoid pain_agitate hooks when alternatives exist (33% winner rate, n=6)

## Persona Preferences
- Shock Absorber persona produces strongest results (80% winner rate, n=5)

## Format Preferences
- Blog format outperforms others (65% winner rate, n=12)

## Quality Floor
- Winners average gate score: {avg_winner_score}/100
- Minimum gate score for publish: {recommended_threshold}
  1. Also write findings to ~/.kai-marketing/what-works.md (backup first):
# What Works — Pattern Archive
# Auto-updated by /content-retro

## {date} Analysis ({N} pieces)
{summary of findings}

Step 5: Confirm the Loop

Tell user: "Defaults updated. Next /content-brief and /content-write will use these patterns automatically."

Show the chain:

/content-retro just updated → marketing-defaults.md
  └→ /content-brief reads defaults → better briefs
      └→ /content-write reads defaults → better content
          └→ /content-gate scores → better pass rate
              └→ /content-report grades → more winners
                  └→ /content-retro analyzes → loop continues

Error Handling

  • Not enough data (n<5): Show what data exists, suggest publishing more
  • what-works.md corrupted: Restore from .bak if available, otherwise start fresh
  • No performance data: Direct to /content-report first

Chain State

Reads from: ~/.kai-marketing/content-log.jsonl (graded entries) Writes to: ~/.kai-marketing/marketing-defaults.md, ~/.kai-marketing/what-works.md Read by: /content-brief, /content-write (next cycle)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.