SKILL: Native Ad Generation — Full Pipeline (Portable Agent Edition)

Purpose: Complete start-to-end doctrine for generating Meta native ads (long-form Facebook personal-story ads + organic-looking images) for DTC ecom brands. This document is self-contained — a fresh agent can run the workflow with only this file plus brand/avatar research supplied per task.

Source of truth (original workspace): skills native-ads, native-copy, native-image-gen, direct-response-copywriter, brief-builder, qa-gate, image-prompt-engineer, humanizer + memory rules. Compiled 2026-07-21. The live workflow is unchanged; this is a duplicate for a separate agent.


1. PIPELINE OVERVIEW

Every native ad batch runs this sequence. No stage is optional.

1. BRIEF        assemble creative brief (contract — validated before writing)
2. DRAFT        write copy variants per doctrine (Zakariah framework)
3. SHARPEN      hook-sharpening pass + line-level edit pass
4. HUMANIZE     mandatory humanizer pass (strip AI tells, voice-calibrated)
5. QA GATE      structured PASS/FAIL review — flags only, no rewrites
6. IMAGES       one concept per ad → generate → image QA → crop/regen
7. DELIVER      copy.md + PNGs in one batch folder

A "native ad" here = Meta ad where primary text is a raw first-person story (looks like a Facebook group post, not an ad) + an organic iPhone-style image with no product in it. The ad's job is the click to a listicle/advertorial; the lander closes.


2. STAGE 1 — THE BRIEF (contract, not suggestion)

Missing fields = drifting copy. Fill everything before writing.

Mandatory fields: - Format: native-ad. Variant count: 5 for a new ad (4 if one proven variant already exists). - Length strategy: 2-3 long variants (500-700 words) + 2 short-medium (150-300 words). Never all one length. - Angle type — exactly ONE of 8: 1. Identity Disruption — challenges a belief about who she's become (cold traffic, L1-L2) 2. Failed Solution — names what she tried, validates the failure, explains WHY it failed (L3) 3. Future Fear — consequence of inaction, told through story not lecture (any level) 4. Relationship Wound — the problem hurts someone she loves (guilt + protective instinct) 5. Hidden Mechanism — reveals the real cause, "they never told you this" (science-curious) 6. Social Consequence — the problem is visible to others (public shame, private dread) 7. Absurdist Humor — dark-comedy pattern interrupt (tired, cynical avatars) 8. Objection Killer — opens on the #1 objection and destroys it (retargeting, L4-L5; ALSO a proven top performer on cold when the avatar is skepticism-first) - Awareness level L1 (unaware) → L5 (most aware). Cold Meta traffic = L1-L2. Never make the writer infer it. Cold deployment + L4/L5 copy = automatic FAIL. - Sophistication stage S1-S5 (how many competing claims the market has already heard). - Villain — who/what is to blame. NEVER the reader. - Root cause + mechanism — with status alive | tired | dead. Dead mechanism = FAIL the brief. - Avatar package — resignation moment, core desires, top objections, failed solutions, and 15-20 verbatim VOC (voice-of-customer) quotes minimum. - Proof lines — every claim in copy must trace to evidence. Claim without evidence = FAIL.

Angle kill-questions before finalizing: tested in last 30 days? blames the reader? mechanism dead? deployment/awareness mismatch? villain vague? Can you state the belief shift in one sentence? Would she stop scrolling at 11pm for this hook direction?

When delegating to a writing sub-agent: paste the full brief, VOC quotes, avatar detail, format rules, and the NEVER-DO list into the task verbatim. Never summarize the rules. Do NOT include scoring rubrics or full hook-performance history (causes concept convergence).


3. COPYWRITING DOCTRINE (Zakariah framework)

Optimization target: lowest CPA. Period. Not CTR, not engagement. (Confirmed trap: a hook hit 24.8% CTR with 0 purchases — curiosity clicks are not intent.)

