Writes and evaluates persuasive copy — headlines, hooks, CTAs, taglines, and landing-page sections — with per-line V/F/U rubric scoring, annotations, and ranked alternatives. Not for AI-sounding cleanup (humanmaxxing), search/AI-citation (optimize-seo), brand voice (create-brand), landing-page architecture (brief-landing-page), social posts (write-social), or paid-ad copy (write-ad).
Installation
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Drafts and critiques persuasive copy — headlines, hooks, CTAs, taglines, and landing-page section copy — with per-line V/F/U rubric scoring, annotations, and ranked alternatives. Coordinates specialized sub-agents to produce craft-quality output.
Core question: Is every key line visual, falsifiable, and uniquely ours?
Capability metadata (routes, prerequisites, orchestration, load map, artifact contract) lives in routing.yaml. Routing logic, agent manifest, and full dispatch pseudocode live in references/agent-manifest.md. Methodology + design history: see references/playbook.md — load when questioning why a gate or agent exists before changing it.
Critical Gates — load first
These five gates are the safety floor; --fast does not skip them.
Argument Engineering before word-choice. Audience + the one shift + Unique Mechanism + belief sequence must be resolved in Pre-Dispatch BEFORE any agent dispatches. Skipping these produces generic copy that scores V/F but fails U.
V/F/U is per-line, not per-piece. Every key line gets scored 1-5 on Visual / Falsifiable / Uniquely-Ours. Average ≥3.5 PASS; below 3.0 on any single dimension FAIL regardless of average.
Competitor Swap Test catches generic claims. If a competitor could sign your headline without lying, U fails — independent of V/F. Critic auto-fail. Procedure + swappable-vs-defensible examples: references/_shared/copy-validation-rubric.md (shared across the write-* skills).
Trigger density 3-4 is the optimal range for persuasion-heavy copy. Above 4 → run the authenticity filter per trigger (cut any that fail). Below 3 → check the piece isn't merely informational; if persuasion is the job, psychology-agent adds a lever.
Route classification at Step 1. Single key line → Route A. Full page → Route B. Called by brief-landing-page / plan-campaign → Route C (caller picks agents).
Quality Gate — critic checklist
Before delivering, the critic agent verifies:
Every key line passes the Three-Question Test: visual? falsifiable? uniquely ours?
Hook + body form an airtight argument: old belief, new belief, proof, Unique Mechanism, next action — no logical gap
Rubric average ≥3.5 across V/F/U for all key lines
Every key line passes the Competitor Swap Test
Alternatives explored per key line, best selected with top 2-3 as alternatives
Every key line annotated: rule that drove the choice, cut alternative, rubric score
CTA follows formula: [action verb] + [what they get] — not "Learn More" / "Click Here"
Every headline/hook contains concrete nouns or specific numbers — no abstract "better," "innovative," "leading"
Selected lines clear the stack slop detector. Run bun <forsvn-slop>/scan.ts <artifact> --json (the artifact's register: copy-analysis scopes the scan to **Selected:** lines only). ANY block-severity finding — mkt-slop-not-just-x, mkt-slop-em-dash-overuse, etc. — is an auto-FAIL: rewrite that line and re-scan until 0 blocks. The critic must never SELECT a line the always-on detector will block downstream; the V/F/U rubric and the slop floor have to agree.
Before Starting
Run references/_shared/before-starting-check.md. Required context:
Route-collapse default (no --fast needed): a ≤3-sentence single-line ask with no prior artifacts auto-resolves to Route A (one writing agent + critic) — the lean single-route composition. Route B's full Layer 1 + Layer 2 orchestration engages only for full-page scope, multi-line asks, or an upward override ("full page", "thorough").
Route B section sequencer: order page sections by the reader's awareness_stage before writing — the body-agent picks the section stack from the awareness sequencer in references/page-sections.md § "Section Sequencer", not a fixed template. Awareness comes from the brief; flag it if absent.
Path (Route C): no standalone artifact — annotated copy embedded in caller's artifact
Lifecycle: pipeline — on re-run for same slug, rename existing to [slug].copy.v[N].md and create new with incremented version
Frontmatter fields:skill, version, date, status, register: copy-analysis (the last scopes the slop scanner to the **Selected:** lines — emit it on every Route A/B copy artifact, else the always-on detector scans the analysis prose and the auto-FAIL gate above spuriously blocks)
Body sections (in order): descriptive metadata · Pre-Writing 5-item block · Key Lines (Route A) OR section-by-section copy (Route B) · A/B Variants (Route B only) · Why This Works (convention)
BLOCKED — brief is fundamentally contradictory (audience and offer don't align); needs user reconciliation
NEEDS_CONTEXT — brand voice or audience undefined and not derivable; recommend create-brand or research-icp
Next Step
Run humanmaxxing to refine voice and compress. Seven Sweeps (Layer 2 cumulative) runs BEFORE humanmaxxing — humanmaxxing is the terminal polish pass. See references/seven-sweeps.md § "When NOT to run Seven Sweeps".