SKILL.md
Marketing Loops
A marketing loop is a repeatable workflow run on a cadence: a trigger, bounded steps, a self-check, and an explicit stop condition. A loop missing any of those is a liability, not automation.
Workflow
- Load context. If
.agents/product-marketing.mdor.claude/product-marketing.mdexists, read it first. Only ask for what is missing. - Name the job. What outcome does this loop protect or grow: rankings, ad efficiency, activation, retention, revenue, referrals. One outcome per loop.
- Fill all nine anatomy parts (table below). If you cannot answer self-check, state, and stop concretely, the loop is not ready to run.
- Set the human checkpoint. Auto-drafting is fine. Auto-publishing, auto-sending, or auto-spending needs explicit user authorization plus caps and a kill switch.
- Schedule it. Cron-style schedule for review loops, dynamic pacing for monitor-until-threshold loops, or a manual "run this every Monday" for high-judgment loops. The repeatable body is the value, not the automation.
- Start with one loop. Prove it earns its keep before adding the next.
Loop anatomy (all nine, every time)
| Part | Defines |
|---|---|
| Check cadence | How often the loop looks (weekly, daily, on trigger) |
| Acts when | What must be true to act vs. check and skip |
| Purpose | The one outcome it moves |
| Skills used | Which skills the body orchestrates |
| Loop body | Ordered steps per iteration |
| Self-check | Verification before acting, so it does not act on noise or a tracking bug |
| State / idempotency | Last-run marker, dedupe key, cooldown window. Without it, loops double-act and re-nag |
| Stop / bail-out | When it skips, halts, escalates, or disables itself, plus behavior on error |
| Output | Where results go: file, PR, staged draft, notification |
The check/act split matters. A churn loop checks daily but acts only when an account crosses a threshold and is outside the cooldown window. Conflate them and you either miss the window or spam.
Cadence rule
Match cadence to how fast the signal changes, not how often you want an update.
| Signal | Cadence |
|---|---|
| Rankings, backlinks | Weekly |
| Ad creative fatigue, CPA drift | Every 2-3 days |
| Activation funnel | Weekly (needs volume) |
| Churn signals | Daily or on trigger |
| Content decay | Monthly |
| Competitor changes | Weekly |
| Social mentions | Daily |
Over-frequent loops are the top failure mode: busywork, burned budget, ignored output.
When not to loop
- Strategy or creative direction is the real work. Loops maintain, they do not set positioning.
- The signal is too sparse. A weekly conversion loop on 40 visitors/week measures noise.
- Nobody acts on the output. A report nobody reads is worse than no loop. Delete it.
- The action sends, spends, or publishes without review and the user has not authorized that with caps.
Verification
Dry-run the loop body once by hand. Expect: it completes, the self-check catches a deliberately injected false signal (e.g. fake a metric dip), and the state write prevents a second immediate run from re-acting. If any of these fail, fix the anatomy part before scheduling.
Good vs Bad
Bad: "Every day, check rankings and update meta descriptions for any page that dropped." Daily ranking checks are noise, there is no self-check, no cooldown, and it auto-publishes.
Good: "Weekly: pull ranking deltas. Act only if a page dropped 5+ positions for 2 consecutive weeks and was not touched in the last 30 days. Stage a refresh draft as a PR. Halt and notify if more than 5 pages qualify (likely a tracking or algorithm event, not page decay)."
Completion checklist
- [ ] All nine anatomy parts filled, none marked "n/a"
- [ ] Cadence justified by signal speed
- [ ] Human checkpoint set for any send/spend/publish action
- [ ] State and cooldown defined
- [ ] Stop condition and error behavior defined
- [ ] Dry run passed
Any box unchecked: not done. Fix or say so.
Footguns
- No stop condition. Runaway spend or infinite re-alerting. Fix: every loop gets a bail-out, even heartbeat loops (theirs is "manual disable + halt on error").
- No state between runs. The loop emails the same prospect twice or re-flags the same drop. Fix: persist a last-run marker and a handled set, check them first in the body.
- Building ten loops at once. None get tuned, all get ignored. Fix: one loop, two weeks of runs, then the next.
- Hype framing. "Set it and forget it" and "marketing on autopilot" set false expectations. Describe loops as disciplined systems with checkpoints.