skills/marketing-loops/references/loop-catalog.md
A library of repeatable marketing loops with thorough coverage across the funnel. Each is a complete, adaptable spec. Pick the closest match, then tune the cadence, thresholds, state handling, and human checkpoints to the user's product, stage, and tooling.
Every loop lists nine parts: Check cadence · Acts when · Purpose · Skills used · Loop body · Self-check · State / idempotency · Stop / bail-out · Output. See SKILL.md for the anatomy, the cadence rule, and when not to loop.
Two rules that apply to every entry:
Loops are grouped by function. Naming follows the "The X loop" convention.
seo-audit, programmatic-seo, content-strategyseo-audit, analyticscopy-editing, seo-audit, content-strategyseo-audit, site-architecture, content-strategyprogrammatic-seo, seo-auditsocial, content-strategy, copywritingcontent-strategy, marketing-ideas, seo-auditads, ad-creative, analyticsinputs/winning-ads/ and inputs/reviews/ (required; inputs/comments/ and brand/ strongly recommended, matching ad-creative's grounding rules). If a required input is empty, the loop asks for inputs instead of generating.ad-creative (Mode 3 + static ad template library), customer-researchinputs/winning-ads/, inputs/reviews/, inputs/comments/, and brand/.outputs/YYYY-MM-DD/ with an INDEX.md (template type + grounding per concept).inputs/winning-ads/ with anything that scaled and prune stale examples; monthly, refresh inputs/reviews/ and inputs/comments/ and re-check the voice doc. Stale inputs are this loop's failure mode — output quality tracks input freshness, not run count.ads). If nothing launched or nothing cleared thresholds, note that and skip.ad-creative (Mode 4 + creative-roadmap reference), ads (decision thresholds), analyticsretros/YYYY-MM.md): winners with the why, losers with funnel-stage diagnosis, single-metric wins, learnings, kills.retros/YYYY-MM.md exists. The roadmap file is the shared state; never fork it.ads, analyticsads, analyticscro, analyticspublic-relations, socialsocial (see its references/listening.md), community-marketingcommunity-marketing, socialcompetitor-profiling, competitors, product-marketingpublic-relations, seo-auditdirectory-submissionsco-marketing, referralsonboarding, analytics, crosignup, cro, analytics, ab-testingab-testing).ab-testing.lead-magnets, free-tools, cro, popupsonboarding, emails, analyticschurn-prevention, analytics, emailsemails, analytics, copy-editingemails, sms, offersemails, analyticscustomer-research, churn-prevention, referrals, copywritingchurn-prevention); promoters → referral/review ask (referrals); recurring pain/desire → experiment + copy inputs.emails, paywalls, analytics, offersanalytics, sales-enablement, revopspricing, ab-testing, croab-testing; promote a clean winner.paywalls, ab-testing, analyticsab-testing.revops, sales-enablement, emailsrevops, emailsreferrals, emailssocial, referrals, sales-enablement, crosales-enablement, social, crosales-enablement, customer-research, referralsanalytics, marketing-plan, marketing-ideasab-testing.ab-testing (owner), cro, analyticsab-testing; if a test concluded there, log the learning.ab-testing's job.ab-testing).analyticssocial, public-relationsanalyticsanalytics, marketing-planTo adapt a loop: keep all nine anatomy parts, swap skills/thresholds for the user's stack, and re-tune cadence to signal speed. To author a brand-new one: use loop-template.md (copy-paste template + fill-in prompts + worked example + ship checklist). Either way, do not ship a loop until every part is filled — especially State / idempotency, Self-check, and Stop / bail-out. A loop without those isn't a system; it's a way to do the wrong thing on a schedule, repeatedly, to the same people.