-
Frame the job. If a matching plan already exists (same product or occasion, overlapping dates), say so in one line and treat this run as a refresh: re-check every number in it against today's look-first facts (the live prices first) and how its bets did (references/run-memory.md), re-run the money math, the channel check, the frequency check and the tests, and write a fresh plan in the current shape with a short "What changed since the last plan" line in In short. Never paste a stored plan as the report. "Start from scratch" (or "ignore earlier work") makes this a first run: don't read or carry earlier plans, notes or run records, and say so in one line ("Starting fresh: I won't use earlier plans or notes."); the brand's rules and approved claims still apply. A new number that contradicts what the marketer said earlier in this conversation is flagged before planning on it ("100 sign-ups a day" is ~3,000 a month, against "over 1,000 free users" in total). Mode — launch, goal push to a date, always-on month, monthly replan, trigger replan (replans: references/replan.md; a "CAC blew up" replan with no performance read from the last ~7 days recommends reading the numbers first). Launch tier T1/T2/T3 with the reason (references/launch-and-calendar.md; "n/a" outside launches). Note promo dates and other live campaigns, and the buyer's busy season in the window, not only the seller's dates (references/launch-and-calendar.md § The buyer's calendar). Read references/company-types.md for the brand's type. Name the business result the plan is judged on (signups or paid accounts for SaaS, orders for DTC, bookings for local) — every leg says how it moves that number.
-
Money math and the top-down check — atom the plan-campaign-goal-chain skill (../plan-campaign-goal-chain/SKILL.md) part 1, references/unit-economics.md. What a customer may cost, with a source on every number; subtract the baseline; budget ÷ incremental goal against history or labelled base rates. If it already needs a miracle, say so in one line and continue — the full case comes at step 5.
-
The live picture. Competitors' current campaigns from the stored research (don't re-scrape), seasonal moments, stock on anything featured; in replan mode the scored bets from the run records (analyze-performance's scorecards, run-paid-campaigns' money moves and verdicts) and the paid change log (ads/campaigns/<slug>/decisions.md, its ### YYYY-MM-DD — … blocks). A leg or angle that didn't work is not funded again without a new reason, named.
-
Channel decision — atom the plan-campaign-channel-decision skill (../plan-campaign-channel-decision/SKILL.md), references/channel-decision.md. Every channel that could work, ads and non-ads alike, kept or dropped with the deciding reason and a brand fact; channels that clearly don't apply fold into one "Not relevant:" line with reasons. No channel is assumed — Meta included. For each channel check that the people it reaches are the buyer (not peers, builders or rivals); if the marketer chose a channel that reaches someone else, say so once, plainly, and then follow their choice. Zero paid is valid.
-
Budget, tests, forecast — atoms the plan-campaign-budget-and-tests skill (../plan-campaign-budget-and-tests/SKILL.md) then the plan-campaign-goal-chain skill (../plan-campaign-goal-chain/SKILL.md) part 2, references/budget-and-tests.md. All budget lines; any retargeting or known-list leg states its audience size and weekly frequency and is capped near ~5 a week (§2b); tests with one variable, money per cell, when it can be read, an end date and what each result means; per-leg targets, three scenarios, and — if the expected one misses — the case for changing the goal, with the marketer choosing the lever.
-
Calendar backwards from the date — references/launch-and-calendar.md, incl. "claims signed off" by T-30 when the hero product has none.
-
Write the plan — atom the plan-campaign-brief-and-assets skill (../plan-campaign-brief-and-assets/SKILL.md), references/brief-template.md, following the write-report skill (../write-report/SKILL.md) §1: In short first, plain words, no ids, every fact with its source and date. Angles from the angle bank and customers' words; signed-off claims only, verbatim; ad-policy risk per angle; the asset list complete enough for a designer.
-
Attack it before showing it. The parts a generic plan gets wrong must be present and right: the economics from today's prices (allowable cost vs the budget's implied cost); each channel checked against the actual buyer; any retargeting or known-list leg with its audience size, weekly frequency and cap; every test changing one thing, with money per version, a read date and an action for win, lose and unclear (two things changing → two tests, or say what it can't tell you); the buyer's busy moment on the calendar. Numbers reconcile (leg target = leg spend ÷ expected cost; lines sum to the budget); every channel kept or dropped has its reason; no unsigned claim; no angle addressing the viewer's personal attributes or making a regulated claim; every asset has a producer and a due date inside its lead time; then every check in write-report §3.
-
Deliver for approval — write-report §2 (topic campaign-plan). The brand copy goes through the save-to-brain skill (../save-to-brain/SKILL.md) as plans/<slug>/<YYYY-MM-DD>-plan-v<N>.md ("Campaign plan — <Brand> — <date> v<N>", versioned: supersede; local mode: its local branch). With GooseWorks, on a new campaign, or one whose brief is an unapproved draft, with no creative plans pending, the same text also goes on the campaign record as status: "draft"; an approved live brief is never overwritten before the yes. In chat, only this (no tables, no re-pasted sections):
Do this first (because <the findings it rests on, in a few words>): <the one move, who, by when>.
The plan: <title> — <also saved to your brand | saved in this folder (local mode)>.
Decisions I need: <the 2–4 decisions in one line>. Approve the goal, channels, split, asset list and headline?
In a hosted chat with no files, put the full plan in the chat (write-report §2.2) and end with the same three lines, the second one only saying where it is saved ("saved to your brand", or, without GooseWorks, "not saved anywhere — keep a copy").