answer-ads-questions
Answer questions about a brand's Meta ads (spend, results, which ad is winning, is it paused, why did Goose do that) only from reads made in the same turn,…
The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's
$ npx -y skills add gooseworks-ai/goose-skills --skill ad-management-intake --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ad-management-intakeContext preview
The summary Claude sees to decide when to auto-load this skill.
The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's
name: ad-management-intake description: The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's stable facts (ads/brand.md), the campaign brief, and a log of what was asked vs assumed. Use it when someone wants to run Meta ads and the brand's ad facts are not yet recorded.
**What this does.** Someone says "I want to run ads on Meta." A good agency would not hand them a twenty-field form. It would read their website first, come back with "here's what I think your business looks like", and ask only the few things it cannot know and cannot afford to get wrong. This skill is that conversation.
**The one rule.** Ask a question only when **both** are true:
1. **It cannot be inferred.** The brand's research, its product catalog and its past campaigns do not answer it. 2. **A wrong guess costs something real.** Assuming wrong would change **money** (budget, price, what a customer is worth), **claims** (what an ad may say), or **legal exposure** (regulated words, restricted categories, audiences that must be excluded).
Everything else is an assumption, said out loud: *"I'm assuming X, Y and Z. Tell me if any of these are wrong."*
**Limits.** At most **4 questions in one turn**. At most **5 in total** for a brand whose research covers the business, **up to 20** for a brand with little or none. Plain business language throughout. No ad jargon unless the user used it first.
---
Paths such as `references/business-types.md` are relative to **this skill's own folder**, not to your working directory (in GooseWorks: `agent-config/skills/ad-management-intake/`). The harness docs contract ships with the `meta-ad-manager` skill, installed beside this one: its `contract/RULES.md` and `contract/templates/`.
1. **GooseWorks** when the GooseWorks tools are callable (the in-app coworker, or any agent with the GooseWorks MCP). Read [references/gooseworks-adapter.md](references/gooseworks-adapter.md). 2. **Local** otherwise (a direct Meta host or planning only: intake never touches Meta). Read [references/local-adapter.md](references/local-adapter.md).
**"The adapter"** below means the file for the mode you chose.
The adapter says where it comes from. This skill never redoes research that exists.
<!-- shared:ad-management-intake start --> <!-- This block is maintained in ONE place and copied byte-for-byte into both the maintainers' source copy and the published goose-skills copy. Edit one, copy it to the other, and run the parity script before shipping either. -->
Read in the contract's order: `ads/README.md`, then `ads/brand.md`, then the campaign folder if a campaign is in play. **Anything already recorded is never asked again.** If a fact is there and nothing suggests it changed, use it.
Read the brand research, the catalog and the existing campaigns. If the brand has **no research**, run the adapter's research step first and come back — research is what makes most questions unnecessary. Notes or documents the user gives you count as research. Do nothing beyond what the adapter's research step says: no broad market study of your own.
One row per fact the harness needs:
| Fact | Value | Source | Wrong-guess cost | |---|---|---|---| | e.g. Average order value | ~$40 | research: product prices | money |
A row becomes a **question** only if its source is *unknown or a weak guess* **and** its cost is not *none*. Every other row becomes an **assumption** you will state. Rank the questions by how much a wrong answer would cost; if they exceed the budget, the lowest-ranked become written assumptions or "unknown — ask at strategy".
A question whose parts settle one fact counts as one question: the budget's total, its run time and any daily cap are one budget question.
Covers what is true for every campaign: business type and model, unit economics (deal size or order value, margin, what a customer is worth, target cost to win one), how long people take to buy, other channels, what ads may and may not claim, and hard safety limits (such as a maximum daily spend). Plus **one familiarity question** (see *How to talk*).
Ask only what the next stage needs **now**. A fact only a later stage uses (lifetime value before any sales tracking is connected, say) is written as "unknown — ask at strategy", not asked.
Covers what is true for this one push: what the money should produce, what is offered and at what price, who it is for, where people land after tapping, the total budget and how long, what number would make it a good run, and which catalog products it features.
**Budget is always a total plus a run time.** If the user gives a daily figure, ask how long.
In **progressive** mode, Section A runs at the start and Section B when the campaign is being set up; in one conversation they usually follow each other
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.
Repo: gooseworks-ai/goose-skills
Answer questions about a brand's Meta ads (spend, results, which ad is winning, is it paused, why did Goose do that) only from reads made in the same turn,…
Generate or edit an image via any FAL image model (nano-banana edit, gpt-image, flux, ...), ROUTED THROUGH THE fal-proxy so it bills the Ads agent. image_urls…
Generate a single photoreal or designed image with OpenAI gpt-image via fal.ai. Supports gpt-image-1 (default, fixed sizes — the FAL fallback for Higgsfield's…
Generate an instrumental music bed via ElevenLabs Music, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Trims any sparse intro, loudnorm, fades…
Image-to-video (or text-to-video) via any FAL video model (Kling, Seedance, Veo), ROUTED THROUGH THE GooseWorks fal-proxy so the call bills the Ads agent. The…
Generate a voiceover (VO) clip via ElevenLabs text-to-speech, ROUTED THROUGH THE elevenlabs-proxy so it bills the Ads agent. Voice id + script text come from…