---
name: weekly-creative-report
description: Activates when the user asks for their Monday creative report, weekly leaderboard, week-over-week ad performance summary, or wants to know what changed in their Meta Ads account this week. Designed to replace the Monday morning routine of logging into Motion or another analytics dashboard. Generates a leaderboard, fatigue alerts, kill list, and scaling recommendations in a scannable email-friendly format.
---

# Weekly Creative Report Skill

The Monday morning habit. Generates a structured weekly report on what's working, what's dying, and what to do about it. Designed to replace the Motion dashboard scroll with a 2-minute Claude Code command.

## Activation Rules

Activate when:
- The user asks for "the weekly report," "Monday report," "weekly leaderboard," or anything similar
- The user runs the `/weekly-creative-report` slash command
- A scheduled cron job triggers the skill on Monday mornings

## Prerequisites

- creative-analyzer skill is installed (this skill chains into it)
- Meta Ads MCP connected
- At least 2 weeks of ad data in the account (so week-over-week comparisons are meaningful)

---

## Report Structure

The output is designed to be skimmable in 60 seconds. Every section serves a different reader question.

### Section 1: Executive Summary (60-second read)

Three sentences max. Answer:
1. What's the biggest move this week?
2. What's the most important pattern?
3. What's the one action item?

Example:
> Three new winners emerged this week, all in the problem+sarah cohort, suggesting that hook-persona match remains your dominant performance driver. Two ads moved from WARNING to CRITICAL fatigue and need immediate refresh. Top action: pause vitapure_curiosity_marcus_studio_v1 (ROAS 0.3, $340 spent) and produce 4 new variations of vitapure_problem_sarah_minimal for next week.

### Section 2: Creative Leaderboard (top 10 ads ranked by ROAS)

Format:
```
RANK  AD NAME                                    SPEND   ROAS   CTR    7D CHANGE
─────────────────────────────────────────────────────────────────────────────────
 1    vitapure_problem_sarah_minimal_v1          $890    3.4    2.1%   ↗ scaling
 2    vitapure_problem_sarah_lifestyle_v1        $620    2.8    1.9%   ↗ scaling
 3    vitapure_benefit_dana_lifestyle_v1         $480    2.4    1.7%   → stable
 4    vitapure_problem_marcus_minimal_v1         $410    2.1    1.6%   ↘ declining
 5    vitapure_social_dana_ugc_v1                $390    1.9    1.4%   ✦ new
 ...
```

Trend arrows:
- `↗ scaling` — ROAS up 15%+ vs. last week
- `→ stable` — ROAS within ±15% of last week
- `↘ declining` — ROAS down 15%+ vs. last week
- `✦ new` — first full week of delivery
- `⊘ paused` — currently paused, included for reference

### Section 3: Fatigue Watch

Ads that moved into a more critical fatigue state this week.

```
NEW THIS WEEK:
  WARNING: vitapure_benefit_sarah_lifestyle_v1 (CTR -22% vs. first week)
  WARNING: vitapure_social_dana_minimal_v1 (frequency 3.2, CTR declining)
  
ESCALATED:
  CRITICAL: vitapure_curiosity_marcus_studio_v1 (was WARNING last week; CPA +34%)
  CRITICAL: vitapure_benefit_dana_minimal_v1 (was WARNING last week; both triggers)

RECOVERED (no longer fatigued):
  HEALTHY: vitapure_problem_sarah_minimal_v1 (refreshed last Tuesday, CTR back to baseline)
```

### Section 4: Kill List

Ads to pause this week, ranked by urgency.

```
URGENT (pause today):
  vitapure_curiosity_marcus_studio_v1 → ROAS 0.3, $340 spent, no path to recovery
  vitapure_curiosity_dana_studio_v1 → ROAS 0.4, $280 spent, no path to recovery

CONSIDER PAUSING (review and decide):
  vitapure_benefit_marcus_minimal_v1 → ROAS 1.2, $190 spent, below account average
```

### Section 5: Winners to Scale

