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…
Turns findings you already have into a report a marketer can read in 30 seconds. It has a short summary with key findings and how sure each one is, the first move, decisions needed, at most six next moves, what was not checked, and dated sources. It checks length and wording
$ npx -y skills add gooseworks-ai/goose-skills --skill write-report --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/write-reportContext preview
The summary Claude sees to decide when to auto-load this skill.
Turns findings you already have into a report a marketer can read in 30 seconds. It has a short summary with key findings and how sure each one is, the first move, decisions needed, at most six next moves, what was not checked, and dated sources. It checks length and wording
name: write-report description: >- Turns findings you already have into a report a marketer can read in 30 seconds. It has a short summary with key findings and how sure each one is, the first move, decisions needed, at most six next moves, what was not checked, and dated sources. It checks length and wording before handing over, then saves the report to the brand. Use alone when you already have the findings and their sources; otherwise run the playbook for the job (e.g. research-market, research-competitors, plan-campaign). version: 0.1.1
Every playbook that hands over research, a plan, a strategy or a report writes it through this atom.
**The 30-second test.** A marketer who reads only the top knows what you looked at, what you found and how sure you are, and what to do first — and can judge the move from the findings right above it. If not, rewrite the top.
**Shape, in this order:** 1. **Title**: what it is, for which brand, the date. Example: "GooseWorks — market research, 18 Oct 2026". 2. **In short**, **at most 150 words**, in this order:
3. **Decisions for you**: a short dated box — each decision with your recommendation, the section it rests on ("see How they compare"), and the date it matters by, if any. 4. **The story**: context → what we found → what it means for you → what to do. Each section opens with its point in one sentence, then the evidence. Where a finding means nothing for this brand, say "nothing to do here" rather than invent a move. 5. **What to do**: **at most 6** numbered moves, each with who does it, what it needs, and how we will know it worked. 6. **What we're not doing, and why**: the tempting moves you decided against, one line each — where herd-following and over-reaction get stopped. 7. **What we couldn't check**: one line each, with why. 8. **Sources**: links, dated, at the end, plus one line on **source skew** ("Most buyer quotes come from Trustpilot, which over-represents complaints").
**Length:** the body (everything after "In short") stays under **3,000 words**. Cut repetition and detail no decision needs. An appendix may hold specialist tables; the report must work without it.
**Agree with the sibling reports, or say why not.** Before writing, read every same-brand report from the last 14 days whose job overlaps (market, competitors, audience, a campaign or social plan, outreach) — saved documents (`brain_search` where listed, else `knowledge_search`; local mode: `gooseworks-local/<brand-slug>/` instead) and the local `gooseworks-reports/<brand-slug>/` folder. Compare lead buyer, first move, positioning and prices. A different lead buyer or first move is named in "In short" (anything else, in the story) and settled: merge the two first moves, or say why this one wins.
**A worked example of the top:** [`example-top.md`](example-top.md), next to this file (a fictional brand — never reuse its names, numbers or findings). Read it before writing your first In short.
**Language:** plain words, short sentences, active voice; one idea per paragraph; bullets, tables for comparisons, **bold** on what matters. Every fact carries a date and a link, inline: "Loxo starts at $149/user/month ([pricing](https://…), 17 Oct)". A fact from a file the marketer gave (an export, a screenshot) links to that file in their folder under a readable name ("[your Shopify export, 6–12 Oct](<file>)"); the path sits only inside the link. In a hosted chat with an uploaded file, name the file and its date. Say how sure with the three words above — confirmed, likely, first look (anything weaker, "provisional" or "a guess", is a first look, with why) — the same word in "In short" as in the body; never scores or made-up percentages.
**Never in a report:** the banned words in §3; field dumps, JSON or raw lists of everything collected; hedging filler, empty headings. **One exception:** two or three outside tools the marketer must run themselves (an email finder, an email platform), named as examples, never an endorsement — the guide's rule ([the `marketing-guide` skill](../marketing-guide/SKILL.md) §3, "Talking to the marketer").
Do all that apply. Never leave a report only on the GooseWorks server.
1. **Host with files (Claude Code, Codex, Cursor):** write it as Markdown in the marketer's current folder at `gooseworks-reports/<brand-slug>/<YYYY-MM-DD>-<topic>.md`, give a clickable link, `[<title>](gooseworks-reports/…)`, and offer to open it. If the host can render a page or artifact, use that too. **Never overwrite a report:** suffix the local file, the brand copy's path and its title by save-to-brain's never-overwrite rule (the `save-to-brain` skill (`../save-to-brain/SKILL.md`) step 1). 2. **Hosted chat (Claude.ai, ChatGPT):** an artifact or document if the host can; otherwise the full report in the chat, with its headings, not a summary. 3. **With GooseWorks connected, always** save it to the brand through the `save-to-brain` skill (`../save-to-brain/SKILL.md`), then get a link with `gooseworks:file_url`: "Saved to your brand: [open](<link>)".
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,…