{"id":20891,"plugin_id":"plugins_6aa93d4d067c8191bdd2a1969bee8916","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:16:38.217Z","digest":"4eb7c0c7dc840b925695492f66ac30d7f7a62f6d0c5e3dbfbb7ba6bf69a5c4e5","against":null,"payload":{"description":"Write, review, or localize the copy for static image ads — hooks, overlay text, body copy, and CTA — so it converts and complies with Meta's advertising policies. Use when drafting copy for a static ad batch, generating diverse test variations per concept (typically 5), rewriting a rejected or risky draft, locking localized copy before image generation, or judging whether a line will trip Meta's fraud/scams/deceptive-practices review. Applies the platform rejection taxonomy — absolutes, fabricated precision, guaranteed outcomes, fake urgency, scam-coded formats — which lives in the ad-platform skill's rejection-taxonomy.md, not here. Product facts come from the resolved brand-<slug> skill, never from here.","included_files":[{"relative_path":"references/narrative-and-localization.md","size_in_bytes":3841}],"name":"static-copywriting","skill_md_contents":"---\nname: static-copywriting\ndescription: Write, review, or localize the copy for static image ads — hooks, overlay text, body copy, and CTA — so it converts and complies with Meta's advertising policies. Use when drafting copy for a static ad batch, generating diverse test variations per concept (typically 5), rewriting a rejected or risky draft, locking localized copy before image generation, or judging whether a line will trip Meta's fraud/scams/deceptive-practices review. Applies the platform rejection taxonomy — absolutes, fabricated precision, guaranteed outcomes, fake urgency, scam-coded formats — which lives in the ad-platform skill's rejection-taxonomy.md, not here. Product facts come from the resolved brand-<slug> skill, never from here.\n---\n\n# Static ad copywriting\n\nCopy for static ads earns its read in one glance and survives two reviews: the\nplatform's policy reviewer and the customer's scam radar. This skill is the\nmethod for both. It carries **no product facts** — see below.\n\nRead the `ad-platform` skill's `rejection-taxonomy.md`\nbefore writing anything, and\n[references/narrative-and-localization.md](references/narrative-and-localization.md)\nbefore writing multi-line overlay copy or localizing.\n\n## Step 0 — resolve the brand\n\nEvery claim an ad makes about what the product is, does, costs, or cannot say\ncomes from the brand, and the brand is a separate skill — `brand-<slug>` in\nthe catalogue:\n\n- Exactly one `brand-*` skill installed → that is the brand. Use it, and name\n  it in your reply so the choice is visible.\n- Several → ask which.\n- None → say plainly that no brand is installed and create one from the\n  product facts before writing a line — the `juicylucy-setup` skill's\n  `extending.md` § Creating the first brand. **Never** fall back\n  to the branding visible in a reference ad: that identity belongs to whoever\n  made it, usually a competitor.\n\nFrom the resolved brand, `product-truth.md` owns what may be claimed,\n`compliance-overlay.md` owns what may not, and `copy-patterns.md` (when\npresent) owns the brand's proven phrasings and protected terms. If you cannot\nread them, **stop and ask** — do not write copy from memory, and do not treat\nthis skill's examples as product scope: they use the fictional placeholder\n**VELORA**, not a client.\n\n## Compliance has two layers, both mandatory\n\n1. **The platform layer — this skill.** True for every advertiser: no\n   guaranteed outcomes, no absolutes, no fabricated precision, no fake\n   urgency, no scam-coded formats (the `ad-platform` skill's `rejection-taxonomy.md`).\n2. **The brand layer — the resolved brand's `compliance-overlay.md`.** What\n   this client may not say over and above policy (a banned CTA style, a\n   feature that must never be implied). A line passing the platform layer can\n   still be forbidden by the brand.\n\nCheck every line against both. Neither substitutes for the other.\n\n## When the user supplied the copy\n\nBoth layers govern copy **you** author. When the user supplies the copy\nverbatim — \"use this text\", a pasted line, a signed-off hook — the gate reports\nand does not block, and that report branch outranks every rule in both layers,\nthe brand's hard rules included. Build the words as given; then name each risk\nspecifically in your reply — the platform pattern it matches, the brand rule it\nbreaks, any conflict with `product-truth.md` — and offer a compliant\nalternative for each. Never rewrite the user's words silently, and never\nwithhold the batch over them.\n\n## Core writing rules\n\n1. **Simple words, short sentences.** Write like you're texting a friend. If\n   a 12-year-old wouldn't understand a word, cut it.\n2. **Name the reader's specific version of the problem.** Not \"grow your\n   business\" — \"you post a product and nobody sees it\", \"you've spent hours\n   in Canva for one ad\". Specificity in the *pain* earns the read.\n3. **Lead with the relief, not the mechanism.** The reader doesn't care that\n   it's AI-powered; they care that they stop doing the annoying manual task.\n4. **Write from inside the reader's head.** Before finishing a line, ask: if\n   I were this exact person, scrolling tired at 11pm, would this make me feel\n   understood, or suspicious?\n5. **One idea per ad.** Don't stack the discount, the urgency, the stat, and\n   the guarantee in the same 20 words.\n6. **Soft-guarantee language, not hard.** \"can help you\", \"many users start\n   seeing\", \"built for\", \"made for people who…\" — never \"will\",\n   \"guaranteed\", \"never again\".\n\n## Platform compliance rules\n\n- **No exact, granular result numbers presented as an expected outcome.**\n  Ranges and feature descriptions are fine (\"more orders\", \"new leads coming\n  in\"); fabricated precision (\"43 orders before lunch\") is not.\n- **No absolute claims** (\"never\", \"always\", \"guaranteed\", \"100%\"). Replace\n  with reduction language: \"spend less time on…\", \"skip the manual part of…\".\n- **No stacking an extreme price with an extreme outcome** in one line.\n- **Urgency only when it's real** — a genuine dated promotion, not an\n  evergreen \"ends tonight\" running across every audience and every day.\n- **No handwritten-note / flyer / found-on-the-street visual concepts**, and\n  no first-person \"I made $X\" income story with invented daily numbers.\n- **No \"one action → guaranteed cascade of success\" checklist endings.** A\n  checklist may describe *what the product does*; it must not end on \"sales\n  start pouring in\" or \"you go viral\". End on what the reader gets to stop\n  doing, or on a feature.\n- **Money-management framing is platform-sensitive.** Copy built around the\n  reader's ad budget, advertising spend, or agency fees (\"pause your ad\n  budget\"-style lines) sits near the platform's financial-services triggers;\n  treat it as high-risk and prefer the underlying pain instead.\n- **When in doubt:** read the line back and ask \"could this appear, verbatim,\n  in a scam text message?\" If yes, rewrite it regardless of how well it might\n  convert.\n\n## Generating 5 test variations for a concept\n\nVary along all five axes so the set is genuinely diverse, not five rewordings:\n\n1. **Emotional entry point** — the overwhelmed beginner, the person who tried\n   and failed, the skeptic, the time-strapped solopreneur, the comparer.\n2. **Format** — one checklist/how-it-works, one direct problem→relief, one\n   question hook, one light testimonial-style line, one POV/relatable moment.\n3. **Length** — at least one under-10-words punch, at least one that sets up\n   the problem before the relief.\n4. **Benefit angle** — time saved, money saved, stress reduced, confidence\n   gained; don't let all five lean on one.\n5. **Every variant still passes both compliance layers.** If a risky version\n   clearly outperforms, rebuild what made it work emotionally within the\n   rules — never keep the risky line because it converts.\n\n## The localization copy lock\n\nBefore generating any localized image:\n\n1. Transcribe the source message; identify hook, mechanism, control/proof\n   line, and CTA.\n2. Rewrite as concise native customer language preserving the approved claim\n   (`references/narrative-and-localization.md` — meaning, not words).\n3. Check product scope against the brand's `product-truth.md`.\n4. Check both compliance layers.\n5. Preserve the brand's protected Latin terms (its `copy-patterns.md` lists\n   them).\n6. Lock line breaks that fit the reference hierarchy with mobile-safe margins.\n7. Record the exact copy in the language's provenance ledger **before** image\n   generation (the `juicylucy` skill's `evidence.json` → `qa_package`).\n8. Inspect every rendered glyph at full resolution; OCR finds candidates, a\n   human adjudicates (`static-localization` owns the QA procedure).\n\nPrefer shorter natural copy over literal copy that forces tiny type. Language\ndefaults (script, direction, Simplified-vs-Traditional) come from the\n`juicylucy` skill's `languages.json`, not from memory.\n\n## Pre-submission checklist\n\n- [ ] Brand resolved; `product-truth.md`, `compliance-overlay.md`, and\n      `copy-patterns.md` read this session\n- [ ] No exact/granular outcome numbers presented as what will happen\n- [ ] No \"never\" / \"always\" / \"guaranteed\" / \"100%\" about performance\n- [ ] No extreme price + extreme outcome in one line\n- [ ] Urgency/discount reflects a real, dated promotion\n- [ ] No flyer/handwritten-note concept, no itemized income story\n- [ ] Checklist copy ends on a feature or relief, not a promised result\n- [ ] No high-risk money-management framing\n- [ ] Every line passes the brand's `compliance-overlay.md`\n- [ ] Every claim is supported by the brand's `product-truth.md`\n- [ ] Short sentences, plain vocabulary, one idea per ad\n- [ ] The variation set differs across all five axes, not just wording\n- [ ] The scam-text test passes on every line\n\n## Boundaries\n\n- Typography, face protection, and layout of the copy on the image belong to\n  `static-image-craft`; batch orchestration and QA to `static-localization`;\n  the production pipeline to `static-ad-production`. Video copy runs through\n  `/video-ad-production`.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}