Ads performing well that could absorb more budget.

```
SCALE OPPORTUNITIES:

vitapure_problem_sarah_minimal_v1
  Current: $50/day → Suggested: $90/day
  Reason: ROAS 3.4 with 18 days of delivery, no fatigue indicators, frequency 2.1

vitapure_problem_sarah_lifestyle_v1
  Current: $50/day → Suggested: $80/day
  Reason: ROAS 2.8 with 18 days of delivery, scaling trend, frequency 1.9
```

### Section 6: Pattern Recap (compressed version of creative-analyzer's pattern insights)

```
HOOK PERFORMANCE THIS WEEK:
  problem    █████████████████ 2.9 ROAS  (6 ads, $1,840)
  benefit    █████████ 1.7 ROAS         (6 ads, $1,200)
  social     █████████ 1.5 ROAS         (6 ads, $890)
  curiosity  ███ 0.8 ROAS               (6 ads, $720)

PERSONA PERFORMANCE THIS WEEK:
  sarah      ██████████████████ 3.1 ROAS (6 ads, $1,920)
  dana       █████████ 1.8 ROAS         (6 ads, $1,140)
  marcus     ██████ 1.2 ROAS            (6 ads, $890)
  jordan     ███ 0.7 ROAS               (6 ads, $700)

WINNING COMBINATION: problem + sarah (any style) → ROAS 3.2 average across 8 ads
```

### Section 7: This Week's Action Items

```
1. PAUSE today: vitapure_curiosity_marcus_studio, vitapure_curiosity_dana_studio
2. SCALE today: vitapure_problem_sarah_minimal (+$40/day), vitapure_problem_sarah_lifestyle (+$30/day)
3. REFRESH this week: vitapure_curiosity_marcus_studio_v1 → CRITICAL, schedule replacement
4. PRODUCE for next week: 4-6 new variations of problem+sarah, drop curiosity entirely
   → Run /creative-strategist to generate the brief
   → Then /build-matrix → /generate-from-matrix → /bulk-upload
```

---

## Slash Commands

### `/weekly-creative-report`

Generate the full report.

**Default behavior:** Pull last 7 days of data, compare to previous 7 days, output the full 7-section report.

### `/weekly-creative-report --short`

Skip sections 5-7 (scale opportunities, pattern recap, action items). Useful for a quick Monday morning skim.

### `/weekly-creative-report --email [recipient]`

Generate the report and send via email instead of displaying in Claude Code. Requires an email-sending tool to be connected (Resend MCP, SendGrid, etc.).

### `/weekly-creative-report --to-file [path]`

Save the report to a markdown file instead of displaying. Useful for archiving or sharing.

```
/weekly-creative-report --to-file ./reports/2026-08-04-weekly.md
```

### `/cron-setup`

Print the crontab entry needed to schedule this report to run automatically every Monday at 7am.

```
# Run weekly creative report every Monday at 7am
0 7 * * 1 cd /path/to/project && claude -p "/weekly-creative-report --to-file ./reports/$(date +%Y-%m-%d)-weekly.md"
```

---

## Cross-Skill Integration

**This skill calls:**
- creative-analyzer (for the underlying analysis)
- The connected Meta Ads MCP (for week-over-week data pulls)
- brand-kit (for thresholds and naming convention parsing)

**Output flows to:**
- The user's inbox or Claude Code terminal
- Optionally, a file in `./reports/`
- The action items inform the next batch via creative-strategist + static-ad-designer

---

## Notes

- Run this every Monday morning. The habit matters more than the precision. A weekly review at 80% accuracy beats no review at 100% accuracy.
- For agencies managing multiple client accounts, run this skill once per client. Save reports with a client identifier in the filename: `vitapure-2026-08-04.md`, `evergreen-2026-08-04.md`, etc.
- The trend arrows in the leaderboard are calculated against the previous 7-day window, not 30-day or trailing average. This intentionally surfaces short-term momentum, which is what matters for daily decisions.
