campaign-brief ยท diff
git:20260303.8412b01 to git:20260504.0d54b6b
178 added, 76 removed. Audit A to A.
---
name: campaign-brief
- description: >
- Write a marketing campaign brief. Use when the user says "write a campaign brief",
- "campaign brief for [campaign]", "brief this campaign", "I need a brief before we
- start", "marketing brief", "brief for the team", "what's the brief", "let's brief
- out this campaign", or wants to align stakeholders on campaign goals, audience,
- message, and success metrics before execution starts.
+ description: Plan a marketing campaign end-to-end using Allan Dib's Before/During/After framework (The 1-Page Marketing Plan). Produces a phase-specific campaign brief with goal, audience, message, channels, assets, timeline, budget, and success metrics. Use when the user asks to plan a campaign, brief a campaign, "we need a campaign for X", launch plan, GTM plan, marketing plan for <product>, demand gen plan, or any multi-channel marketing initiative. Reads ICP, services, and KPIs from knowledge/.
+ reads:
+ - knowledge/icp/personas.md
+ - knowledge/services/
+ - knowledge/markets/positioning.md
+ - knowledge/markets/competitors.md
+ - knowledge/kpis.md
+ - knowledge/learnings.md
+ writes:
+ - output/campaign-brief/
---
- ## Overview
+ # campaign-brief
- Based on **"Lean Analytics"** by Alistair Croll and Benjamin Yoskovitz. The core principle: you cannot optimize what you do not measure, and the biggest mistake in marketing is running campaigns without a single defined metric. Lean Analytics introduces the "One Metric That Matters" (OMTM) - the single number that reflects whether a campaign worked. This brief structure forces the team to agree on the metric before spending a dollar.
+ Produces a campaign brief that an empowered team can execute without needing a follow-up meeting. Every brief is anchored to one phase of the customer journey (Before/During/After) using Allan Dib's 1-Page Marketing Plan. Phase determines channels, assets, and success metrics - not the other way around.
- ## Workflow
+ ## When to use
- ### Step 1: Write the campaign header
+ - "Plan a campaign for our Q3 launch"
+ - "Build a GTM plan for <product>"
+ - "Brief a demand gen campaign targeting CMOs"
+ - "Write the launch plan for the integration with X"
+ - "We need a marketing plan for <event/feature/audience>"
- ```
- Campaign Name: [descriptive name, not a codename]
- Owner: [name]
- Status: Draft | In Review | Approved | Live | Complete
- Launch Date: [date]
- End Date: [date]
- Budget: $[amount]
- ```
+ ## Framework: Before/During/After (Allan Dib, The 1-Page Marketing Plan)
- ### Step 2: State the business objective (1 sentence)
+ Every campaign primarily serves one phase. Force the choice before building anything else.
- What business outcome does this campaign drive? Connect directly to a company or team OKR. Be specific.
+ **BEFORE** - Prospects who don't know you exist.
+ - Goal: get strangers to raise their hand
+ - Focus: reach, awareness, USP clarity
+ - Channels: paid social, SEO, PR, cold outreach, events, partner content
+ - Success metrics: reach, impressions, hand-raisers (leads generated), CPL
- Bad: "Increase brand awareness."
- Good: "Generate 200 qualified demo requests from mid-market SaaS companies in Q3."
+ **DURING** - Leads who know you but haven't bought.
+ - Goal: convert interest into purchase
+ - Focus: lead capture, nurture, trust-building, sales conversion
+ - Channels: email sequences, retargeting, demos, webinars, case studies
+ - Success metrics: MQLs, SQLs, demo bookings, trial starts, conversion rate
- If you cannot write a specific business objective, do not run the campaign.
+ **AFTER** - Customers who have already bought.
+ - Goal: create raving fans who expand and refer
+ - Focus: world-class experience, upsell, cross-sell, referrals
+ - Channels: customer comms, CSM touchpoints, loyalty programs, referral incentives
+ - Success metrics: NPS, expansion revenue, referrals generated, churn rate, LTV
- ### Step 3: Define the One Metric That Matters (OMTM)
+ A campaign cannot serve all 3 phases at once. If the user wants all 3, split it into 3 campaigns.
- Lean Analytics: pick one metric. Not three. The OMTM is the number that determines whether this campaign worked. All other metrics are secondary or diagnostic.
+ ## Inputs needed
- ```
- OMTM: [metric name]
- Current baseline: [current value]
- Target: [target value by end date]
- Measurement method: [tool or process - e.g., "UTM-tagged links tracked in [analytics tool]"]
- ```
+ Walk the user through these one at a time. Do not skip.
- Define 2-3 secondary metrics you will monitor but not optimize against:
- - [secondary metric 1]
- - [secondary metric 2]
+ 1. **Campaign phase**: Before, During, or After? If the user isn't sure, ask: "Are you trying to reach new people, convert known leads, or grow existing customers?" Force a single answer.
+ 2. **Campaign goal**: one sentence, tied to the phase.
+ 3. **Primary KPI**: the one number that defines success. With a target.
+ 4. **Audience**: which persona from `knowledge/icp/personas.md`. If multiple, force-rank.
+ 5. **Window**: start date, end date (DD-MM-YYYY).
+ 6. **Budget**: total, or "no paid budget".
+ 7. **Constraints**: legal, brand, channel restrictions, dependencies on other teams.
+ 8. **What's already decided**: any creative, channel, or partner choices the user has locked in.
- ### Step 4: Define the target audience
+ ## Process
- Be specific enough that someone who has never met your customer could find them.
+ 1. **Load context.** Read all `reads:` files. If `knowledge/icp/personas.md` is missing, stop and run `/onboard --icp`.
- - Who they are: [role, company type, size, geography if relevant]
- - What they are trying to do right now: [the job or trigger]
- - What they believe today: [the assumption your campaign will shift]
- - Where they spend attention: [channels they actually use]
+ 2. **Identify the phase.** Before generating any brief content, confirm the Before/During/After phase with the user. State it explicitly: "This is a BEFORE campaign. The goal is to generate hand-raisers from people who don't yet know us."
- ### Step 5: Write the campaign message
+ 3. **Check `knowledge/learnings.md`** for any relevant past campaign retros. Reference them in the brief.
- One primary message. Campaigns that try to communicate multiple ideas communicate none.
+ 4. **Generate the brief in this format**:
- ```
- Core message: [one sentence - what you want the audience to believe or do after seeing this]
- Proof point: [the single most credible piece of evidence for that message]
- Call to action: [exactly what you want them to do next]
- ```
+ ```
+ # <Campaign name>
- ### Step 6: Define the channel plan and timeline
+ **Phase**: BEFORE | DURING | AFTER (Allan Dib framework)
+ **Phase goal**: <get hand-raisers | convert leads | grow customers>
+ **Campaign goal**: <one sentence, single-objective>
+ **Primary KPI**: <metric> -> target <number> by <DD-MM-YYYY>
+ **Window**: DD-MM-YYYY to DD-MM-YYYY
+ **Budget**: $<amount> or <none>
+ **Owner**: <person, ask the user>
+ **Status**: draft
- List channels in priority order. For each:
+ ## Audience
+ - **Primary persona**: <from knowledge/icp/>
+ - **Top 3 pains we are speaking to**:
+ 1. ...
+ 2. ...
+ 3. ...
+ - **Where they are**: channels, communities, publications
- | Channel | Format | Volume / Frequency | Owner | Launch Date |
- |---|---|---|---|---|
- | [channel] | [ad / email / post / etc.] | [e.g., 3 posts/week] | [name] | [date] |
+ ## Message
+ - **Core message** (one sentence the audience should remember):
+ - **Proof points** (3 max):
+ 1. ...
+ 2. ...
+ 3. ...
+ - **What we are NOT saying**: explicit anti-messages to avoid scope creep
- Keep the channel list short. Lean Analytics: spreading budget across too many channels means no channel gets enough signal to optimize. Start with 2-3 max.
+ ## Strategy
+ - **Why now** (timing rationale):
+ - **Differentiation vs <competitor>** (how this plays where we win):
+ - **What we learned from <past campaign>** (from knowledge/learnings.md):
- ## Anti-Patterns
+ ## Channel mix
+ Channels must match the campaign phase. BEFORE = reach channels. DURING = conversion channels. AFTER = retention channels.
- **1. Multiple primary metrics**
- Bad: "We are measuring impressions, CTR, signups, and NPS."
- Good: "OMTM is demo requests. Everything else is diagnostic."
+ | Channel | Role | Asset count | Spend | Owner |
+ |---|---|---|---|---|
+ | LinkedIn organic | Awareness | 8 posts | $0 | <name> |
+ | LinkedIn ads | Demand | 3 ad sets | $X | <name> |
+ | Email nurture | Conversion | 5-email sequence | $0 | <name> |
+ | ... | | | | |
- **2. Vague objective not tied to a business outcome**
- Bad: "Drive awareness and engagement for [your brand]."
- Good: "Generate 150 trial signups from [target audience] in 6 weeks."
+ ## Assets needed
+ Group by team. Be specific.
+ - **Content**: 1 pillar article (1800w), 8 LinkedIn posts, 3 quote graphics
+ - **Design**: 1 landing page hero image, 3 ad creatives, 1 email header
+ - **Video**: 1 explainer (60s)
+ - **Sales enablement**: 1 one-pager, 1 deck update
+ - **Web**: 1 landing page
- **3. No baseline**
- Bad: Setting a target without knowing where you start.
- Good: "Current: 40 demo requests/month. Target: 80 demo requests/month by [date]."
+ ## Timeline
+ Working backward from launch date.
+ | Week | Milestone | Owner |
+ |---|---|---|
+ | -4 | Brief approved, assets briefed | |
+ | -3 | First drafts in review | |
+ | -2 | Final assets, landing page live | |
+ | -1 | Soft launch, internal alignment | |
+ | 0 | Launch | |
+ | +1 | First metrics review | |
+ | +4 | Campaign retro | |
- **4. Too many channels at launch**
- Bad: Running on 6 channels simultaneously with a $10,000 budget.
- Good: Concentrate budget on 2-3 channels, prove signal, then expand.
+ ## Success metrics
+ Phase-specific. Do not mix metrics from other phases.
- ## Quality Checklist
+ **BEFORE campaigns**:
+ - **Primary**: <reach | CPL | hand-raisers generated> = <target>
+ - **Secondary**: impressions, CTR, email sign-ups
+ - **Leading indicators** (visible by week 1): ad CTR, organic post reach
+ - **Lagging indicators** (visible by week 4): total leads captured, CPL
- - [ ] Business objective is specific, measurable, and tied to an OKR or company goal
- - [ ] OMTM is a single metric - not a list
- - [ ] Baseline value for OMTM is documented
- - [ ] Target value has a date attached
- - [ ] Measurement method specifies exactly how the metric will be tracked
- - [ ] Target audience described specifically enough to find them in the real world
- - [ ] Core message is one sentence
- - [ ] Channel plan has no more than 3 channels at launch
- - [ ] Each channel has a named owner and launch date
+ **DURING campaigns**:
+ - **Primary**: <MQLs | SQLs | demo bookings | trials> = <target>
+ - **Secondary**: email open rate, demo-to-close rate
+ - **Leading indicators** (visible by week 1): email opens, landing page CVR
+ - **Lagging indicators** (visible by week 4): total SQLs, pipeline generated
+
+ **AFTER campaigns**:
+ - **Primary**: <NPS | referrals | expansion revenue | churn rate> = <target>
+ - **Secondary**: product usage, upsell conversion, CSAT
+ - **Leading indicators** (visible by week 1): feature adoption, support tickets
+ - **Lagging indicators** (visible by week 4): NPS score, referrals, expansion ARR
+
+ ## Risks and mitigations
+ - **Risk**: <what could go wrong>
+ **Mitigation**: <what we do about it>
+
+ ## Open questions
+ - List anything you do not have an answer to. Do not invent.
+
+ ## Approvals
+ - [ ] Marketing lead
+ - [ ] Product
+ - [ ] Sales
+ - [ ] Legal (if applicable)
+ ```
+
+ 5. **Self-check**:
+ - Phase is declared and all elements serve that phase
+ - Channels match the phase (no conversion channels in a BEFORE campaign, no awareness channels in an AFTER campaign)
+ - Single primary KPI - not three
+ - Specific persona, not "marketers"
+ - Working-backward timeline, not aspirational
+ - Concrete assets list with counts
+ - References at least one prior learning if `knowledge/learnings.md` exists
+ - Phase-specific success metrics only
+
+ 6. **Save** to `output/campaign-brief/<DD-MM-YYYY>-<slug>.md` with frontmatter:
+ ```yaml
+ ---
+ format: campaign-brief
+ campaign: <name>
+ phase: <before|during|after>
+ goal: <awareness|demand|expansion|retention|recruitment>
+ start: DD-MM-YYYY
+ end: DD-MM-YYYY
+ primary-kpi: <metric>
+ target: <number>
+ budget: <amount or none>
+ created: DD-MM-YYYY
+ ---
+ ```
+
+ 7. **Offer next actions**:
+ - Generate the asset list as individual skill calls (`/linkedin-post` x 8, `/landing-page-writer` x 1, etc.)
+ - Build the launch deck (`/ppt-maker`)
+ - Remind the user: "Set a calendar reminder to run `/retro` on [launch date + 28 days] to capture learnings."
+
+ ## Rules
+
+ - Declare the phase before writing a single line of the brief. Phase determines everything else.
+ - One primary KPI. If the user names three, force them to rank and pick one.
+ - Channel mix must match the phase. A BEFORE campaign with a demo CTA is a contradiction. Call it out.
+ - Never copy a previous campaign brief without reading `knowledge/learnings.md` first. Past failures should change current plans.
+ - If budget is zero, do not propose paid channels. Reallocate to organic.
+ - Timeline must be working backward from launch. If the user gives a launch date, derive milestones from it. If not, ask.
+ - If the user wants to run a BEFORE and DURING campaign simultaneously, produce two separate briefs. Mixed-phase campaigns are unfocused campaigns.