Skip to content
Marketing
Skill

/analyze-performance

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?;

BOOST
From plugin
goose-skills
1.3k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill analyze-performance --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/analyze-performance

Context 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?;

SKILL.md

analyze-performance.SKILL.md
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

analyze-performance

What you get

  • **The Monday report** — saved to `reports/performance/<YYYY-MM-DD>.md` and shown in chat, the same shape every week (`references/monday-report.md`); run-paid-campaigns decides and acts on its recommendations.
  • **Learnings** written to the brand brain after the marketer has seen and kept them; ended tests' measured results saved as readouts.
  • **A run record** for next week (`references/run-memory.md`): the per-channel and per-ad scorecards with the trend since last run, each call with its owner, review date and test, and what happened to last week's calls — saved to the brand, so "what worked" and "what to make next" rest on weeks of history, not one week.
  • **Monthly unit-economics read** for plan-campaign's replan; **daily pulse** on request, exception-only (`references/monthly-and-pulse.md`).

Before you start

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).

Steps

**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

Read more
Ships withgoose-skills

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.

Get the whole plugin

Other skills on goose-skills.