ad-policy-check
Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the…
Step of the plan-campaign playbook: marks each candidate channel Run, Test, Later or No with a brand-fact reason and founder hours. Run plan-campaign instead; not for direct use.
$ npx -y skills add gooseworks-ai/goose-skills --skill plan-campaign-channel-decision --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/plan-campaign-channel-decisionContext preview
The summary Claude sees to decide when to auto-load this skill.
Step of the plan-campaign playbook: marks each candidate channel Run, Test, Later or No with a brand-fact reason and founder hours. Run plan-campaign instead; not for direct use.
name: plan-campaign-channel-decision description: >- Step of the plan-campaign playbook: marks each candidate channel Run, Test, Later or No with a brand-fact reason and founder hours. Run plan-campaign instead; not for direct use. version: 0.1.1
**Load:** `../plan-campaign/references/channel-decision.md`.
**Inputs:** brand type and distribution footprint (where the product is sold); buyer groups and demand read (`research/audience/buyer-groups.md`, `research/market/demand.md`); landscape and where competitors invest (`research/competitors/landscape.md`, competitor files, `competitor_read` roster); the economics box and per-leg minimums; creative capacity (which makers and how much volume; past creative in `ads_creative_read`); tracking state; email list size; learnings log; the founder's hours; channels already committed or off-limits; existing campaign concepts (`campaign_read`).
**Do:** 1. Write every mandatory row, then the rows live for this brand type; one line "not relevant: <reason>" for conditional rows that are not. 2. For each row answer the seven lenses in your head; write the **deciding** reason in plain words with a brand fact, the evidence, how sure you are in words, and, unless kept, what would change it. 3. Prefer one or two channels done properly. A judgment-only Run becomes a Test. Novelty is never a reason. No default channel. 4. Mark execution per leg: GooseWorks levers (Meta objects it creates or pushes into) or written instructions / human hands. Add founder hours per leg; if the total exceeds what the founder has, cut a leg and say which. 5. Zero paid is allowed: state it in the paid rows with the numbers.
**Output:** the brief's `### Channel decisions` section and founder-hours line.
**Never:** a row without a brand-fact reason; "doesn't fit our audience" without saying who the audience is and where they are.
Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.
Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the…
Step of the analyze-performance playbook: calls ended tests, scores last week's calls, writes this week's kill/scale/hold calls…
Step of the analyze-performance playbook: flags tracking breaks with fixes and explains each big metric move with evidence,…
Step of the analyze-performance playbook: gathers the week's numbers from tools, exports and pastes, cleans them, and writes the…
Step of the analyze-performance playbook: ranks creative by angle, hook and format with spend gates, writes short per-channel…
Step of the analyze-performance playbook: joins cleaned store or CRM numbers with ad spend to build the business-truth table,…