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…
Checks every claim in a piece of copy (ads, emails, posts, pages, scripts, briefs) against the claims the brand has approved. Keeps, rewrites or cuts each line, and lists the proof that would bring a cut line back. When a line the copy needs has no approval, it asks for a short
$ npx -y skills add gooseworks-ai/goose-skills --skill claims-gate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/claims-gateContext preview
The summary Claude sees to decide when to auto-load this skill.
Checks every claim in a piece of copy (ads, emails, posts, pages, scripts, briefs) against the claims the brand has approved. Keeps, rewrites or cuts each line, and lists the proof that would bring a cut line back. When a line the copy needs has no approval, it asks for a short
name: claims-gate description: >- Checks every claim in a piece of copy (ads, emails, posts, pages, scripts, briefs) against the claims the brand has approved. Keeps, rewrites or cuts each line, and lists the proof that would bring a cut line back. When a line the copy needs has no approval, it asks for a short sign-off on the 3 to 5 lines that matter and records the answer. Use alone when you already have the copy and a brand set up; otherwise run the playbook for the job (e.g. make-static-ads, make-content, write-outreach). version: 0.1.1
One contract for every playbook that writes copy, scripts, briefs, emails, posts, pages or captions. Only this atom ever writes a claim as approved; claims and markers already in the brand (from the GooseWorks app or an earlier brand pass) are read the same way. The calling playbook keeps its own extract step (on-image text, video scenes, page sections) and hands this atom the spans.
Say it to the human in plain words ("two lines need your OK before I use them"), never as tool, fact or playbook names.
**Which path.** When `brain_*` tools are listed, the **brain path** (step 5) decides which claims are approved, and the marker below is not required. Otherwise (production today) the **older path** (steps 1–2) decides. Steps 3, 4, 6, 7 and 8 apply on both paths.
**Local mode** (no GooseWorks, [the `marketing-guide` skill](../marketing-guide/SKILL.md) §5): the contract is `gooseworks-local/<brand-slug>/claims.md`, read and written by [`local-claims.md`](local-claims.md) (next to this file) in place of steps 1–3 and 5. Only a row whose newest status is `approved` and that passes its checks (scope, date, the approver's own words, proof reopened) is usable; declined, pending and retired rows never are. The `dont`s and `must`s come from `brand-notes.md`. §2–4 run as written, with `local-claims.md` for who approves and the record.
1. `gooseworks:brand_read` `sections: ["learnings"]` (lean is enough: it returns every `must` and `dont`). 2. **Older path:** find the **marker**: a `must` fact starting `Claims sign-off (learn-my-brand,` (a fixed format: the opening names its first writer and stays as it is). Read its status token and match it exactly:
3. **Variants and proof** (only when you need a variant or must show proof): `gooseworks:file_read` the current Brand record — the highest `v<N>` in a `gooseworks:file_list` of `brand/records/` (the scope in [the `marketing-guide` skill](../marketing-guide/SKILL.md) §2). Never use search snippets of it: they can come from its "Not approved" or "Retired" tables. 4. **Never approved, whatever the label:** kit `approvedClaims`, `proofPoints`, `valueProps`, `description`; `knowledge_search` `["claim"]` rows; search snippets of any document; the live site; press quotes, reviews or testimonials not on the list; a yes in chat that did not go through §4 below. 5. **Brain path (when `brain_*` tools are listed).** The brain keeps claims with a status (chapter 13, "What we can claim"; older `Claims you may use —` rules sit in chapter 14 with a status too). A claim is usable only if its status is `confirmed` **and** you have opened the full record with `gooseworks:brain_open` and checked it: the exact wording, its scope (product, market, channel), its qualifier, its evidence, and that it hasn't passed its `valid_until` or `recheck_at`. Use it verbatim, within scope, with its qualifier. No marker is needed. A `found`, `guess` or waiting claim is not approved, whatever its wording or whoever said it. If a legacy marker also exists and it and the brain disagree about a line (narrower scope, a retired or declined line), the stricter one wins and you say so. Playbooks never read claims from the brain themselves; they consume them only through this atom. 6. **Always apply** every `dont` (never-say, not public, banned words) and every `must` (policies, qualifiers, terminology). 7. **Plain product facts** are always usable: product name, price, size, listed ingredients or features, how to use, current policies stated in a `must` fact. Never benefit or outcome wording. 8. **Current offers and prices:** the product record's price and `offers` count as plain facts only when the human confirms in this job that they are live (offers carry their end date). Nothing else about an offer ("best price ever", "limited") is a plain fact.
For each claim-like span the caller extracted (copy, headline, on-image text, badge, script line, subject line, caption, page sentence, and what a picture implies): 1. **Puffery or claim?** If a test could prove it false, it is a claim ("lasts 48 hours", "softer than cotton"). Feel and taste words that promise no outcome are puffery ("light, fresh feel"). 2. **Type and risk** from `claim-types.md` (next to this file). Regulated categories (health, beauty, supplements, food, finance, kids) are verbatim only. 3. **Quoted claims are the brand's claims:** a press quote, review or testimonial reused in copy must pass for the claim inside it. 4. **Implied claims count:** a lab coat, a before/after, a "clinically" badge, a product name stretched into a promise. 5. **Named customers, logos and backers.** A named customer, logo, customer result or case study is usable only when the brand confirmed it (a usable claim under §1) — never from the site, the kit or a search hit alone. A plainly test-named brand ("Test Co", "Demo Brand", "asdf") is never offered. A name that matches **another brand in
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,…