The core tenets

  1. The sale lives at the Resignation Moment. She's exhausted, defeated, has quietly accepted "this cannot continue." Meet her in that flat, calm surrender — not with hype, with quiet understanding.
  2. Research is the entire foundation. You don't write copy; you assemble it from the avatar's exact language. Depth of research is the inverse of CPA.
  3. Always externalize the villain. She is NEVER at fault. Villain = a mechanism, biology, an industry, bad advice. Without a villain she blames herself → freezes → no sale. With a villain she has something to be angry at → anger creates motion → motion creates purchase.
  4. Inviolable logic chain: Root Cause → Mechanism → Product. Diagnose the real root cause, introduce a unique mechanism that solves it, product is only the delivery vehicle. Product reveal = confirmation, not pitch.
  5. Funnel congruency. The lander must begin exactly where the ad left off — awareness mismatch = bounce.
  6. Never discount; build more value before the price reveal.
  7. Name the mechanism. A proprietary name = category ownership.
  8. Lead is written last — it sells the read, not the product.
  9. Specificity = believability. "47,342 customers as of last Tuesday" beats "thousands." Target specific:generic ratio 3:1.
  10. Give the algorithm 7 days. 24-48hr data is noise.

Mechanism framing: Gap vs Trap

The 10 hook types (pick to fit the angle)

  1. Self-Incrimination — she confesses something she'd never say aloud (STRONGEST)
  2. Behavioral Evidence — a specific behavior that proves the problem, no labels
  3. Consequence Snapshot — one vivid time-stamped moment of damage already done
  4. Question That Can't Be Answered — forces confrontation with what she's avoiding
  5. Contradiction/Paradox — two things that shouldn't both be true, but are
  6. Social Proof Interrupt — someone else's result or reaction
  7. Mechanism Tease — hints at a hidden cause without revealing it
  8. Dark Humor — says the painful thing with a laugh
  9. Direct Challenge — "You're still doing X?" (high risk/reward)
  10. Resignation Statement — flat, calm defeat: "I stopped trying."

The hook bar: would she stop scrolling at 11pm, half asleep? If the hook needs setup or context, it isn't a hook. Hook = private behavior, not private feeling ("I set 14 alarms. I slept through every one." — not "I felt so exhausted").

Emotional architecture


4. NATIVE FORMAT RULES (non-negotiable, check every line)

Line format

Meta ad anatomy

Variant system (5 per ad, each genuinely different)

Types: (1) Story/Resignation Arc, (2) Objection Killer — top performer, write 2 when possible ("Another alarm? Sure." energy; the drawer of failed products is her entry point — even story variants benefit from an opening skepticism beat), (3) Pain-First → Mechanism Reveal, (4) Consequence/Future Fear, (5) Risk Reversal + Social Proof.

Diversity rules (prevents writing 1 ad 5 times): - Each variant varies at least one dimension of Persona × Desire × Awareness. - Mechanism delivery must differ per variant — rotate: full science (max 1) / casual-vague / secondhand ("my sister sent me an article") / barely explained ("it vibrates instead of making noise, I don't fully get why that matters but it does") / analogy / skipped entirely. - CTA format must vary — real people link differently. Never paste the same "$X. 60 nights. Full refund." block on every variant; weave price/guarantee into each story naturally, or skip it. - No duplicated hooks, headlines, or analogies across variants. - Social-proof reviews must sound real: typos, incomplete thoughts, a 4-star mixed in, platform references ("saw this on Amazon"), one that reads like it was typed at 2am.

