Write ad
Writes paid-ad copy across Meta, Google, TikTok, and LinkedIn — network-aware char-caps, policy floor, audience/intent framing, 7-dim rubric. Not for landing-page headlines (use write-copy), cold-outreach DMs (use write-outreach), organic social posts (use write-social), or channel-mix/budget strategy (use plan-campaign).From its SKILL.md
npx -y skills add hungv47/meta-skills --skill write-adAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 13 stars13 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.2 KB, ~2.3k tokens by cl100k_base, as published. Nobody here has run it
Write Ad — Orchestrator
Ready-to-publish paid-ad copy across Meta, Google, TikTok, and LinkedIn — one network per artifact, network-aware caps + framing. Multi-agent strategy → draft → format → voice → critic → humanmaxxing pipeline. Capability metadata lives in routing.yaml. Agent table + 2 routes + 7-dim rubric + post-humanmaxxing regression rule: references/agent-manifest.md. Methodology: references/playbook.md.
Core question: Would this ad still make sense if the platform stripped every claim that isn't substantiated by a named entity or measured number?
Critical Gates — load first
- Network + audience-temp are non-negotiable.
network(meta | google-ads | tiktok-ads | linkedin-ads) selects the format-checker spec + the strategist's framing axis; ambiguous network BLOCKs — ask one question, never assume Meta. Missing audience-temp BLOCKs. Offer + creative-format + proof also hard-block. - One network + one audience-temp per artifact. Cross-network or cross-temp campaigns run the skill once per pair; do NOT stack two networks' char-caps/policy in one artifact.
- Hero + 2 distinct variants per artifact is the default. Strategist enforces 3 distinct
angle_archetypevalues + 3 distinctanchor_proofentries. Variants isolate ONE variable each (Variable Subtraction). The count serves Meta A/B structure; an operator may override it — log the override + reason in the rationale. Mode + tier inreferences/_shared/options-selection.md(DELIVERY, tier B). - Format-checker is a HARD gate, not a critic dim. Bounces on the resolved network's char-cap violation / banned policy phrase / unsubstantiated measured claim. PASSED / REVISION_REQUIRED (does NOT consume critic cycle) / FORMAT_FAIL (escalate to user).
- Humanmaxxing runs ONCE per variant with
protected_tokensincluding URL. Post-humanmaxxing Specificity regression check per variant — drops ≥2 OR named entity/number/URL absent → flag the delta + the removed specific for operator review (critic-approved draft preserved alongside; operator picks).
Quality Gate — 7 dimensions
Full rubric + Pass/Fail + per-dim scoring bands: references/agent-manifest.md § 7-Dim Critic Rubric. Domain rubric: references/rubric.md.
- Gate: Total ≥49/70 AND every dim ≥6. Total 49-55 with all dims ≥6 = PASS as
DONE_WITH_CONCERNS. Any dim <6 = FAIL. - Terminal humanmaxxing runs per variant after critic PASS. Orchestrator re-runs critic's Specificity dim only on humanmaxxed text — Specificity drops ≥2 OR named entity/number absent → flag the delta + removed specific for operator review (both versions kept). Protects the specificity anchor.
Before Starting
Apply references/_shared/before-starting-check.md. Recommended context:
| Artifact | Source | Required? |
|---|---|---|
research/product-context.md | research-icp | Recommended — voice adjectives + proof points + Unique Mechanism |
research/icp-research.md | research-icp | Recommended — primary persona + VoC pain language |
brand/BRAND.md | create-brand | Recommended — voice anchors + banned-language list |
brand/CREATIVE-DIRECTION.md | create-brand | Recommended (visual creative) — house art direction for the ad's visual concept; design against it + a realized exemplar, not tokens alone (references/_shared/realized-surface-grounding.md) |
docs/forsvn/artifacts/marketing/campaign-plan.md | plan-campaign | Optional — Route B from broader campaign + ## Creative Direction (per-campaign art direction) |
docs/forsvn/experience/{audience,product,business,brand}.md | (any skill) | Optional — persisted Product — current offer / Product — proof points keys |
Pre-Dispatch + Mode
Run canonical Pre-Dispatch (references/_shared/pre-dispatch-protocol.md). Needed dimensions: network (meta / google-ads / tiktok-ads / linkedin-ads) · audience-temp (retargeting / cold; Meta+TikTok) · offer (destination + value prop) · creative-format (dedicated / repurposed-ugc) · conversion-event (trial-start / purchase / lead / install) · production-model (in-house / affiliate-creator / external-freelance) · available-proof (list of named candidates) · transmutation goal (AI UGC / native static / AI animation / advertorial pre-lander / Chad Funnel / strategist choose) · competitor-pattern (optional) · belief sequence (optional; required for advertorial / Chad Funnel) · LP-description (optional but recommended).
Warm/Cold Start prompts (10-question Cold Start + retargeting follow-ups) + Missing-Input Hard Blocks (5 conditions): references/procedures/pre-dispatch.md.
Mode (references/_shared/mode-resolver.md): budget: deep. --fast skips post-humanmaxxing Specificity regression check per variant (saves 3 critic-Specificity-dim invocations for hero + A + B). --fast does NOT skip Cold Start, Critical Gates 1-5, Missing-Input Hard Blocks, or Format-Checker Hard Gate.
Session execution profile (single-vs-multi): inherit per references/_shared/execution-policy.md.
Routes
Two routes — A (compose: single audience-temperature), B (called by another skill). No reply mode (paid ads don't have an inbound channel). Full dispatch graphs: references/agent-manifest.md.
Artifact Contract
- Paths:
docs/forsvn/artifacts/marketing/write-ad/[audience-temp]-[date]-[slug].md(final draft) ·[audience-temp]-[date]-[slug].rationale.md(angle + framing + per-variant rationale) ·[audience-temp]-[date]-[slug].critic-score.md(7-dim scorecard per variant + total + regression). - Lifecycle:
pipeline— overwrite on re-run for same(audience-temp, date, slug-tail); explicit-v2suffix when version-history preservation needed; new audience-temp on same day = different prefix = different file. - Frontmatter:
skill,version,date,status,network,surface,audience_temp,creative_format,production_model,conversion_event,critic_total+ nestedcritic_per_variant: {hero, variant_a, variant_b}. - Slug pattern:
retargeting-2026-05-11-trial-app-followersorcold-2026-05-11-app-install-dedicated. Audience-temp prefix makes campaign-spanning runs land in distinct files even on the same day. - Consumed by: human reader (Route A);
plan-campaign(Route B — readscritic_total,critic_per_variant.hero,audience_temp,creative_format,conversion_eventfor budget allocation). - Cross-stack contract: schema changes require atomic update of
format-conventions.md§ "Frontmatter field order" + § "Field values" enums — never silently drift.
Full template + per-field format rules: references/format-conventions.md.
Anti-Patterns
Read references/anti-patterns.md before output ships. 8 inherited sections + §9 Orchestrator-Level (13 rows: cold-creative reused as retargeting, frequency creep, lookalikes on cold trial app, repurposed UGC at scale, purchase optimization on 3-day trial, banned health/finance/political claim, fabricated stat, paraphrase variants, em-dashes, generic "Quick question?" hooks, multi-CTA, double-humanmaxxing, change-everything-at-once) + §10 Cross-Cutting marketing-stack (4 rows: protected_tokens contract per-variant incl. URL, post-humanmaxxing regression per-variant, plan-campaign Route B context drop, artifact schema drift).
Durable Rules (protected)
<!-- SLOW_UPDATE_START --> <!-- No pinned rules yet. Populate via the slow-update workflow (see references/slow-update-fence.md). Each pinned rule must (a) be procedural not instance-specific, (b) be earned from a regression or critic-flagged failure, (c) cite the artifact / decision record that justified pinning. --> <!-- SLOW_UPDATE_END -->Completion Status
- DONE — passed critic + format-checker + humanmaxxing regression, ready-to-publish.
- DONE_WITH_CONCERNS — delivered, flags noted (stale ICP, ceiling warning on repurposed-UGC, missing LP description, policy soft-warn override, total 49-55 with all dims ≥6).
- BLOCKED — missing offer, missing proof + no product-context, or audience-temp missing.
- NEEDS_CONTEXT — recommend
research-icpor provide proof candidates.
Execution
Offer the registry-gated fork (category publish + image). Brief-only (today's handoff):
- Submit hero to the network's ads manager as primary creative.
- Submit Variant A + Variant B as A/B test against hero.
- Apply auto-pause rule per
ad-intelligence/creative-cadence.md§ 3 (CTR <1.5% after 48h). - Re-invoke at creative-fatigue trigger (winner CTR decays >30% from peak) OR offer change OR LP change.
Assisted/Direct: a verified engine submits/renders, you approve at the gate. See execution-fork.md; record execution_mode.
Worked Example
End-to-end Route A (MealKit cold-traffic 14-day-trial app, 3 distinct variants: outcome-first / scale+social-proof / authority+mechanism, format-checker REVISION_REQUIRED on char-cap + health-claim disclaimer, composer revised, critic PASS aggregate 168/210, terminal humanmaxxing per variant with protected_tokens incl. URL, post-humanmaxxing Specificity regression passes per variant) + cycle-2 FAIL variant + Format-Checker REVISION_REQUIRED path + Route B snippet: references/examples/write-ad-walkthrough.md.
What ships with it: 50 files
518.7 KB alongside SKILL.md, 8 of them executable
agents/
- composer.md16.4 KB
- critic.md18.6 KB
- format-checker.md9.7 KB
- strategist.md19.9 KB
- voice-auditor.md9.5 KB
references/
- ad-intelligence/creative-cadence.md6.3 KB
- ad-intelligence/google-ads.md8.1 KB
- ad-intelligence/linkedin-ads.md6.8 KB
- ad-intelligence/meta-cold-traffic.md11.0 KB
- ad-intelligence/meta-retargeting.md10.9 KB
- ad-intelligence/tiktok-ads.md6.5 KB
- agent-manifest.md5.1 KB
- anti-patterns.md19.0 KB
- examples.md15.2 KB
- examples/write-ad-walkthrough.md20.6 KB
- format-conventions.md10.9 KB
- format-spec.md11.8 KB
- message-transmutation.md4.8 KB
- playbook.md15.7 KB
- policy-floor.md14.0 KB
- procedures/dispatch-mechanics.md11.3 KB
- procedures/pre-dispatch.md10.9 KB
- rubric.md10.8 KB
- _shared/ad-intelligence/creative-cadence.md6.4 KB
- _shared/ad-intelligence/.generated-support171 B
- _shared/ad-intelligence/google-ads.md8.2 KB
- _shared/ad-intelligence/linkedin-ads.md6.9 KB
- _shared/ad-intelligence/meta-cold-traffic.md11.2 KB
- _shared/ad-intelligence/meta-retargeting.md11.0 KB
- _shared/ad-intelligence/tiktok-ads.md6.7 KB
- _shared/before-starting-check.md9.8 KB
- _shared/copywriting-research-workflow.md4.2 KB
- _shared/execution-fork.md5.6 KB
- _shared/execution-policy.md7.0 KB
- _shared/mode-resolver.md11.0 KB
- _shared/options-selection.md7.0 KB
- _shared/performance-data.md15.8 KB
- _shared/performance-grounding.md5.8 KB
- _shared/pre-dispatch-protocol.md20.2 KB
- _shared/realized-surface-grounding.md3.9 KB
10 more files not listed here. See all 50 in the repository.