creative-health

Installation
SKILL.md

/digital-marketing-pro:creative-health

Purpose

Monitor creative health across all active advertising. Score each creative for fatigue risk, predict when fatigue will impact performance, generate refresh recommendations with specific change suggestions, and create A/B test plans for fatiguing creatives. Creative fatigue is one of the fastest ways to waste ad spend — a high-performing ad that ran too long silently bleeds money as CTR drops, CPM rises, and engagement fades. This command catches fatigue before it costs you, tells you exactly what to change, and gives you a structured test plan to validate the refresh. It covers the full creative lifecycle from launch through maturity to decline, so you always know which creatives are earning their spend and which need attention.

Input Required

The user must provide (or will be prompted for):

  • Active creatives with performance data: A list of currently running creatives, each with: creative ID or name, channel (paid social, display, search, email, video), current performance metrics (impressions served, frequency or average times shown per user, current CTR, current CPM or CPC, current engagement rate), baseline metrics from the creative's first 7-14 days (baseline CTR, baseline CPM, baseline engagement rate), days running since launch, audience size the creative is serving, and current daily or weekly spend. Can be provided as exported data or pulled from connected ad platform MCPs
  • Channel context: Which advertising channels the creatives run on — Meta Ads, Google Ads, TikTok Ads, LinkedIn Ads, display networks, programmatic, or email. Each channel has different fatigue dynamics (social fatigues faster than search, video fatigues differently than static)
  • Refresh constraints (optional): Any constraints on creative refreshes — brand guidelines that limit visual changes, approval processes that add lead time, production capacity (how many new creatives can be produced per week), or budget for creative production. These constraints shape the refresh recommendations to be actionable within real-world limits
  • Performance thresholds (optional): Brand-specific thresholds for when a creative is considered "fatigued" — e.g., "CTR drops 30% from baseline" or "CPM increases 25% from baseline." If not provided, industry-standard thresholds are applied per channel

Process

  1. Load brand context: Read ~/.claude-marketing/brands/_active-brand.json for the active slug, then load ~/.claude-marketing/brands/{slug}/profile.json. Apply brand creative guidelines, historical creative performance benchmarks, known fatigue patterns from past campaigns, and production capacity constraints. Also check for guidelines at ~/.claude-marketing/brands/{slug}/guidelines/_manifest.json — if present, load visual identity restrictions and messaging guardrails that constrain refresh options. Check for agency SOPs at ~/.claude-marketing/sops/. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with industry defaults.
  2. Score each creative's health: Execute creative-fatigue-predictor.py with the performance data for each creative. The scoring model evaluates five fatigue signals — CTR ratio (current vs baseline, weighted 30%), CPM ratio (current vs baseline, weighted 25%), engagement ratio (current vs baseline, weighted 20%), frequency or impression saturation (weighted 15%), and time running relative to channel norms (weighted 10%). Each creative receives a health score from 0-100 where 100 is peak health and 0 is fully fatigued, plus a fatigue stage classification: Fresh (80-100), Mature (60-79), Fatiguing (40-59), Fatigued (20-39), or Exhausted (0-19).
Related skills
Installs
31
GitHub Stars
100
First Seen
Feb 27, 2026