Skip to content
Marketing
Skill

/ads-north-star-strategy

Turn a brand's facts, a campaign brief and the product into a one-minute Meta ad strategy with its reasoning — goal, audience, objective and placements, budget split, how many ads and how different they must be (generate 3x so the user can choose), the test frame, the success

From plugin
goose-skills
1.3k181 skills

Claude Code

$ npx -y skills add gooseworks-ai/goose-skills --skill ads-north-star-strategy --agent claude-code

SKILL.md

ads-north-star-strategy.SKILL.md
name: ads-north-star-strategy
description: Turn a brand's facts, a campaign brief and the product into a one-minute Meta ad strategy with its reasoning — goal, audience, objective and placements, budget split, how many ads and how different they must be (generate 3x so the user can choose), the test frame, the success metric, and safety rules for the user to accept. Decides what launch-meta-ad-campaign then executes, and re-reads the strategy after a deep check to show which assumption changed. Use it after intake and before any creative is generated or any campaign is built.

Ads North Star Strategy

**What this is for.** Intake produced facts: what the business sells, what a customer is worth, how long they take to buy, what the user wants from this money. This skill turns them into a strategy the user can read in a minute. Each choice comes with its reason, because the deep check re-reads this file weeks later and has to see what was assumed.

**This skill decides. `launch-meta-ad-campaign` executes.** The launch skill already holds the rules for what to optimize for, how big a test the budget buys, and how to structure the campaign. This skill **applies** those rules and records the answer. It does not restate them. When they change, they change in one place.

**The three things most strategies get wrong:**

1. **Optimizing for a cheaper action than the real goal.** Traffic is cheaper than leads. Clicks are cheaper than both. A strategy that picks the cheap action because it is available has decided to buy the wrong people. 2. **Splitting a small budget.** One audience with 2–3 genuinely different ads beats three audiences that each starve. 3. **Ads that differ in colour, not in argument.** Three versions of one message teach nothing. The angles have to differ in *what they say*.

---

Where this skill's files are

Paths are relative to **this skill's own folder**, not your working directory (in GooseWorks: `agent-config/skills/ads-north-star-strategy/`). The harness docs contract ships with the `meta-ad-manager` skill and the Stage 2 and Stage 4 rules with `launch-meta-ad-campaign`; both are installed beside this one.

Choose one mode

Use the first mode that is available:

1. **GooseWorks** when the GooseWorks tools are callable. Read [references/gooseworks-adapter.md](references/gooseworks-adapter.md). 2. **Direct Meta** when there is no GooseWorks, but a Meta 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).

**"The adapter"** below means the file for the mode you chose.

Purpose

Write `strategy.md` for one campaign: goal, audience, objective and placements, budget, creative plan, test frame, success metric and reasoning. Then propose safety rules for the user to accept. Use it after intake and before any creative is generated. Use it again after a deep check, to revise the strategy and say what changed.

<!-- shared:ads-north-star-strategy 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. -->

Inputs

| Input | Where it comes from | If missing | |---|---|---| | **Brand facts**: business type, unit economics (ACV or AOV, margin, LTV, CAC target), sales cycle, other channels, claims rules, safety limits, the user's familiarity with Meta | the brand file intake wrote | read brand research; ask only per the asking rule below | | **Campaign brief**: the goal in the user's words, the offer, the ICP, the destination, total budget and duration | the campaign brief | ask | | **Product**: what is sold, price point | the catalog, by product id | ask which product | | **Account facts**: lifetime spend, tracking present, weekly volume of the target event | read from the ad account (launch skill, Stage 2) | assume a cold account with no tracking, and say so | | **Existing customers** (a customer list or custom audience) | the ad account's audiences | no exclusion; say so | | **Brand record ids**: brand id, the coworker agent that owns the files | the brand record | ask the host; never invent one | | **What the executing host can launch**: which objectives, and how many ads per ad set | the host's launch tool | assume Traffic only, 2–3 ads | | **Deep-check findings** (re-read only) | the deep check's report | not a re-read |

**The asking rule.** Ask only when both are true: the answer cannot be inferred from research, the catalog or existing campaigns, **and** a wrong guess changes money, claims or legal exposure. State everything else as an assumption: "I'm assuming X, Y, Z. Tell me if any are wrong." Ask at most four questions per turn, in plain words.

Things that usually pass the rule at strategy time: the budget ceiling, what a lead or sale is worth (when the brief has no ACV/AOV), and whether a named result may be claimed. Things that never pass it: the objective, the optimization goal, the structure and the placements. Those are yours to decide.

**Facts that came from intake, not from a tool.** An account fact the user or intake stated (lifetime spend, weekly events) has no sync time. Write it as an assumption ("per intake, not yet read from the account"), never as an `- Observed:` line with an invented sync time. Once the account is read, the observation replaces the assumption.

Composed Atoms

  • `launch-meta-ad-campaign`: its Stage 2 tables (choose the optimization goal, size the

test honestly, structure follows the budget) and its Stage 4 test design. **Read them before deciding. Do not copy them.**

  • `meta-ads-analyzer`: produces the deep-check findings that trigger a re-read.
  • The host's campaign-planning and creative-generation tools (the adapter names them).

#

Read more
@gooseworks-ai
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.

1.3k181 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.3k
Star history of gooseworks-ai/goose-skills on GitHub, a chart by star-history.com

Other skills on goose-skills.

goose-ads

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…

goose-video

goose-video

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

gooseworks

GooseWorks growth coworker and router for markets, competitors, audiences, creators, campaigns, ads, photos, graphics, video,…

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag2w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about ads-north-star-strategy.

Which coding agents can use ads-north-star-strategy?
ads-north-star-strategy installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.