Proven cadence patterns (use these rhythms, don't invent)

Failed-solutions stack rules

NEVER-DO list (violating any = rewrite the variant)

Hooks: never open with mechanism/science (confirmed dead: $20 spend, 0 purchases) · never scene-set or start chronologically in line 1 · never put the best line in the headline field · never open with an inventory list · never generic feature hooks · never curiosity-bait that doesn't lead to the sale. Language: never "game changer / life changing / revolutionary / amazing / incredible / journey / struggle / battle / warrior / graveyard" · never weak modifiers ("very, really, just, truly, literally") · never writerly-poetic phrasing where a real person would say something uglier ("the drawer I can't open without getting mad" > "the graveyard of failed alarms") · never polished testimonials — Reddit/Amazon voice converts · never lead with reviews (instantly reads as an ad). Structure: never mechanism in the opening (middle only, after emotional setup) · never the same mechanism paragraph, CTA block, or analogy across variants · never victory-as-arrival · never skip the villain. Avatar: never generic labels ("busy mom", "stressed professional") — VOC words only · never wrong awareness level · never blame/shame the avatar · never "sometimes/usually" — she says "every single morning" · never vague future-pacing ("you'll feel better" = nothing; "he walked downstairs on his own Tuesday" = conversion).


5. THE AVATAR (who you're writing to)

The avatar doc is the WHO; doctrine is the HOW. Default to the avatar's words over your own, always. Check the VOC bank before reaching for any word; their word converts, yours doesn't.

The 7 mandatory avatar-extraction categories

Extract ALL of these from avatar research into every writing brief. Missing any one = generic copy, every time: 1. Failed solutions stack WITH visceral detail — not "tried alarms" but the unsettling specific: he walks to it in his sleep, eyes open, solves the math puzzle unconscious. 2. Anticipation anxiety — what happens BEFORE the problem each day (wakes before her alarm from dread; the mental buffer math). 3. The scene after — the silent drive, the parking lot, the replaying. Concrete and visual. 4. The "I've heard that before" trap — she's exhausted by suggestions; this is the skepticism objection-killers must mirror. 5. Relationship cost — accumulation, not one fight; and the repair moment when it starts working. 6. Victory as ABSENCE — what stopped happening. 7. VOC word bank — her actual words organized by emotional state.

Relatability register (Facebook DTC mom audience)

The buyer is the average working/middle-class American mom — she must feel like the reader, not someone the reader watches on Instagram. - Jobs: dental receptionist, school admin, daycare worker, teacher, bank teller, nurse aide, grocery checker, hair stylist. Dad: warehouse, contractor, mechanic, HVAC, truck driver, foreman. - Settings: laminate counters, oak cabinets, Honda Pilot, family photos on the fridge, Target/Walgreens/drive-thru. - Banned aspirational signals: Fortune 500 / corner office / assistant / MBA / bourbon / designer brands / Tesla / country club / "stakeholder / deck / OKR" jargon. - Test: read the ad as a 43-year-old mom in a Target checkout line. Anything sound like someone she doesn't know? Replace it.

Demographic variation per batch


6. VOICE — HUMANIZER PASS (mandatory pipeline stage)

Every native copy batch gets a humanizer pass between draft and QA. Purpose: strip AI tells that readers (and possibly Meta's classifiers) pattern-match — rule-of-three cadence, engineered aphorisms, staccato punchline stacks, negative parallelisms ("not X, but Y"), inflated symbolism, filler phrases.

Constraints: - Preserve ALL DR beats: price anchors, guarantee terms, mechanism explanation, avatar identification line, CTA. - Max one "signature line" (quotable aphorism) per ad. - Humanized variants ship as NEW ads — never overwrite live ads. - Record which tells were removed (tells_removed) in the output file frontmatter.

Voice calibration: seed the humanizer with a real-writing corpus from a Reddit thread whose posters ARE that ad's narrator — per-speaker, not per-batch (mom-narrator ad → mom thread; teen self-voice → teen thread; dad-POV → dad thread). The rewrite inherits real sentence rhythm, word choice, and quirks. Corpora are research-only — never quote them verbatim in ads.


7. SHARPENING PASSES (before QA)

Hook-sharpening pass (mandatory)

Re-read line 1 of every variant and grade: - WTF? Stops scroll? Creates a question she HAS to answer? Screenshot-worthy? - Specific? Contains a concrete number/name/object/moment? Generic hooks die. - Gap? Opens a loop only the copy can close? Failure patterns: too bare (add the MOMENT) · too generic (add the SPECIFIC story) · too subtle (add the CONSEQUENCE) · statement without tension (add the CONTENT) · product-list-as-hook (add the TOTAL + tease). The hook is the only line that matters at scale — spend more time on it than anything else.

Multi-model sharpening (if two models available)

Run two independent read-only reviewers in parallel over: hooks (WTF 1-10, flag <7 with a rewrite), copy quality (AI-tell language, filler lines, soft CTAs, pacing — always provide the replacement line, never just "this is weak"), framework alignment (awareness level, mechanism specificity, earned resignation moment, villain present — a variant missing BOTH resignation moment and villain never passes), avatar fidelity (her words vs a copywriter's; lines 3-8 specificity test — broad lines there mean the avatar was assumed, not found in VOC → rebrief, not line-fix). Both flag → auto-fix; one flags → surface for operator judgment.


8. STAGE 6 — IMAGE GENERATION

Philosophy

"The uglier the ad, the more native it looks." The image's only job is to stop the scroll and create curiosity — NOT to explain or show the product. It must look like a real photo a real person took.

Core rules (never break)

  1. NO product in the image. Ever. No branding, no logos — it must not look like an ad.
  2. ONE weird/wrong/off thing per image. One focal absurdity, not five.
  3. Plain, simple backgrounds. The weird thing IS the scene.
  4. iPhone quality. Raw, unfiltered phone-camera feel. Never stock/editorial/studio.
  5. The weird thing relates to the ad's story — loosely is fine; a loosely-related absurd image beats a perfectly-aligned boring one.
  6. NO timestamps, clocks, or time-implying numbers, ever (dead AI giveaway). Imply time of day through lighting only. Exception: when the ad's concept IS the alarm itself, visible alarm-screen UI is allowed — the rule is anti-AI-tell, not anti-concept.
  7. Always 1:1 square.

People vs objects

The WTF spectrum

Too tame: messy bed, coffee cup (scrolled past). Sweet spot: frowning face drawn in pancake syrup; school bus pulling away from an abandoned backpack. Err on the side of weird — if it doesn't make you go "wtf" in under 1 second, it's too tame. Physically-impossible is fine for non-screen scenes as long as it still feels like a real photo; surreal dreamscapes are not.

Prompt formula

[subject: one simple object or person] + [the ONE weird thing] + [plain background]
+ [lighting: morning light / phone flash / dim hallway] + [camera: iphone photo, phone photo, overhead, from doorway]
+ [feel: raw, absurd, funny, unsettling, sad]

Always end with camera/feel qualifiers. All prompts lowercase. For batch consistency, extract a JSON style template from a winning image (lighting/camera/mood locked) and vary only subject + constraints; include a negative_prompt list: professional lighting, stock photo, editorial, product, clock, timestamp, logo, studio, posed.

Modern-reality anti-defaults (image models drift toward AI-tell clichés — override)

Generation tooling (current, 2026-07)

Image QA (before delivery)


9. STAGE 5 — COPY QA GATE

One independent read-only reviewer. Flags only — the reviewer never rewrites. Never deliver raw unreviewed output.

Checklist: - 3+ sentences on a line (flag with line numbers) · em-dashes · dead words ("game changer," "amazing," "literally," "very/really/just/truly," …) - Mechanism in the hook (belongs mid-copy) · lead sells the product instead of the read - Duplicate hooks across variants (>50% shared phrasing) · missing headlines · templated CTAs - Villain present and external (flag if missing or if villain = the reader) - Awareness level matches the brief - Word count: natives have NO cap — long-form runs as long as the story earns; other formats keep their limits - Plus the doctrine checklist: avatar's exact language present? ONE primary emotion built to peak? 3+ open loops, all closed? 3:1 specificity ratio? Time-stamped sensory future-pacing? CTA at product reveal? Passes the read-aloud test? Contains "the detail they wouldn't make up"?

Output format:

QA RESULT: PASS | FAIL | PASS-WITH-FLAGS
BLOCKING: (must fix — line-referenced)
FLAGS: (should fix)
PASS ITEMS: n of m

FAIL → writer fixes → re-run QA. Only PASS / PASS-WITH-FLAGS ships.


10. DELIVERY FORMAT

One batch folder per run:

output/{brand}-natives-{date}/
├── copy.md                      ← all variants, labeled
├── native01-{slug}-square.png
├── native02-{slug}-square.png
└── ...

copy.md per-ad block:

## Ad 01 — {slug}
**PDA:** Persona={...} | Desire={...} | Awareness={L#}
**Structure:** {variant type}
**Hook:** {line 1 of primary text}
**Headline:** {Meta title field}

{full ad body — 1 sentence per line}

P.S. {emotional climax line}

**CTA:** {cta text} | {destination URL}

Destination = listicle/advertorial (not the product page) when the funnel has one; duplicate each ad to both listicle and PDP destinations and let the platform pick the winner. Route by angle: condition-specific angles → condition-specific lander; general → general lander; when in doubt, the broadest lander.


11. OPERATING RULES FOR THE AGENT