evals/evals.json
{
"skill_name": "ad-creative-brief",
"evals": [
{
"id": 1,
"prompt": "I run growth at Loomora, a DTC sleep-supplement brand doing about $220k/month. I need a creative brief for our designer for a new Meta campaign. Target: all adults 25-60 who care about wellness. The ads need to communicate that we're melatonin-free, third-party lab tested, cheaper than prescription alternatives, and loved by 40,000+ customers - leadership wants all four points in. Goal is awareness and sales for Q2. Can you write the brief now? I can answer a couple of questions if really needed.",
"expected_output": "An interview-first response that refuses the combined goal and the all-audiences definition, narrows to one angle with one proof point, presents candidate directions before drafting, and produces (or scaffolds) one evidence-cited brief per concept with a typed falsifiable hypothesis and a test block - never finished ad copy.",
"files": [],
"expectations": [
"Asks clarifying interview questions before drafting the brief rather than producing a finished document from the prompt alone",
"Refuses 'awareness and sales' as a combined goal and presses for one goal with one primary deciding KPI, or splits the work into separate briefs",
"Rejects 'all adults 25-60 who care about wellness' and requires a single awareness level per brief chosen from unaware / problem-aware / solution-aware / product-aware / most-aware",
"Treats the missing awareness level or 'all audiences' as a defect to fix (splitting briefs when levels genuinely differ), not as an acceptable audience definition",
"Reduces the four claims to one messaging angle with exactly one proof point, moving the extra messages into separate concepts or briefs",
"Writes the messaging angle as a conversational sentence a customer could plausibly say out loud, not a tagline or a feature list",
"Includes a falsifiable hypothesis in the form 'If we lead with [pain] and [proof], then [audience] will [action]'",
"Tags the hypothesis with a type from hook / proof / format / angle / persona",
"Requires an evidence citation before a claim such as 'loved by 40,000+ customers' may appear, rather than accepting leadership talking points as-is",
"Flags supplement-category compliance: claims needing substantiation and forbidden phrasing (no medical or treatment claims) recorded in the brief",
"Presents 2-3 candidate concept directions with trade-offs and one recommendation before hardening a single brief",
"Keeps to one brief per concept rather than one brief carrying several distinct concepts",
"Includes a test block naming the single variable that changes, what stays frozen, and a minimum evidence floor before any kill or scale call",
"Stops at direction (hook directions, art direction) and does not write the finished ad copy lines themselves"
]
},
{
"id": 2,
"prompt": "We're briefing a video editor at Herbalux, a dietary supplement brand (regulated category). Audience is problem-aware, placement is Meta Reels. Legal has told us flatly that no customer testimonials or before/after results can be cleared this quarter - we have zero approved customer outcomes. I still want a testimonial hook in the lineup because social proof always performs, and give the editor 8-10 hook options total so he has room to play. Draft the hook section of the brief.",
"expected_output": "A hook section of 3-5 tagged, three-layer hook directions appropriate to a problem-aware audience, with social proof explicitly deleted from this brief's trigger menu (not ranked last, not included), a recommended first test with rationale, and compliance and sound-off notes.",
"files": [],
"expectations": [
"Limits the hook lineup to 3-5 options, rejecting the request for 8-10",
"Tags each hook option with exactly one trigger type from the eight-type taxonomy",
"Labels each video hook option across the three separate layers SPOKEN / VISUAL / TEXT OVERLAY",
"Deletes social proof from this brief's trigger menu and names it as deleted, rather than including a testimonial hook or ranking social proof last",
"Justifies the deletion by the absence of a cleared customer result, noting a ruled-out trigger left on the list gets briefed anyway by the next reader",
"Gates trigger selection on the awareness level first and only then ranks the survivors by marginal effort, rather than ranking purely by cheapness",
"Recommends a specific first-test hook with a stated rationale",
"Keeps every hook option as direction (e.g. open inside the worst moment of the problem), never a scripted spoken line of finished copy",
"Chooses problem-aware-appropriate openings (agitation, making the viewer feel understood) rather than direct-offer, guarantee, or price-anchoring openings",
"Addresses sound-off design (key claims legible as on-screen text, captions) and/or notes the Reels sound-on skew (roughly 70-80% of viewers with audio) so the creative works both ways",
"Records regulated-category compliance mandatories: substantiation-required claims and permitted phrasing constraints",
"Attaches the required extra field to conditional triggers if offered: a resolution field for a curiosity-gap hook, or truth-of-claim gating for an urgency hook",
"Does not delegate hook choice to the editor's judgement or 'room to play' - options are recorded, tagged, and one is recommended"
]
},
{
"id": 3,
"prompt": "Nuvolo Systems sells compliance-automation software, ACV around $45k, long sales cycles. Last LinkedIn video test: variant B beat variant A on CTR by 38%, so we want the next brief to scale variant B's message across our whole target market. One persona is enough - we sell to 'IT decision makers'. The brief's KPI: CTR, since that's what moved. For proof we planned a before/after graphic of a messy dashboard turning clean. Put the brief together.",
"expected_output": "A B2B brief (or brief plan) that replaces CTR with SQL rate / cost per opportunity, warns the CTR win alone proves nothing about lead quality, splits the single persona into parallel buying-committee briefs, swaps the before/after graphic for a quantified outcome plus badge or screenshot, and sets a low-volume-aware test read.",
"files": [],
"expectations": [
"Rejects CTR as the deciding KPI for a B2B brief and sets SQL rate or cost per opportunity instead",
"Warns that a CTR winner can produce fewer conversions at a higher CPA (expensive junk leads), so variant B's +38% CTR alone does not justify scaling",
"Recommends parallel persona briefs for distinct buying-committee roles (economic buyer, technical evaluator, end user) instead of one generic 'IT decision makers' persona",
"Grounds the committee recommendation in the buying reality of roughly 8-13 people and cycles near 10 months",
"Replaces the before/after graphic with B2B-appropriate proof: a quantifiable customer outcome plus a badge or product screenshot",
"Recommends practitioner-led talking-head video over polished brand video for the LinkedIn placement",
"Requires product marketing sign-off on ICP wording and differentiator accuracy",
"Includes a committee-role field in the audience section naming which role this specific brief targets",
"Plans the test read for low B2B volume: leading signals up front, with SQL-rate or opportunity judgment at a later window (e.g. 30/60/90 days), not a week-one conversion call",
"Sources the core objection from lost-deal notes, call notes, or CRM comments rather than inventing one",
"States the hypothesis in the falsifiable 'If we lead with [pain] and [proof], then [audience] will [action]' form with a type tag",
"Freezes targeting and every non-test variable for the test window",
"Pre-commits an on-win / on-loss decision, including that a CTR winner producing junk demos gets repurposed rather than scaled"
]
},
{
"id": 4,
"prompt": "Two decisions to settle for Brightfin, a B2C budgeting app, before I write the brief. First: our head of growth wants our first-ever paid creative to be a full UGC video program - creator sourcing, shoot, the lot. We have one in-house designer, no creators lined up, and the campaign must be live in 6 business days - hard date, we got an App Store feature slot. Second: since UGC is the plan, drop static from consideration permanently; we've heard statics are dead. Write up the format recommendation and the deliverables section.",
"expected_output": "A format recommendation that pins static for this brief because of the hard deadline, marks video/UGC as deferred to the next sprint rather than deleted, defends static as the cheapest honest at-bat, and a deliverables section with arithmetic, iteration flags, naming convention, and a revision cap.",
"files": [],
"expectations": [
"Recommends static as this brief's format given the 6-business-day hard deadline and a single in-house designer, since video/UGC costs a week of coordination (creator search, shoot, rights, revisions)",
"Marks video/UGC as 'deferred to the next sprint' rather than deleted, because a hard deadline pins the format for this brief only",
"Distinguishes deferral (deadline pins this brief) from deletion (a constraint such as unobtainable creator rights removes the option from the menu)",
"Rejects 'statics are dead' and defends static as the cheapest honest at-bat and default first concept",
"Ranks the format options (static / search / video-UGC) by learning bought per production hour rather than by trend or taste",
"Names video/UGC as what the efficiency order starves (top of learning value, last on efficiency)",
"States at least one condition that would promote video/UGC over the ratio: a compounding-learning mandate, a Reels/TikTok-first placement veto, plateaued statics, or an already-owned studio/creator roster/footage library",
"Notes that placement can veto the format pick: on Reels- or TikTok-first placements a static barely earns delivery",
"Asks about, or explicitly weighs, fastest at-bat now versus learning that compounds, since the format ordering depends on that answer",
"States deliverables as arithmetic (e.g. N hooks x M edits = K files)",
"Flags each deliverable iteration versus net-new, noting a resize is not a new design",
"Assigns asset names in the brief using the four-level convention concept, iteration, format, test variable - ASCII with underscores - rather than leaving naming to whoever uploads"
]
},
{
"id": 5,
"prompt": "Casaverde sells a genuinely new thing - a smart compost concierge service - and basically nobody searches for it yet. Our agency says search converts best, so we're briefing Google responsive search ads. Plan: 6 headlines, all 6 pinned so Google can't scramble our message, and we iterate until Ad Strength shows Excellent. Also give me 3 strong hooks for the search ads. Build the search brief.",
"expected_output": "A response that drops search from the format menu for a no-demand category (recommending a demand-creating format instead), explains that search ads have no hooks, and - where an asset pool is discussed at all - corrects it to 15x30-char headlines and 4x90-char descriptions mapped to pain/product/proof, rejects pinning all headlines, and refuses Ad Strength as a goal.",
"files": [],
"expectations": [
"States that search/responsive ads have no hook because the system assembles the ad, and declines to write 'hooks' for them, briefing an asset pool concept instead",
"Flags that search enters the format ranking only where keyword demand already exists, and with nobody searching the category it drops out of the menu entirely rather than ranking last",
"Recommends a demand-creating alternative format (static or video aimed at an unaware/problem-aware audience) instead of proceeding with the search plan unchanged",
"Where an asset pool is still specified, sizes it to the format: up to 15 headlines at 30 characters and 4 descriptions at 90 characters, correcting the 6-headline plan",
"Maps headlines across the three themes pain / product / proof as search's messaging-pillar equivalent",
"Rejects pinning all six headlines: at most 1-2 pins, each with a stated reason such as a compliance line or mandated phrase",
"Cites that pinning restricts combination testing sharply - a single pinned headline cuts testing by more than 75% per published analysis",
"States that Ad Strength is a content-quality signal with no direct effect on Ad Rank and refuses 'iterate until Excellent' as an objective",
"Warns against adding loosely relevant headlines to chase an Ad Strength rating",
"Requires each headline to stand alone and work in any combination within a tightly themed ad group",
"Advises testing as two ads per ad group differing by angle, not by CTA rephrasing",
"Identifies the audience as unaware or problem-aware for a new category, so demand must be created rather than harvested",
"Notes search's learning read is diluted because the system assembles the ad, placing it last on learning value per concept"
]
},
{
"id": 6,
"prompt": "Can you review the specs section of our Meta brief at Pattern & Pine (DTC furniture) before it goes to the freelance designer? Current draft: style should be 'premium, aspirational, authentic'; safe zone rule: keep text 250px from the top and 310px from the bottom on 9:16 exports; keep text under 20% of the image area or Meta throttles delivery; brand rules: I pasted 9 do's and 7 don'ts from our brand book. Also, we generated two background plates in Midjourney - I assume that's nobody's business. What would you change?",
"expected_output": "A corrected art-direction section replacing adjectives with reference ads, removing hardcoded safe-zone pixels in favour of in-placement preview, debunking the retired 20% text rule, cutting the do/don't list to about 2 each, and adding enhancements, AI-disclosure, accessibility, and per-placement spec fields.",
"files": [],
"expectations": [
"Replaces 'premium, aspirational, authentic' with 2-3 in-category reference ads, each carrying a one-line note on what to take from it",
"Explains that adjectives decode differently per reader while a reference ad means the same thing to everyone",
"Removes the hardcoded safe-zone pixel values and requires an in-placement preview before export instead",
"Justifies the removal because published safe-zone numbers disagree by tens of pixels, so any hardcoded number is a defect",
"States that Meta's 20% text rule was retired in 2020, with no hard limit and no auction penalty",
"Treats text density as a performance preference and labels claims of a persistent hidden delivery penalty as unverified vendor folklore rather than encoding them as a rule",
"Caps brand do's and don'ts at about 2 each, cutting the 9-and-7 list",
"Adds an enhancements field recording platform auto-enhancements on/off per type, because a toggle nobody set is an uncontrolled variable",
"Adds an AI-disclosure line: the Midjourney-generated plates are externally generated AI content that generally must be declared in the ads manager",
"Notes undisclosed AI content is a commonly reported rejection reason, contradicting the 'nobody's business' assumption",
"Includes accessibility fields: minimum 4.5:1 text contrast, captions on video, alt text, and no more than three flashes per second",
"Specifies aspect ratios per placement rather than one generic spec, because placements crop, truncate and overlay differently",
"Requires reviewing the asset at feed/mobile size, since a message that fails small fails everywhere"
]
},
{
"id": 7,
"prompt": "Write the test block for Klarawave (DTC skincare, running Meta and TikTok). We launch 6 files Monday. Rule I want written in: any ad whose hook rate is under 32% by Wednesday morning gets killed - 32% because our TikTok agency says that's the healthy bar, and we'll hold the Meta ads to the same standard. Each file should have 600-900 impressions by then. Mid-week we'll also swap the audience on the losers so they get a fair second chance. Results recap goes in the end-of-month slide deck as usual.",
"expected_output": "A test block that refuses cross-platform hook-rate benchmarking (3s Meta vs 2s TikTok), sets minimum-evidence floors well above 600-900 impressions, freezes targeting for the window, pre-commits on-win/on-loss actions, and routes learnings to a persistent angle bank rather than a slide deck.",
"files": [],
"expectations": [
"Rejects applying the TikTok 32% bar to Meta because hook rate is counted at 3-second plays over impressions on Meta but at 2 seconds on TikTok - never benchmark the metric across platforms",
"Sets a minimum of roughly 2,000 impressions before reading a hook rate, so 600-900 impressions by Wednesday supports no kill call",
"Requires roughly 5-10 conversions or spend of 5-10x target CPA before any conversion-based kill or scale decision",
"Presents those floors as attributed starting points to adapt to the account's volume, not universal laws",
"Prefers the account's own trailing history as the benchmark over published bands, with published reference bands labelled as attributed and never universal",
"Rejects swapping the audience on losers mid-test: targeting stays frozen for the test window and targeting changes are their own test",
"Explains that changing targeting mid-test means the test variable is no longer the only variable, making the result unreadable",
"Pre-commits the on-win and the on-loss action before launch",
"Names one deciding KPI with its benchmark written down before launch so kill/scale calls are not made by feel",
"States the single variable that changes and lists what stays constant",
"Routes the learning to a persistent written destination the whole team reads (angle bank or learning log), explicitly not only the end-of-month slide deck",
"Applies the minimum-evidence floor per file/variant rather than pooled across all six files",
"Positions hook rate as a leading signal read against the account's trailing average while the deciding KPI remains the conversion metric"
]
},
{
"id": 8,
"prompt": "Vantablue sells B2B expense software; we've run paid social for 10 months. Every sprint we cut 4 new hook variations of our 'close the books in 3 days' concept - it's the only concept family we've ever run - and results have been flat for a full quarter. Leadership wants next sprint's brief to be 6 more hook cuts because hooks are the cheapest test. One more thing: legal cleared a signed customer case study last month (close time cut 71%), but it's just sitting in a drive folder. Draft the testing approach for next sprint's brief.",
"expected_output": "A testing approach that names the iterate-only failure, declines another hook-only sprint, re-ranks the hypothesis types against the cleared case study (proof becomes the cheapest rung) and the flat family (angle test promoted), and writes a typed falsifiable hypothesis with constants and a learning destination.",
"files": [],
"expectations": [
"Names the failure pattern: months of hook iterations inside a premise never tested - the documented failure of a testing programme that only iterates",
"Lays out the five hypothesis types hook / proof / format / angle / persona with hook cheapest and persona/angle highest value",
"States that the efficiency order starves persona and angle, and that a flat concept family is the condition that promotes them - no hook rescues a wrong angle",
"Recommends against another hook-only sprint, noting rungs may be skipped outright when the flat family is the only family ever run",
"Identifies the cleared 71% case study as an unused proof asset that collapses the proof test's cost, re-ranking proof as the cheapest available rung",
"Recommends a concrete next test (proof and/or angle) with rationale tied to these account facts rather than a generic menu",
"States that a genuinely new angle is a new concept and gets its own brief, while hook cuts of one concept ride the original brief",
"Writes the hypothesis in the falsifiable 'If we lead with [pain] and [proof], then [audience] will [action]' form with an explicit type tag",
"Notes persona and angle tie on value because a result at either level rewrites every brief downstream, separating only on effort",
"Flags the iteration-paralysis trap: a programme optimised purely for variable isolation produces creative that all looks alike, so a share of briefs stays reserved for genuinely fresh concepts",
"Uses the case study as B2B-form proof: the quantified outcome (71% close-time cut) plus a badge or product screenshot",
"Specifies what stays constant when the chosen variable changes",
"Writes the learning destination (angle bank / persistent log) into the plan so wins and losses feed the next sprint",
"States that the hook default rung applies only when the angle has already won somewhere - a condition a quarter of flat results does not satisfy"
]
},
{
"id": 9,
"prompt": "First paid campaign for Fernhollow, DTC dog joint supplements. We have about 3,100 reviews across Amazon and our site, a brand-new ad account with zero past campaigns, and our founder is certain the winning message is 'vet-formulated science'. For competitor input my intern screenshotted 12 competitor ads that launched this week. We don't have time for research - just use the founder's angle and build the message and evidence sections of the brief.",
"expected_output": "Message and evidence sections built on mined evidence: scored review mining of the 3,100 reviews into the five buckets, 1-2 star objections filling the objection field with the revision gate, competitor ads refiltered by longevity, the past-winners method dropped for a new account, and the founder's angle demoted to one evidenced candidate.",
"files": [],
"expectations": [
"Refuses to build the message section on the founder's assertion alone: every claim in the brief must cite an evidence source, and a brief without evidence is a wish list",
"Applies (or specifies) scored review mining on the reviews: score each 1-5 and discard the 1s",
"Extracts surviving reviews into the five buckets: pain points, trigger moments, objections, transformations, and standout verbatim language",
"Maps buckets to brief parts: pains feed the angle matrix, triggers and transformations feed hooks, objections feed the objection field",
"Pulls the top recurring 1-2 star objections for the product and the category to fill the core-objection field",
"Sets the revision gate: creative that addresses neither of the top objections goes back for revision",
"Rejects the launched-this-week competitor screenshots as validation and refilters competitor ads by longevity (30+ days, longest-running first), not recency",
"Boards competitor ads by hook type and angle as a hypothesis pool and/or notes that ad libraries are public so competitors see yours too",
"Drops the past-winners mining method entirely because the account is new - it drops out of the ranking rather than moving down it",
"Keeps the founder's 'vet-formulated science' as at most one candidate direction requiring evidence, presented alongside review-derived alternatives with a recommendation, never installed as the single message",
"Writes the messaging angle as a conversational customer sentence, preferably using verbatim review language",
"Flags pet-supplement compliance: health claims need substantiation and treatment-claim phrasing is off-limits",
"Anchors the angle in pain rather than aspiration, since desire-anchoring is reserved for aspirational or luxury categories without a functional problem"
]
},
{
"id": 10,
"prompt": "We're onboarding 4 freelance UGC creators for Mielette, a French-style bakery subscription box (US paid social). My plan: send each creator the same word-for-word 45-second script so the message stays consistent; our standard usage term is unlimited perpetual rights; and we can skip disclosure hashtags since Meta already labels the ads 'Sponsored'. For feedback, our brand lead, product lead and legal counsel will each send creators notes as they think of them. Write up the creator section of the brief.",
"expected_output": "A creator section built on talking points and per-creator hook directions instead of one shared script, scoped usage rights (where/how long/geography) with unlimited-perpetual flagged, creator-level FTC disclosure that platform labels do not satisfy, a numeric revision cap, and one approver with consolidated feedback rounds.",
"files": [],
"expectations": [
"Replaces the word-for-word script with talking points, beats, and hook direction delivered in the creator's own words, because over-scripting kills the natural delivery that makes UGC work",
"Marks exact spoken lines and shot-by-shot scripting as outside this brief's scope - the brief writes direction, never the script",
"Briefs the creators on the same objective with different hook directions rather than identical scripts, treating round one as a learning round and rebriefing round two toward the winning direction",
"Specifies usage rights as three explicit terms: where the content runs, for how long, and in which geographies",
"Flags unlimited perpetual rights as a negotiation failure, not a template default",
"Requires creator-level FTC disclosure such as '[Ad]' or '[Paid Partnership]' at the start of the caption",
"States that platform ad labels ('Sponsored') do not satisfy creator-level disclosure obligations",
"Warns that automated placement resizing can drop a disclosure tag in some formats, so disclosure is verified per placement",
"Sets a revision cap as an agreed number in the brief, not discovered mid-project",
"Replaces scattered notes from three leads with one approver and one consolidated feedback round per revision",
"Includes the send-back rule: creative goes back for revision when it addresses neither of the brief's top objections",
"Gives hook direction per option across the three layers SPOKEN / VISUAL / TEXT OVERLAY, still as direction the creator interprets",
"Includes a b-roll list and/or the adaptable beat structure (cold open 0-2s visual hook, problem, demo/result, proof overlay, CTA) as beats rather than a script"
]
},
{
"id": 11,
"prompt": "Our CMO at Torvik Labs approved the new briefing process on one condition: it produces a winning ad within the first two sprints, and she wants a day-one dashboard tracking 'briefs that produced winners' as the main quality metric. We ship about 4 concepts a month. How should we measure whether the briefing process itself is working?",
"expected_output": "A measurement plan that refuses the winner guarantee (about 5% of creatives win at scale), instruments in efficiency order - rebrief rate first with an under-20% self-set target, then brief-to-launch cycle time, then a rolling 90-day concepts-to-winner ratio flagged as noise at this volume - with diagnostic reads for each.",
"files": [],
"expectations": [
"Declines to promise a winning ad: roughly 5% of creatives become winners at scale, a hit rate no brief can repeal",
"Frames the brief's job as maximising the quality, cleanliness and diversity of every at-bat rather than promising outcomes",
"Instruments the three KPIs in efficiency order, standing them up one at a time rather than all three at once",
"Puts rebrief rate first: the share of briefs sent back for clarification before production starts, kept as a simple counter by whoever sends briefs back",
"Gives the rebrief-rate target as under 20%, labelled a practical self-set target to tighten from the team's own history, not a researched constant",
"Puts brief-to-launch cycle time second, measured as two dates per brief, with the published benchmark of 10 business days or less",
"Puts the concepts-briefed-to-winner ratio third over a rolling 90-day window, warned to be noise until enough concepts ship - which two sprints at 4 concepts a month cannot provide",
"Judges the winner ratio against the team's own history rather than an absolute bar, given the roughly 5% base rate",
"Notes the re-rank condition: if a rolling results log already exists in the reporting stack, the ratio becomes free and moves to the top",
"Provides the diagnostic reads: a rising rebrief rate is a brief problem; a collapsing winner ratio with clean briefs is a concept-diversity problem",
"Cites the briefing stakes: roughly a third of marketing budget wasted through poor briefing and/or the gap where 80% of marketers think their briefs are good while only 10% of agencies agree",
"Defines when a single brief counts done: every field carries real content with an evidence citation and the executor confirms zero clarification questions on read-through"
]
}
],
"trigger_queries": [
{ "query": "Write a creative brief for our new Meta campaign", "should_trigger": true },
{ "query": "I need to brief our designer on the next batch of ads", "should_trigger": true },
{ "query": "What should our Facebook ads actually say? I already have the audience research", "should_trigger": true },
{ "query": "Put together a design handoff doc for our freelance video editor for the spring ad push", "should_trigger": true },
{ "query": "Help me define the messaging pillars for our paid campaign", "should_trigger": true },
{ "query": "Our agency keeps asking for a brief before they'll start on the ads - what do I send them?", "should_trigger": true },
{ "query": "Draft creative direction for a TikTok campaign for our protein bar brand", "should_trigger": true },
{ "query": "I have a campaign goal and a customer insight - turn it into something a designer can execute", "should_trigger": true },
{ "query": "How do I brief a UGC creator without micromanaging them?", "should_trigger": true },
{ "query": "We need hook directions for the new video ads before the shoot next week", "should_trigger": true },
{ "query": "Write up the art direction section for our ad concept", "should_trigger": true },
{ "query": "My designer made ads that completely missed the point - how do I hand this off better next time?", "should_trigger": true },
{ "query": "What goes into a performance marketing creative brief?", "should_trigger": true },
{ "query": "Turn this audience insight into a messaging angle and hook directions for the designer", "should_trigger": true },
{ "query": "One-pager for the video editor: what the new ad needs to communicate, plus specs", "should_trigger": true },
{ "query": "I keep rewriting the agency's ad drafts - I think my briefs are the problem", "should_trigger": true },
{ "query": "Brief for a static ad concept targeting problem-aware shoppers", "should_trigger": true },
{ "query": "We're testing 3 new ad concepts next sprint - write the briefs", "should_trigger": true },
{ "query": "What's the right structure for briefing ad creative to an in-house design team?", "should_trigger": true },
{ "query": "Turn this customer review insight into a creative brief for Instagram ads", "should_trigger": true },
{ "query": "I hired someone on Fiverr to make our promo video ad and I don't know what to send her", "should_trigger": true },
{ "query": "The intern is making our ad visuals - what instructions do I give so they come back usable?", "should_trigger": true },
{ "query": "Need a doc for the video guy: campaign goal, what to say, sizes, deadline", "should_trigger": true },
{ "query": "How prescriptive should I be when briefing a UGC creator versus an in-house editor?", "should_trigger": true },
{ "query": "Give me a template for a per-concept ad test brief", "should_trigger": true },
{ "query": "What aspect ratios and spec notes should go in the brief for Reels placements?", "should_trigger": true },
{ "query": "Define the messaging angle and hooks for our new campaign concept", "should_trigger": true },
{ "query": "Our ads all say five things at once - help me tighten the message for the next creative round", "should_trigger": true },
{ "query": "Write the revision and feedback process for working with our ad creators", "should_trigger": true },
{ "query": "How do I tell the designer what I want without writing the ad for them?", "should_trigger": true },
{ "query": "Prep the handoff for tomorrow's shoot: what the ad needs to say and show", "should_trigger": true },
{ "query": "Creative brief for a B2B LinkedIn video campaign targeting CFOs", "should_trigger": true },
{ "query": "I need art direction and reference ads picked before the designer starts", "should_trigger": true },
{ "query": "Fill in the hypothesis and hooks sections of my creative brief", "should_trigger": true },
{ "query": "Our briefs keep coming back with clarification questions - fix our brief format", "should_trigger": true },
{ "query": "Structure a brief for responsive search ads - the headline and description pool", "should_trigger": true },
{ "query": "Awareness level, angle, hooks - walk me through building the messaging for this campaign", "should_trigger": true },
{ "query": "Build a brief for our first UGC campaign including usage rights and disclosure", "should_trigger": true },
{ "query": "How many hook options should I give the editor, and how do I pick them?", "should_trigger": true },
{ "query": "Translate our customer pain research into an ad concept the design team can produce", "should_trigger": true },
{ "query": "The founder wants 'premium and bold' ads - help me turn that into something a designer can act on", "should_trigger": true },
{ "query": "Concept, angle, hook - my team uses these words differently; help us brief consistently", "should_trigger": true },
{ "query": "Write the test block for this creative brief - what changes and what stays constant", "should_trigger": true },
{ "query": "Brief my video editor on a pain-first concept for our insole brand", "should_trigger": true },
{ "query": "We launch on Meta in two weeks - I need the creative direction locked today", "should_trigger": true },
{ "query": "What evidence should I gather before writing the next ad brief?", "should_trigger": true },
{ "query": "Draft a one-page spec for the ad shoot: message, hooks, do's and don'ts", "should_trigger": true },
{ "query": "Ad concept handoff: what does the designer need from me so there's only one revision round?", "should_trigger": true },
{ "query": "Turn our winning angle into a brief for three new iterations", "should_trigger": true },
{ "query": "How do I write a brief for a carousel ad concept?", "should_trigger": true },
{ "query": "What should the ad say to people who know our product but haven't bought yet?", "should_trigger": true },
{ "query": "Kick off creative production for Q3 - goals are set, I need the briefs written", "should_trigger": true },
{ "query": "Make me a brief the video editor can't misinterpret", "should_trigger": true },
{ "query": "Our creative strategist quit - I have to write the concept briefs myself now, guide me", "should_trigger": true },
{ "query": "What should the first frame and opening line of our new ad concept communicate?", "should_trigger": true },
{ "query": "Turn this positioning doc into ad creative direction", "should_trigger": true },
{ "query": "I need briefs for two concepts - one static, one short video - same campaign", "should_trigger": true },
{ "query": "How do I specify auto-enhancements and AI disclosure in an ad brief?", "should_trigger": true },
{ "query": "Write the audience and message sections for our new ad concept", "should_trigger": true },
{ "query": "A freelancer starts Monday on our ad creatives - what do I prepare this weekend?", "should_trigger": true },
{ "query": "Help me pick which hook trigger type to test first for a problem-aware audience", "should_trigger": true },
{ "query": "The last shoot produced footage nobody could use - improve our pre-shoot brief", "should_trigger": true },
{ "query": "Pick 2-3 reference ads with notes for the designer - help me assemble the art direction", "should_trigger": true },
{ "query": "Our ad concepts keep coming back as taglines - help me write angles a human would say", "should_trigger": true },
{ "query": "Set the deliverables arithmetic and naming convention for the next creative batch", "should_trigger": true },
{ "query": "I have review-mining output - turn it into a briefed ad concept", "should_trigger": true },
{ "query": "Write a brief for a founder-on-camera ad concept", "should_trigger": true },
{ "query": "What belongs in the test block of a creative brief?", "should_trigger": true },
{ "query": "Our briefs are six pages and nobody reads them - cut one down to what matters", "should_trigger": true },
{ "query": "Briefing a designer for ads in a regulated category - what claim guidance goes in?", "should_trigger": true },
{ "query": "Write 10 Facebook ad headlines for our meal-kit service", "should_trigger": false },
{ "query": "Give me 5 CTA variations for this ad copy", "should_trigger": false },
{ "query": "Rewrite this ad's primary text so it converts better", "should_trigger": false },
{ "query": "Write the full 40-second UGC script with exact spoken lines for our creator", "should_trigger": false },
{ "query": "Script a TikTok ad word for word - hook line, body, CTA", "should_trigger": false },
{ "query": "Here are transcripts of three video openings - which hook deserves the test budget?", "should_trigger": false },
{ "query": "Score the first 3 seconds of this ad script", "should_trigger": false },
{ "query": "Our best ad's ROAS has slid for two weeks - is the creative fatigued or something else?", "should_trigger": false },
{ "query": "Frequency hit 4.2 and CTR is dropping - time to refresh this creative?", "should_trigger": false },
{ "query": "How many conversions per cell do I need before this creative test is readable?", "should_trigger": false },
{ "query": "Design the test matrix and per-cell budgets for testing 6 creatives", "should_trigger": false },
{ "query": "Build the audience targeting plan for our campaign - lookalikes, interests, retargeting pools", "should_trigger": false },
{ "query": "Which audiences should we layer for cold prospecting on Meta?", "should_trigger": false },
{ "query": "Our CPA doubled last month - diagnose what's wrong with the account", "should_trigger": false },
{ "query": "Why did ROAS drop across the whole account? Walk through the possible causes", "should_trigger": false },
{ "query": "Meta says 412 conversions, Shopify says 268 - explain the gap", "should_trigger": false },
{ "query": "Should we switch from manual CPC to target ROAS bidding?", "should_trigger": false },
{ "query": "Set the tCPA for our new campaign and tell me when to move it", "should_trigger": false },
{ "query": "We're 40% underspent halfway through the month - fix our pacing", "should_trigger": false },
{ "query": "Project our month-end spend against the $60k budget", "should_trigger": false },
{ "query": "Map the buying committee for an $80k ACV data platform and how to reach each role", "should_trigger": false },
{ "query": "We have 47 campaigns and 300 ad sets - which should we merge?", "should_trigger": false },
{ "query": "Verify our pixel and Conversions API are deduplicating before launch", "should_trigger": false },
{ "query": "Is our purchase event double-firing? Check before we scale", "should_trigger": false },
{ "query": "Should this campaign use carousel or collection format on Meta?", "should_trigger": false },
{ "query": "Build a negative keyword list from this search terms report", "should_trigger": false },
{ "query": "Which ad platforms fit a $3k/month budget for a niche B2B tool?", "should_trigger": false },
{ "query": "Split our $90k quarterly budget across Google, Meta and LinkedIn", "should_trigger": false },
{ "query": "What CAC ceiling and ROAS floor should we set as company policy?", "should_trigger": false },
{ "query": "Collect our competitors' current ads into a categorized swipe file", "should_trigger": false },
{ "query": "Organize these competitor ad screenshots into a searchable library", "should_trigger": false },
{ "query": "Is a 2.1 ROAS healthy given our margins?", "should_trigger": false },
{ "query": "Compute our blended CAC from this spend and revenue export", "should_trigger": false },
{ "query": "Write copy for an ad slot inside an AI assistant's answer", "should_trigger": false },
{ "query": "Which customers should seed our lookalike audience?", "should_trigger": false },
{ "query": "Audit the landing page our ads send traffic to - conversion is 0.9%", "should_trigger": false },
{ "query": "Our winning campaign runs at $200/day - how fast can we scale it to $1,000?", "should_trigger": false },
{ "query": "Design the retargeting sequence for cart abandoners with frequency caps", "should_trigger": false },
{ "query": "Plan a campaign promoting our CEO's LinkedIn posts as paid ads", "should_trigger": false },
{ "query": "How do I become a creative strategist - what belongs in my portfolio?", "should_trigger": false },
{ "query": "Write the job description and interview loop for a paid social manager", "should_trigger": false },
{ "query": "Which PPC newsletters and podcasts are worth my time?", "should_trigger": false },
{ "query": "Where do I even start with paid ads for my startup?", "should_trigger": false },
{ "query": "Write a creative brief for our logo redesign project", "should_trigger": false },
{ "query": "Draft the brief for our wedding videographer", "should_trigger": false },
{ "query": "Brief for the new website homepage design", "should_trigger": false },
{ "query": "Write a content brief for a blog post targeting 'best CRM for startups'", "should_trigger": false },
{ "query": "Brand brief for our rebrand - mission, values, voice", "should_trigger": false },
{ "query": "Creative brief for our trade-show booth design", "should_trigger": false },
{ "query": "Brief our PR agency on the product launch announcement", "should_trigger": false },
{ "query": "Write the brief for our email newsletter redesign", "should_trigger": false },
{ "query": "Put together a photography brief for the product catalog shoot", "should_trigger": false },
{ "query": "Brief for an explainer video on our documentation page", "should_trigger": false },
{ "query": "Help me brief our social media manager on the organic content calendar", "should_trigger": false },
{ "query": "Draft an influencer gifting campaign brief - organic posts only, no paid", "should_trigger": false },
{ "query": "Score these 12 hooks from our last campaign and rank them", "should_trigger": false },
{ "query": "Rank my competitor's video openings by predicted performance", "should_trigger": false },
{ "query": "Turn this value prop into 15 RSA headlines ready to paste into Google Ads", "should_trigger": false },
{ "query": "Write the exact on-screen text overlays for our finished video edit", "should_trigger": false },
{ "query": "Our ad got rejected by Meta - figure out which policy we tripped", "should_trigger": false },
{ "query": "Set the sample size and stopping rule for this creative test", "should_trigger": false },
{ "query": "How long should the retargeting window be for abandoned carts?", "should_trigger": false },
{ "query": "Compare our CPMs to industry benchmarks for Q4", "should_trigger": false },
{ "query": "Ads Manager shows 'learning limited' - what do I do?", "should_trigger": false },
{ "query": "Choose between Advantage+ and manual campaign structure for our shop", "should_trigger": false },
{ "query": "Write ad copy variants at three awareness stages for our SaaS", "should_trigger": false },
{ "query": "Storyboard and shot list for tomorrow's UGC shoot, scene by scene", "should_trigger": false },
{ "query": "What's the ideal video length for Reels ads?", "should_trigger": false },
{ "query": "Which creative elements correlate with ROAS across our account?", "should_trigger": false },
{ "query": "Set up UTM naming conventions for our campaigns", "should_trigger": false }
]
}
SKILL.md
---
name: ad-creative-brief
description: "Turn a campaign goal and an audience insight into a structured creative brief a designer, video editor, or UGC creator can execute - messaging angle, hook directions, art direction, specs, testing intent, and the handoff and revision loop. Covers B2B and B2C, with variants for static image, short-form video/UGC, and search/responsive text ads. Use whenever the user needs to brief a designer or creator, asks what an ad should say, or mentions messaging pillars, creative direction, or a design handoff - even if they never say 'brief'. Writes direction, never the finished asset: the ad copy itself is mbfinotti/advertising-skills@ad-copy-variants and shot-by-shot creator scripts are mbfinotti/advertising-skills@ugc-ad-scripts."
license: MIT
metadata:
author: Maya-Beth Finotti
version: "1.0.2"
---
# Creative Brief
Write a performance-marketing creative brief: a per-concept test specification, not a brand brief with metrics bolted on. The classic agency brief centers on a single-minded proposition, is written once per campaign, and stays deliberately loose so it can inspire. The performance brief replaces that proposition with a **falsifiable creative hypothesis**, is written per concept per sprint, and is prescriptive about hooks, specs and decision thresholds because dozens of variants ship each cycle.
The stakes are documented. The BetterBriefs Project (IPA, 1,700+ marketers and agency staff, 70+ countries) found respondents estimate ~33% of marketing budget is wasted through poor briefing, and that 80% of marketers think they write good briefs while only 10% of agencies agree. Agencies name the gaps as focus (83%), clarity (79%) and inspiration (65%).
One honesty check frames everything else. Motion's 2026 analysis of $1.29B in Meta spend across 578,750 creatives found roughly 5% of creatives become winners - a hit rate no brief can repeal. So the brief's job is not to promise a winner; it is to maximise the quality, cleanliness and diversity of every at-bat.
This skill ends at the approved brief document, and never produces final creative. Writing the finished ad copy belongs to `mbfinotti/advertising-skills@ad-copy-variants`; the shot-by-shot creator script - spoken lines, shot list - belongs to `mbfinotti/advertising-skills@ugc-ad-scripts`. This brief writes hook _direction_, never hook scripts; that line is the boundary.
Hand off elsewhere too: scoring an existing video opening to `mbfinotti/advertising-skills@ad-hook-analyzer`, deciding a running ad is worn out to `mbfinotti/advertising-skills@ad-creative-fatigue`, sample-sizing and structuring the test itself to `mbfinotti/advertising-skills@ad-creative-test-plan`, and the targeting plan to `mbfinotti/advertising-skills@ad-audience-targeting`.
## Interview
Ask before drafting anything. One question per message; offer multiple-choice answers where possible; skip anything already answered or visible in supplied material.
- Campaign goal, and the single primary KPI the creative will be judged on?
- Platform(s) and placements?
- B2B or B2C/DTC?
- Awareness level of the target audience: unaware / problem-aware / solution-aware / product-aware / most-aware? ("All audiences" is not an answer - it is the most common brief defect; press for one level per brief.)
- Who executes the brief: in-house designer, video editor, freelance UGC creator, or agency? (Changes how prescriptive to be, and whether rights and disclosure fields apply.)
- Production capacity, deadline, and revision cap? Is the deadline hard? (The format and testing-intent orderings below span hours to a week in time-to-effect, so they cannot be ranked without it.)
- Do you want the fastest at-bat available now, or learning that compounds across future briefs - a validated persona, a cleared proof asset, an owned footage library? (The first favours static and hook tests, the second favours video/UGC and persona tests.)
- Effort ceiling: who can be pulled in without asking permission, and can you get creator rights and claim approval at all? (A "no" deletes rungs rather than delaying them.)
- Brand mandatories and compliance constraints? (Regulated category? Which claims need substantiation before they may appear in a paid ad?)
- What evidence already exists: customer reviews, sales-call notes, ad comments, past winners with their metrics, competitor ads?
- Budget and expected deliverable count?
- Are platform auto-enhancements on or off - and does anyone actually know?
## Brainstorm Before You Brief
Never jump from interview to a finished brief; the brief hardens assumptions, so surface them first.
1. Restate the campaign goal and the audience insight in one sentence each; get confirmation before proceeding.
2. Mine the evidence (methods in [references/angle-frameworks.md](references/angle-frameworks.md)) and shortlist the candidate pains/desires and personas.
3. Present 2-3 candidate concept directions - each with its messaging angle, the evidence it rides on, its format family, its trade-offs - and one recommendation with rationale. Ask narrowing questions one at a time.
4. Once a direction is picked (or blended), draft the brief section by section and validate each before moving on: context + audience, then message + hypothesis, then hooks + art direction, then the testing block.
5. Hold an explicit approval gate: no brief is final without sign-off. Log rejected directions in the angle bank - they are future tests, not waste.
## Workflow
1. Run the Interview.
2. Gather evidence using the mining methods in [references/angle-frameworks.md](references/angle-frameworks.md): scored review mining, top recurring 1-2 star objections, voice-of-customer beyond reviews (B2B: call notes, CRM comments, search terms), competitor ads filtered by longevity, past winners with their metrics. Every claim in the brief cites a source; a brief without evidence is a wish list.
3. Run the brainstorming mode above.
4. Fix the translation chain (below): pain → persona → messaging angle → awareness level → hook direction → format.
5. Write **one brief per concept** using [references/brief-template.md](references/brief-template.md), choosing the format variant (static / search / video-UGC, ranked in Format Variants below). Variations of a winning concept ride the original brief; only a genuinely distinct concept gets a new one. Target length: 1-2 pages including references.
6. Fill the testing-intent block and assign asset names via the naming convention - never leave naming to whoever uploads.
7. If you can browse the web, pull the platform's _currently published_ aspect ratios and safe zones for each target placement; otherwise write "preview in-placement before export" into the specs field. Published safe-zone numbers disagree by tens of pixels, so a hardcoded number is a defect either way.
8. Check the draft against the failure-modes table, then pass the messaging angle and hook option lines through your preferred humanizer skill - they must read as conversational human statements, not marketing copy.
9. Hand off. Run the revision loop: collect feedback in one consolidated round per revision (scattered piecemeal notes burn the revision cap), and send creative back if it addresses neither of the brief's top objections.
10. When results land, write the outcome into the brief's learning field and the angle bank. If your harness has persistent memory, memorize the angle bank, hook performance by trigger type, and per-concept outcomes so the next brief starts from history.
## The Translation Chain
The intellectual core, and the part most briefs skip. Motion's Creative Strategy Engine is the named public methodology: **Pain (or Desire) → Persona → Messaging Angle → Awareness level → Hook → Format.**
- Pain is the default anchor; reserve desire for aspirational or luxury categories where no functional problem exists.
- Personas are secondary: different life contexts in which people feel the _same_ pain. Each pain × persona cell is a distinct messaging-angle opportunity.
- A messaging angle is a conversational human statement capturing the insight at that intersection - explicitly not a tagline or slogan.
- The angle stays constant across awareness levels; only its expression changes.
The named frameworks behind the chain - Eugene Schwartz's five levels of awareness (Breakthrough Advertising, 1966; Schwartz's own word was _levels_, not stages) and its neglected sibling, market sophistication - plus the pain × persona matrix and the awareness-to-hook mapping live in [references/angle-frameworks.md](references/angle-frameworks.md).
## Fixed Vocabulary
"Concept", "angle" and "hook" are used inconsistently across the industry - strategists, copywriters and media buyers each mean something different, and testing under one fuzzy label destroys learning. The practical fix is to tag on independent dimensions rather than argue over a word (Dara Denney's decomposition uses five: format, creator, messaging, imagery, persona). This skill fixes the vocabulary, and every brief restates these definitions in its own header:
- **Concept**: a distinct creative idea - one brief, one concept.
- **Angle**: the argument for why this person should care, stated as a human sentence.
- **Hook**: the opening 1-3 seconds (video) or the first-read elements (static) - an _expression_ of the angle.
- **Format**: the execution container (testimonial, demo, founder, us-vs-them, static, carousel...).
- **Iteration**: a variant that changes one element of an existing concept; not a new concept, not a new brief.
## The Brief Skeleton
Compact shape; per-field guidance and format variants in [references/brief-template.md](references/brief-template.md); worked examples plus an annotated bad brief in [references/examples.md](references/examples.md).
```
CREATIVE BRIEF - <concept name>, <date> - definitions header (concept/angle/hook/format/iteration)
1 CONTEXT goal + primary KPI | platform(s) + placements | launch + production dates | budget
2 AUDIENCE persona + life context | awareness level (one of five) | belief held before seeing
the ad | core objection | B2B: committee role this brief targets
3 MESSAGE messaging angle (one conversational sentence) | value prop | one proof point |
evidence citations (review/call-note/winner each claim traces to)
4 HYPOTHESIS "If we lead with [pain] and [proof], then [audience] will [action]"
type (efficiency order): hook | proof | format | angle | persona
5 HOOKS 3-5 directions, each tagged by trigger type; video: SPOKEN / VISUAL / TEXT OVERLAY
per option; recommended first test + rationale
6 ART 2-3 reference ads, one-line note each | do (max 2) / don't (max 2) | ratios + safe
zones ("preview in-placement") | sound-off design + accessibility | enhancements
on/off per type | AI-disclosure line
7 DELIVERABLES arithmetic (e.g. 2 hooks x 1 main edit = 3 files) | iteration vs net-new flag |
naming convention | revision cap | UGC: usage rights (where / how long / geography)
+ creator-level disclosure
8 TEST the one variable that changes + what stays constant | minimum spend or impressions
before any call | deciding KPI + its benchmark | on win / on loss | where the
learning gets written
```
## Hook Direction
A video hook has three layers; brief and label them separately (Motion's convention):
- **SPOKEN** - first words on camera.
- **VISUAL** - what happens in the first frame.
- **TEXT OVERLAY** - on-screen text.
For statics: primary-text hook, headline, caption hook. Offer 3-5 options, each tagged with exactly one trigger type, plus a recommended first test and why.
Value is not a property of the trigger - the awareness level sets it (mapping in [references/angle-frameworks.md](references/angle-frameworks.md)), so a trigger the level rules out is worth nothing however cheap it is. Gate on the level first, then rank the survivors by what they cost on a body already shot or a layout already designed. The eight trigger types, in that efficiency order:
1. **Pain agitation** - one spoken line, and the evidence is already mined. Near-zero.
2. **Identity call-out** - one spoken line plus one overlay. Near-zero.
3. **Contrarian / myth-busting** - near-zero to write; spends political capital when the claim contradicts brand or category orthodoxy.
4. **Urgency / stakes** - near-zero to write; gated on offer mechanics, and any scarcity or deadline claim has to be true before it runs.
5. **Curiosity gap** - near-zero to write, plus the resolution field: where the loop closes.
6. **Social proof / credibility** - near-zero when the review wall or badge already exists; a week when it must be gathered, plus testimonial substantiation and sign-off in a regulated category.
7. **Aspiration / desire** - an after-state to stage or shoot.
8. **Pattern interrupt** - its own frame or set-up: a shoot, not a rewrite.
- effort: pattern interrupt > aspiration > social proof > curiosity gap > pain agitation == identity call-out == contrarian == urgency
- compliance cost: social proof > urgency > contrarian > aspiration == pain agitation == identity call-out == curiosity gap == pattern interrupt
The four-way effort tie is real, not a shrug: pain agitation, identity call-out, contrarian and urgency are each one written line against footage that already exists, so there is nothing left to trade between them. Contrarian and urgency then separate on compliance instead, which is why they leave the tie on the line below. The five-way compliance tie holds for the same shape of reason: none of those five asserts a result, names a person, or promises a deadline, so none triggers a review the category did not already require.
**What this order starves: social proof, and pattern interrupt behind it.** Social proof is the only trigger carrying third-party evidence and it sits sixth, because gathering the wall or the badge costs a week and a sign-off. Pattern interrupt is last on effort because it needs its own frame shot.
A brief written purely by ratio therefore tests the four one-line triggers forever and never puts evidence in front of the reader. Promote them when the asset already exists and is cleared - social proof's cost then collapses to near-zero while its value is unchanged - or when the interview answer was a compounding mandate, which justifies paying for a pattern-interrupt shoot once and reusing the footage across the quarter.
Delete rather than demote: if no cleared customer result exists and none can be obtained, **social proof is deleted from this brief's trigger menu and named as deleted**; if the category bars the claim contrarian or urgency rests on, those are deleted too. A ruled-out trigger held at the bottom of the list gets briefed anyway by whoever reads it next.
Default first test: the highest-ranked surviving trigger the awareness level actually endorses. That is a default, not a law - it moves with the category and with who executes. Re-rank against the interview answers and say which answer moved which trigger: a hard deadline keeps you inside the one-line four. Then re-rank against what this account already owns - an in-house editor who turns a new opening frame in an afternoon, a cleared library of customer footage, a founder who is genuinely good on camera - each of which moves an expensive trigger up several places.
Direction, not script: "open with the problem, named directly" is direction; the exact words belong to the executor or to `mbfinotti/advertising-skills@ugc-ad-scripts`. Source hook options from evidence, not a blank page: pull competitor ads from public ad libraries and filter by **longevity, not recency** - an ad still running after months is the validated one (Foreplay's Jack Kavanagh) - and use Ben Heath's hook-factory approach (a few video bodies × many spoken and visual hook variants captured in one shoot) to make hook options cheap to produce.
## Art Direction Rules
- **Reference examples beat adjectives.** "Authentic" and "premium" mean different things to different people; a reference ad means the same thing to everyone. Include 2-3 in-category reference ads, each with a one-line note on what to take from it.
- Cap brand do's and don'ts at ~2 each; a longer list stops being read.
- Name aspect ratios per placement, but do not hardcode safe-zone pixels - published numbers disagree by tens of pixels. Require an in-placement preview before export instead.
- Design sound-off: every claim that matters must be legible as on-screen text; captions are non-optional. Exception to note in the brief: Reels skews sound-on (roughly 70-80% of viewers with audio, per Benly), so the best Reels creative works both ways.
- Accessibility fields: WCAG 4.5:1 minimum contrast for text, captions on video, alt text, and no more than three flashes per second.
- Meta's "20% text rule" was retired in 2020: there is no hard limit and no auction penalty. Treat text density as a performance preference. Claims of a persistent hidden delivery penalty circulate in vendor posts and are unverified - say so rather than encoding folklore as a rule.
- **Enhancements field**: platform auto-enhancements are default-on and expand the variable space without asking. A toggle nobody set is an uncontrolled variable, so the brief records enhancements on/off per type.
- **AI-disclosure line**: content generated outside the platform's own tools generally must be declared in the ads manager (platforms auto-label their own tools' output); undisclosed AI content is a commonly reported rejection reason. A brief field, not an afterthought.
## Testing Intent
Every brief carries a falsifiable hypothesis - Directive Consulting's B2B template generalizes well: _"If we lead with [pain] and [proof], then [audience] will [action]."_ Type it, change exactly one variable, and hold everything else constant.
The five types, in efficiency order:
- **Hook** - one extra cut from the same shoot.
- **Proof** - swap the evidence, reshoot nothing.
- **Format** - a new container, so a new production.
- **Angle** - a new concept and a new brief.
- **Persona** - new research, new audience, parallel briefs.
That order inverts on the other two axes, which is the whole point of naming a type:
- effort: persona > angle > format > proof > hook
- value (how much of the account the learning transfers to, and for how long): persona == angle > format > proof > hook
Persona and angle tie on value because a result at either level rewrites every brief downstream of it - a wrong persona and a wrong angle both invalidate the hooks, formats and proofs already tested underneath them. They separate on effort, which is the only thing that orders them.
**What this order starves: persona, and angle behind it.** They are the two highest-value types and the two most expensive, so a ratio picks hook every sprint. That is the documented failure of a testing programme that only ever iterates: months of hook cuts inside a premise nobody has ever tested.
Promote them when the concept family is flat - no hook rescues a wrong angle, and no angle rescues a wrong persona - when the flat family is the only family you have ever run (skip rungs outright), or when the interview answer was a compounding-learning mandate. A research team that can stand up a persona in days collapses the effort axis and promotes it on cost alone.
Default rung: **hook**, whenever the angle has already won somewhere - a hook test is one extra cut from the same shoot and resolves inside a sprint. A hard near-term deadline pins you there.
Re-rank against an unfair advantage you already hold, such as a proof asset (named customer outcome, third-party badge) already cleared and sitting unused, which makes a proof test the cheapest rung rather than the third. Where the account cannot run a type at all - no budget for persona research, no second audience to test against - delete that rung and say so, rather than leaving it at the top of a list nobody can act on.
- State deliverables as arithmetic (`2 hooks × 1 main edit = 3 files`) and flag iteration vs net-new explicitly: a resize is not a new design; three hook cuts of one video are not three concepts. This field is what prevents scope disputes.
- Pre-commit minimum evidence before any kill/scale call. Attributed starting points, not laws: at least 2,000 impressions before reading a hook rate (SparkUGC), and roughly 5-10 conversions or spend of 5-10× target CPA before a conversion-based call (Taylor Sicard). Adapt to the account's volume.
- Metric trap: hook rate is 3-second plays ÷ impressions on Meta but TikTok counts at 2 seconds - never benchmark across platforms. Published reference bands, attributed and never universal: 25-30%+ hook rate healthy on Meta cold traffic, 25%+ hold rate (SparkUGC; Motion).
- Decide up front what happens on win and on loss, and where the learning gets written - a system the whole team reads, never only a slide deck.
- **Naming**: the brief assigns asset names. Four levels - concept → iteration → format → test variable - ASCII only, underscores between variables (published convention via Apogee). Example: `PainFirst_V2_9x16_HookQuestion`.
## B2B vs B2C
The translation chain, hook layers, art rules and testing block work the same way for both. What differs:
**B2B**: one product needs _parallel_ persona briefs (economic buyer, technical evaluator, end user), because the buying committee averages ~8-13 people over cycles near 10 months (SalesHive) - not one persona at a time. The brief's KPI is SQL rate or cost per opportunity, never CTR alone: Directive's worked example had a variant win on clicks (+35%) while producing fewer conversions at a higher CPA - a CTR-optimised B2B brief buys expensive junk leads.
Proof is a quantifiable outcome plus a badge or product screenshot, not a before/after. Practitioner-led talking-head video tends to beat polished brand video (AJ Wilcox). Product marketing owns ICP and differentiator accuracy - consult them on every brief.
**B2C/DTC**: faster cycles, offer mechanics as an explicit brief field, review-mined verbatim language in angles and hooks, creator formats dominant.
## Format Variants
Full field lists in [references/brief-template.md](references/brief-template.md). Pick the container by learning bought per production hour, then let the placement veto the pick. The three, in efficiency order:
1. **Static** - one designer for an hour or two, and it reads the angle directly. The cheapest honest at-bat, and the default first concept.
2. **Search** - about an hour of writing and checking an asset pool, but the read is diluted because the system assembles the ad. Enters the ranking only where keyword demand already exists; where it does not, it drops out rather than ranking last.
3. **Video/UGC** - the strongest learning, since the three hook layers are isolated separately, and the largest bill: creator search, shoot, rights, revision rounds. A week of coordination, not hours.
- effort: video/UGC > static > search
- learning value per concept: video/UGC > static > search
- compliance cost: video/UGC (creator usage rights, paid-partnership and testimonial disclosure, AI-likeness disclosure where the face is synthetic) > static == search (whatever claim substantiation the category already demands)
Static and search tie on compliance because neither introduces a person, a performance or a rights-holder: the only review either triggers is the claim substantiation the category already demanded before either brief existed.
**What this order starves: video/UGC.** Top of the value axis, last on efficiency, so it loses every round to a static a designer turns in an hour. A team briefing by ratio alone ships statics indefinitely, never builds a footage library, and still cannot say which hook layer moves the number.
Promote it over the ratio on any of these, and name which one did it:
- A compounding mandate in the interview. The shoot buys footage, a validated creator and a rights agreement that make every later video brief an editing job.
- The placement vetoes the alternatives: on Reels- or TikTok-first placements a static barely earns delivery, so video/UGC leads because the others score zero there, not because it got cheaper.
- Statics have plateaued across the concept family. No new layout rescues an angle whose delivery format is wrong.
- The account already holds the expensive parts - in-house studio, standing creator roster, owned footage library - each of which collapses the effort axis outright.
Delete, do not demote. If the user answered that they cannot get creator rights or claim approval at all, **video/UGC is deleted from this brief's format menu and named as deleted**, not ranked last where the next sprint reads it as merely expensive and briefs it anyway. Same treatment for search where no keyword demand exists - it drops out rather than ranking last (above).
A hard deadline is different: it pins you to static for _this_ brief without removing video/UGC from the menu, so say "deferred to the next sprint", never "deleted".
The variant that breaks intuition is **search**: no hook, no visual - the system assembles the ad. Brief an asset pool (up to 15 headlines at 30 characters, 4 descriptions at 90 on responsive search ads) and map headlines to pain / product / proof themes - search's messaging-pillar equivalent (Directive).
Two warnings belong in every search brief:
- Ad Strength is a content-quality signal with no direct effect on Ad Rank; never chase it.
- Pinning restricts combination testing sharply (one published analysis puts a single pinned headline at >75% less testing).
For **UGC**: hook direction not hook script, talking points over word-for-word lines, revision cap and usage rights (where, how long, which geography) as brief fields, and creator-level FTC disclosure that platform ad labels do not satisfy.
## Measuring Whether This Worked
Instrument in this order - efficiency, not importance - rather than standing all three up at once:
1. **Rebrief rate** - share of briefs sent back for clarification before production starts. A counter kept by whoever sends briefs back, so near-zero to run, and the primary brief-quality KPI. This skill's practical target, not a researched constant: under 20%, tightened from your own history.
2. **Brief-to-launch cycle time** - two dates per brief. Directive's published B2B benchmark is 10 business days or less.
3. **Concepts-briefed-to-winner ratio** over a rolling 90-day window (an agency-published operational KPI) - a standing job, and noise until enough concepts have shipped. Read it against the denominator honestly: winners run near 5% of creatives at scale (Motion), so judge the trend against your own history, not an absolute bar.
Re-rank if that rolling log already exists in your reporting stack: the ratio becomes free rather than expensive, and moves to the top.
Iterate a brief until every template field carries real content with an evidence citation, and the executor confirms zero clarification questions on read-through.
Then track the three KPIs on a rolling log:
- A rising rebrief rate is a brief problem.
- A collapsing winner ratio with clean briefs is a concept-diversity problem.
## Common Failure Modes
Rows are in fix-first order, and that ordering is pure value: every fix costs the same brief-writing minutes before production starts (`goal == awareness == benchmark == everything below`), so nothing separates them but what each one buys. The top four make every fix beneath them unreadable - a brief with no KPI cannot be judged, one with no awareness level cannot pick a hook, and a test whose targeting moved cannot be read at all. Re-rank against the failure this team actually repeats: a shop that writes tight hypotheses but burns creators every quarter fixes the feedback rows first, whatever the general ordering says.
| Trap | Why it burns | Fix |
| ------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Briefing deliverables before the goal exists | Volume without a hypothesis teaches nothing | Goal and KPI are interview question one; no goal, no brief |
| Awareness level blank or "all audiences" | Every level needs a different opening; targeting all serves none | One level per brief; split briefs when levels genuinely differ |
| No performance benchmark in the brief | Kill/scale decisions get made by feel | Deciding KPI + threshold + minimum evidence, written before launch |
| Changing targeting mid-test | The test variable is no longer the only variable | Freeze targeting for the test window; targeting changes are their own test |
| Multiple messages crammed into one ad | The viewer picks none of them | One angle, one proof point; extra messages become separate concepts |
| Hook direction left to the executor's judgement | The highest-leverage element goes untested and unrecorded | 3-5 tagged options plus a recommended first test |
| Vague adjectives instead of reference ads | "Premium" and "authentic" decode differently per reader | 2-3 in-category references, one note each |
| Generic specs reused across platforms | Placements crop, truncate and overlay differently | Per-placement ratios; in-placement preview before export |
| Over-scripting a creator | Delivery stops sounding natural - the reason UGC works | Talking points and hook direction; words are the creator's |
| Too many stakeholders adding conflicting feedback | Revision rounds multiply; the message dilutes | One approver; one consolidated feedback round per revision |
| Results stored only in slide decks | Losing variants teach nothing next sprint | Learning field in the brief + a persistent angle bank |
| Iteration paralysis (contested - Dara Denney) | A brief format optimised purely for variable isolation produces creative that all looks alike | Reserve a share of briefs for genuinely fresh concepts, not only iterations |
## Reference
- Read [references/brief-template.md](references/brief-template.md) when writing the brief - field-by-field guidance plus the static / search / video-UGC variants.
- Read [references/examples.md](references/examples.md) before the first brief for a client - a worked B2C brief, a worked B2B brief, and a bad brief annotated with what is wrong.
- Read [references/angle-frameworks.md](references/angle-frameworks.md) during brainstorming and the translation chain - awareness levels, market sophistication, the pain × persona matrix, the hook trigger taxonomy, and the evidence-mining methods.