goose-ads
Edit, resize, animate and study image ads with GooseWorks in this chat. New static or image ads go to the make-static-ads skill…
Front door and loop owner of a Meta (Facebook/Instagram) ad harness. Reads the brand's ads/ docs, works out which campaign the user means and which stage it is at, hands off to the stage skill that runs it (intake, strategy, creative, launch, checks, fixes, answers), and writes
Claude Code
$ npx -y skills add gooseworks-ai/goose-skills --skill meta-ad-manager --agent claude-code
Codex
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-manager -a codex -y
Cursor
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-manager -a cursor -y
Gemini CLI
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-manager -a gemini-cli -y
GitHub Copilot
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-manager -a github-copilot -y
OpenCode
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-manager -a opencode -y
Windsurf
$ npx skills add gooseworks-ai/goose-skills --skill meta-ad-manager -a windsurf -y
name: meta-ad-manager description: Front door and loop owner of a Meta (Facebook/Instagram) ad harness. Reads the brand's ads/ docs, works out which campaign the user means and which stage it is at, hands off to the stage skill that runs it (intake, strategy, creative, launch, checks, fixes, answers), and writes every stage change back to the docs. Use it when someone wants to run ads on Meta, comes back to ads they started earlier, a stage skill hands back, or a scheduled check fires.
**What this is for.** Someone says "I want to run ads on Meta", or comes back a week later and says "where are we?", or a scheduled check wakes up. This skill works out where things stand from the brand's ad docs, picks the next step, hands it to the skill that does that step, and writes down what happened and why. It never makes the user repeat themselves.
**It does not do the stage work itself.** Intake, strategy, making creatives, launching, checking and fixing each belong to their own skill. This skill decides which one runs, sets the tone, and keeps the docs true.
**The docs contract is law.** How to read and write the files and the rules for numbers are in [contract/RULES.md](contract/RULES.md). The file shapes are in [contract/templates/](contract/templates/), and [contract/validate.py](contract/validate.py) checks a folder. Read `RULES.md` before your first write.
Every path in this skill (`contract/…`, `references/…`) is relative to **this skill's own folder**, not to your working directory:
| Installed by | This skill's folder | |---|---| | GooseWorks (the in-app coworker) | `agent-config/skills/meta-ad-manager/` in the workspace | | The GooseWorks CLI (`--with meta-ad-manager`) | the agent's skills folder, for example `~/.claude/skills/meta-ad-manager/` in Claude Code |
The stage skills below are installed with this one and sit beside it, in the same parent folder. `ads/` itself is never inside a skill folder.
Use the first mode that is available, and read its adapter before Step 1:
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. **Direct Meta** when there is no GooseWorks, but a Meta access token and ad account are available. Read [references/direct-meta-adapter.md](references/direct-meta-adapter.md). 3. **Planning only** when neither is available. Read [references/planning-only.md](references/planning-only.md). Intake, strategy and the creative brief still work; nothing is read from or written to Meta.
**"The adapter"** in the workflow below means the file for the mode you chose. A campaign stays in the mode it started in; say so if the user's access changes mid-campaign.
| Skill | Stage it runs | Notes | |---|---|---| | `ad-management-intake` | intake: business facts, familiarity, the campaign brief; creates the `ads/` files | every mode | | `ads-north-star-strategy` | strategy: goal, audience, budget split, creative count, test frame | every mode | | campaign planning + creative generation | create and review | GooseWorks generates; other modes write a creative brief | | `launch-meta-ad-campaign` | launch: readiness, paused build, readback, confirmation | GooseWorks or direct Meta | | a quick check (daily report) | quick check on live campaigns | where the adapter has one | | `meta-ads-analyzer` | deep check on complete days | when installed | | fix-and-adjust actions (pause, revert, budget change, replace creative) | acting on an approved recommendation | the adapter lists what it supports | | `answer-ads-questions` | factual questions about the ads | every mode |
The first four and the answers skill are installed with this one. When a listed skill is not installed, the workflow's Fallback column says what to do. Outside GooseWorks, "campaign planning + creative generation" means the adapter's written creative brief, and the check and fix rows are what the adapter lists.
changes only Step 0 and whether you may ask questions.
<!-- shared:meta-ad-manager 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. -->
The harness needs a conversation to ask questions and get approvals.
surface; never send its user elsewhere to continue.
behind it): tell the user in one sentence to continue in chat or connect a messaging channel, and stop. Write nothing.
Follow-ups after launch arrive in the report. If the user asks how they will hear about results and has no messaging channel, say how the report reaches them and offer to connect a channel. Do not block on it.
Read `ads/README.md`. Always first, always the whole file.
and write nothing yourself: `ad-management-intake` creates `ads/brand.md`, the index and the campaign folder, after it has stated its assumptions to the user (its Step 5 comes before its Step 6). Only on the fallback path (intake not installed) do you write them y
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.
Edit, resize, animate and study image ads with GooseWorks in this chat. New static or image ads go to the make-static-ads skill…
Make product photos (studio, lifestyle or on a model) of a brand's real products with GooseWorks in this chat. Start brand work…
Make an approved GooseWorks video when an answer's next_step gives its command.
Make a video ad in this chat from a real reference ad, found or theirs; styles are the fallback. Follow every answer's next_step.
GooseWorks growth coworker and router for markets, competitors, audiences, creators, campaigns, ads, photos, graphics, video,…
Create a custom video with sourced product accuracy, explicit sound routing and exact-final audiovisual review.
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…