---
name: week-in-review
description: Friday afternoon marketing recap — what shipped, what didn't, what changed in the data, and what to do next week. Pulls from active tasks, outbox history, and (when wired) Postiz/Salesforce/Postiz analytics. Runs as a scheduled routine Fridays 16:00 ET; also invokable manually with "week in review", "weekly recap", "wrap the week", or "Friday brief".
---

# week-in-review

Inspired by [anthropics/marketing/performance-analytics](https://github.com/anthropics/knowledge-work-plugins/tree/main/marketing/skills). The closing-the-loop ritual — what landed, what didn't, what to change.

## When to trigger

- Scheduled routine (Fridays 16:00 ET — see [`tasks/scheduled.md`](../../../tasks/scheduled.md))
- Manual: "week in review," "weekly recap," "wrap the week," "Friday brief"

## Inputs

In priority order:

1. **`tasks/active.md`** — what was open and what closed this week
2. **`assets/outbox/`** — what got produced/sent in the last 7 days
3. **`briefs/calendar.md`** — what was scheduled vs what happened
4. **`briefs/{quarter}-{slug}.md`** — open campaign briefs and their declared metrics
5. **(when wired)** Postiz post engagement, Salesforce lead movement, Google Analytics for blog/landing, GitHub PR activity on `amaro-marketingsite`

## Workflow

1. **Gather context.** Read all the above in parallel.
2. **Build the "what shipped" list.** Each item: what, when, where, link to artifact. Be specific — no "shipped lots of content."
3. **Build the "what didn't" list.** Items that were on the calendar but slipped, items in `#marketer-approve` for >48h, routines that didn't fire. Each with a one-line "why" if known.
4. **Pull metrics if available.** For each shipped item, surface what we know. If no metrics yet (too soon to read), say so explicitly — don't fake numbers.
5. **Identify changes.** What's different about the data vs last week? New audience signal, drop in a particular channel, surge somewhere unexpected, competitor move that landed during the week.
6. **Compare to campaign briefs.** For each open campaign with a kill criterion: are we tracking? If a kill criterion is now triggered, surface it as a top-line item.
7. **Recommend 3 things for next week.** Each with rationale. These become the seed for Monday's `daily-briefing`.
8. **Archive done tasks.** Move closed items in `tasks/active.md` from "Done" section to `tasks/archive/{YYYY-WNN}.md` (create file).
9. **Run brand-voice lint.**
10. **Write to outbox** at `assets/outbox/{YYYY-WNN}-week-in-review.md` with target `slack`, channel `marketer-approve` (gated — owner reviews before any external snippet of this gets shared).

## Output template

```markdown
---
target: slack
channel: marketer-approve
status: pending
created: {ISO timestamp}
created_by: week-in-review
requires_approval: true
window: {YYYY-MM-DD} → {YYYY-MM-DD}
---

# Week in review — {ISO week, e.g. 2026-W18}

## What shipped
- {date} · {channel} · {asset} · {link to artifact} · {early signal if any}
- ...

## What didn't (and why)
- {item} — {one-line why it slipped + recommended next move}
- ...

## What's different in the data
- {observation} — {context}
- ...

## Open campaigns — kill-criterion check
| Campaign | Day in window | On track? | Action |
|---|---|---|---|
| {slug} | Day 5 of 14 | yes / no | {if no, what} |

## Routines health
- daily-briefing: fired {N}/{5} weekday mornings
- competitor-scan: {fired / deferred / failed}
- {other routine}: ...

## Recommendations for next week
1. **{Action}** — {rationale}
2. **{Action}** — {rationale}
3. **{Action}** — {rationale}

## Approval requested
- **What**: archive done tasks, lock recommendations into next week's calendar
- **Where**: `briefs/calendar.md` updates
- **Why**: keep the loop closed
- **Risks**: low — internal calendar moves only
- **Reversibility**: high
```

## Format modes

- **Standard** (default for scheduled run) — all sections.
- **Numbers-heavy** — when invoked manually with "give me the numbers" or after an analytics push, weight toward the metrics sections, lighter on the narrative.
- **Quiet week** — if there's not much to say, don't pad. 4-line recap is fine on a slow week.

## Don't

- **Don't fabricate metrics.** If we don't have GA wired yet, write "metrics pending — manual check needed for {item}." Faking numbers in a recap is the easiest way to lose trust.
- **Don't editorialize what failed.** "Shipped late because I got pulled into a customer call" is fine. "We need to think about how we prioritize" is performance art.
- **Don't recommend more than 3 actions for next week.** If everything is a priority, nothing is.
- **Don't share this externally.** It's an internal Friday ritual. The owner can pull snippets into external comms if useful, but the recap itself stays in.
