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…
Weekly performance read across every channel we run: what worked, why, and what to make next, judged on the business's real number (store revenue, qualified pipeline, retained users), not platform claims. Use when: write my Monday report; how are my ads doing — which ad won?;
$ npx -y skills add gooseworks-ai/goose-skills --skill analyze-performance --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/analyze-performanceContext preview
The summary Claude sees to decide when to auto-load this skill.
Weekly performance read across every channel we run: what worked, why, and what to make next, judged on the business's real number (store revenue, qualified pipeline, retained users), not platform claims. Use when: write my Monday report; how are my ads doing — which ad won?;
name: analyze-performance description: >- Weekly performance read across every channel we run: what worked, why, and what to make next, judged on the business's real number (store revenue, qualified pipeline, retained users), not platform claims. Use when: write my Monday report; how are my ads doing — which ad won?; are my ads actually making money (Meta says 4x ROAS but revenue is flat); why did sales drop this week; did the test win; is my tracking working; monthly numbers for the replan; anything on fire today. Not for acting on the recommendations (pausing, scaling, launching) — use run-paid-campaigns; not for replanning the budget — use plan-campaign. version: 0.1.1
1. **Setup first:** do the `marketing-guide` skill (`../marketing-guide/SKILL.md`) §1–2 (connect, brand, brain read) before anything else; the job line is "read your results". This playbook offers **local mode** (marketing-guide §5): with no GooseWorks it reads through the marketer's connectors, else exports and screenshots, and keeps the contract, reports and run records in the local folder. A missing connection is never a blocker: say in one line what this read can and can't see, and go on. 2. **Read the brain and the plan** (free; local mode: `references/local-mode.md` instead). Brain chapters: 18 "How we count results", 20 "Our plan" (targets, decisions, experiments), 22 "Everything we have made and run", 23 "What is working" (readouts, worn-out angles, lessons). Fallback path: `brand_read` sections `summary, kit, products, learnings, onboarding, accounts`, and `knowledge_search` `["learning"]` for past results. Then `gooseworks:campaign_read` — live briefs (Economics, targets, Test plan, Measurement plan, Replan triggers, the change-log slug in Status); workspace (`gooseworks:file_list` / `file_read`): `reports/performance/definitions.md`, the latest dated report and its Decisions, `ads/campaigns/<slug>/state.md` (frontmatter `meta_push_ids`, health line, open recommendations) and the `### YYYY-MM-DD — <title>` blocks of `decisions.md` (what was actually done — written by run-paid-campaigns and the server), make-static-ads' batch files `ads/batches/<YYYY-MM-DD>-<slug>.md` (creative id → angle, hook, test; picks), `lifecycle/program.md` (which flows exist), the newest `research/competitors/watch/<YYYY-MM-DD>.md` (line 2), and research-market's "What people are saying" section — in the newest `research/market/<D>-read.md` (mentions, sentiment, trends, risks; check the section's own window line before treating it as this week's, and read share of voice only if it is there). 3. **Load the last runs** — the Start steps of the `run-memory` skill (`../run-memory/SKILL.md`) for this job (`weekly performance read`, `monthly read` or `daily pulse`; `references/run-memory.md`): the last record, plus up to four weekly records back for the scorecards and angle history; every earlier call checked against a source; run-paid-campaigns' newest run record for each campaign (its money moves and verdicts). No record → say it's the first read; this run's numbers become the baseline. 4. **Company type and referee** — `references/measurement-contract.md` §1. The type decides the referee, the ranking metric, the cadence (B2B under ~20 SQLs a month: weekly = leading indicators, pipeline monthly; services: monthly) and the inputs. 5. **One message, once; nothing asked mid-run.** Its contents and the export cheat sheet are `references/measurement-contract.md` §4 (minimum useful read first, history once, big exports in a hosted chat). Add what only this run knows: on the first run, the contract draft with defaults pre-filled (ask only the number and target, margin %, timezone — never technical settings), the roster to confirm, and which store, CRM, billing or analytics tool holds the referee unless the brain or a listed connector shows it (marketing-guide §3, "The marketer's own tools"; with none, that leg runs claims-only meanwhile); exports named in the last record's "Not checked" line, by name; the paid run's needs (`references/run-memory.md` § What the one input message also asks for). Missing items are "not checked this week"; a missing referee → **claims-only mode** (`references/measurement-contract.md` §5).
GooseWorks reads (connected only): `gooseworks:meta_read` performance view (Goose ads only, trailing windows ranked by spend — to identify Goose ads and cross-check, not as the week's totals); `gooseworks:social_account_list` + `gooseworks:social_analytics_get` (the brand's TikTok/Instagram accounts — other platforms come from the marketer); `gooseworks:ads_creative_read` (statics' lower-case tags, e.g. `angle:a-07`, `picked`; the batch file is the fallback when tags are missing) and `gooseworks:video_read` (videos' angle and hook names; a video without them is unannotated; an older `ads/videos/<project_id>.md` note is read only if it exists).
**Route first.** "Anything on fire today?" → run Before you start 1–3, then only the pulse in `references/monthly-and-pulse.md` — no input message, no contract. "Monthly numbers / replan" (or the first M
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,…