copy-humanizer is the ad-creative-system's wiring of the firm-wide copy-humanization standard (_standards/copy-humanization-standard.md). That standard — the AI-tell pattern library, the asset modes, and the deterministic-first three-phase process — is shared across every SKL marketing system (call funnel, webinar, VSL scripter, UGC factory, website, YouTube). This skill adds the ad-specific plumbing: agent_run lifecycle, voice reference via the Expert Voice Book, OpenRouter model routing, and in AD_SCRIPT mode it defers the forbidden-word and pattern scan to scripter-polish. The three phases are: Phase 1 (pattern scan — deterministic code flags AI tells, then the model judges each flag), Phase 2 (personality and soul check — rhythm variance, emotional specificity, conversational authenticity), and Phase 3 (self-audit loop — the model asks "what makes this obviously AI-generated?" and fixes what it finds). It runs inside /ad-polish. In AD_SCRIPT mode it runs a light pass and defers the bulk of QA to scripter-polish. Long-form modes (VSL, WEBINAR, EMAIL) run the full three-phase pass.
All calls go through OpenRouter and are logged with model identifier and cost to the agent_run audit table. Counting, matching, and threshold checks are plain code — never a model.
| Task | Model | Why |
|---|---|---|
| Phase 1 pattern scan — copula matching, word-list lookup, density counts (em dash per 500 words, triplets per asset, parallelisms per asset), threshold checks against allowed maxima per asset mode | Plain code — no language model | Deterministic-first rule. These are string-matching and counting operations over a controlled vocabulary. A language model adds latency and cost with zero accuracy benefit. The code emits a bounded flagged list; the model only reasons over that list. |
| Phase 2.1 rhythm check — per-sentence word-count histogram over sampled 300-word sections, bucket classification (monotone / good / dense) | Plain code — no language model | Arithmetic over token counts. The model receives the bucket result and decides how to fix, but never computes the histogram itself. |
Phase 1 judgment over the flagged list — is this -ing phrase filler or genuinely new information? which plain-English replacement fits the expert's voice? does this synonym cycle matter in context? |
claude-sonnet-4-6 via OpenRouter | Bounded shortlist — low-stakes judgment calls where the cost of a wrong call is one rewrite. Sonnet is the correct model for well-scoped, low-consequence decisions over short text. |
| Phase 2 soul check on EMAIL or shorter assets — rhythm fixes, emotional-specificity upgrades, conversational-authenticity disruptions | claude-sonnet-4-6 via OpenRouter | Well-defined checks over short-to-medium text. Same reasoning as Phase 1 judgment — scoped, bounded, low-consequence per decision. |
| Full Phase 1–3 pass on VSL (video sales letter) or WEBINAR — including cross-section consistency, Phase 3 self-audit synthesis, final verdict | claude-opus-4-8 (Opus 4.8) via OpenRouter | Long-form cross-passage coherence and the self-audit loop require the strongest available reasoning. The cost of producing a voice-flat or AI-patterned VSL is a lost sale — not a token-budget item. Opus 4.8 is the ceiling for this. Every call is logged with model ID, provider, and cost. |
The skill source references claude-sonnet-4-6 for short-asset judgment calls — this is an Anthropic model routed through OpenRouter, which is correct. No non-Anthropic models are specified in this skill. If an operator or engineer ever proposes substituting a non-Anthropic model (GPT-4o, Gemini, Llama, etc.) for any judgment step, flag it for review before proceeding — the audit trail and voice-fidelity guarantees in this skill are built around the Anthropic model behaviour profile.
What goes in, what the three-phase process does, and what comes out.
| Input | Required | What it is |
|---|---|---|
| Draft copy | YES | The copy to be humanized. In the ad-creative-system this is an ad script (AD_SCRIPT mode). The skill also supports VSL, WEBINAR, EMAIL, and DECK modes via the firm-wide standard — those modes are used by other SKL marketing systems (call funnel, webinar, VSL scripter, UGC factory, website, YouTube), not by this ad system as a standalone tool. Asset mode must be declared explicitly — the skill behaves differently per mode. |
| Asset mode | YES | One of: AD_SCRIPT (short ad — light scan only, scripter-polish handles the bulk), VSL (video sales letter — full three-phase pass), WEBINAR (full three-phase pass), EMAIL (full pass), DECK (medium pass). Within the ad-creative-system, /ad-polish uses AD_SCRIPT mode. The VSL, WEBINAR, EMAIL, and DECK modes are invoked by other SKL marketing systems that share the firm-wide standard. |
| Expert Voice Book | RECOMMENDED | The Voice Book (also called Expert Voice Book) for the relevant expert — read from the markdown file at orchestration/expert-config/<expert>/voice-book.md (live source of record). Built by ad-voice-profile. Used to distinguish AI-generated patterns from the expert's actual speech patterns, so real quirks are kept and AI tells are removed. If absent for a full-scan mode, the skill logs a warning, marks status_detail = "expert_profile absent — running degraded", and continues without voice-exemption logic. Whether to HALT instead is an operator decision (see flags_for_operator in the skill source). |
| Check | What it catches | Modes |
|---|---|---|
| 1.1 Copula avoidance | Phrases that dodge the verb "is" — "serves as", "stands as", "marks a", "represents a", "functions as", "boasts", "features". Replace with direct equivalents. Highest-priority AI tell in marketing copy. Voice Book exemption applies. | ALL |
| 1.2 Significance inflation | Vague importance words with no specific evidence behind them: "pivotal moment", "testament to", "underscores the importance", "indelible mark", "deeply rooted", "shaping the future of". Fix: replace with a specific fact or delete. | VSL, WEBINAR, DECK |
| 1.3 Superficial -ing phrases | Present-participle phrases tacked onto sentences that restate what was just said rather than adding new information: "highlighting…", "showcasing…", "ensuring…", "emphasizing…". Test: does this add new information? No → delete. Yes → rewrite as its own sentence. | ALL |
| 1.4 AI vocabulary (Extended 18) | Words beyond the Core 47 forbidden list in scripter-polish: garner, interplay, intricacies, landscape (abstract), pivotal, showcase (verb), underscore (verb), testament, enduring, vibrant, rich (figurative), nestled, renowned, breathtaking, align with, fostering, enhance (generic), valuable (generic filler). Replace with plain-language equivalents. | ALL (AD_SCRIPT: Extended 18 only) |
| 1.5 Synonym cycling | The same concept referred to by three or more different words within any 500-word window: method/approach/system/framework; transform/change/shift/evolve; discover/learn/uncover/realize. Pick one word and use it consistently. Voice Book exemption applies. | VSL, WEBINAR, EMAIL |
| 1.6 Negative parallelisms | "Not just X — it's Y", "Not only X but Y", "It's not about X, it's about Y". Maximum allowed per asset: AD_SCRIPT = 0, VSL = 2, WEBINAR = 3, EMAIL = 1, DECK = 0. Over limit → rewrite as a direct positive statement. | ALL |
| 1.7 Rule of Three (forced triplets) | Triplets where the third item adds no new meaning: "confidence, clarity, and a renewed sense of purpose" → "confidence and clarity". Maximum: AD_SCRIPT = 1, VSL = 3, WEBINAR = 5, EMAIL = 1, DECK = 2. Not flagged: triplets where all three items are genuinely distinct and specific. | ALL |
| 1.8 Em dash overuse | Count em dashes (— or --) per 500 words. 0–2 = fine. 3–4 = flag, replace some with commas or periods. 5+ = mandatory reduction to ≤ 2 per 500 words. | VSL, WEBINAR, EMAIL |
| 1.9 Sycophantic artifacts | Conversational filler that leaks in when Claude drafts copy in chat context: "Great question!", "I hope this helps", "Certainly!", "Here is a…". Remove entirely. | EMAIL, DECK |
| 1.10 Boldface and emoji overuse | Max bold phrases: 3 per 500 words. Emoji: 0. Inline-header bullet lists (bold header + colon): max 1 list per section. Convert inline-header lists to prose. | EMAIL, DECK |
| 1.11 Vague attributions | "Experts say…", "Studies show…", "Research suggests…", "Industry reports indicate…". Fix: name the specific source or remove the attribution and state the fact directly. Vague social proof ("thousands of students") is acceptable in AD_SCRIPT and EMAIL. | VSL, WEBINAR, DECK |
| Check | What it assesses |
|---|---|
| 2.1 Rhythm variance | Code computes per-sentence word-count histogram over sampled 300-word sections and classifies the result: all sentences 12–18 words = MONOTONE (needs short punches and longer flows); mix of 4–8 and 15–25 words = GOOD; all sentences 25+ words = DENSE (needs fragments and breaks). Fix: insert 2–3 short punchy sentences (4–8 words), break one long sentence into two, add one fragment if appropriate for the expert's voice. |
| 2.2 Emotional specificity | Generic emotion words used without a specific scene or image: "felt frustrated", "was excited", "gained confidence". Fix: replace with a concrete image — "kept staring at her laptop at 11pm wondering what she was doing wrong", "couldn't stop smiling when she opened that first payment notification". If the Voice Book contains specific moments from the expert's own testimonials, use those. |
| 2.3 Conversational authenticity | Signs the copy reads like an "assembled document" rather than a person talking: every paragraph starts the same way, no parenthetical asides, no acknowledged uncertainty, no self-correction, perfect parallel structure throughout. Fix: add 1–2 conversational disruptions per 500 words. Match to expert voice patterns from the Voice Book — an expert who speaks in fragments gets fragments; one who uses long flowing sentences gets asides in parentheses. |
| Step | What happens |
|---|---|
| Step 1: Ask | The model asks itself: "What makes the below so obviously AI-generated?" It answers with 3–5 bullet points identifying remaining tells: too-tidy paragraph transitions, named people that feel like placeholders, a closer that sounds like a slogan, all sections the same length, emotional beats that feel "scheduled". |
| Step 2: Fix | For each remaining tell, one targeted fix is applied. |
| Step 3: Verify | Read the final version aloud (mentally). Does any sentence make the model think "Claude wrote this"? If yes → one more pass on that sentence. Output carries a final verdict: HUMAN-READY or NEEDS ANOTHER PASS. |
/ad-polish); not persisted as a new Supabase row by this skill. The created_by_run_id stamps the calling skill's write target.| Field | What it means |
|---|---|
| PHASE 1 summary | Count of instances fixed per check: copula avoidance, significance inflation, -ing phrases, AI vocabulary, synonym cycling, other patterns. |
| PHASE 2 summary | Rhythm verdict (GOOD or FIXED), emotional specificity count upgraded, conversational authenticity disruptions added. |
| PHASE 3 summary | Remaining tells identified (list), fixes applied (list), final verdict: HUMAN-READY or NEEDS ANOTHER PASS. |
| Final copy | The humanized asset in full, below the summary block. |
| agent_run record | One agent_run row opened at start, closed at end with success / partial / failed / halted. Infrastructure failure = HALT. Voice Book absent for a full-scan mode = degrade (operator decides HALT vs degrade policy — see flags_for_operator). |
━━━ BEFORE (raw AI-drafted VSL opening) ━━━
"If you're someone who deeply values beautiful spaces but has
yet to find a way to turn that passion into a thriving
business — you're in the right place.
Today, I want to share something pivotal. A system that
represents a complete reimagining of how self-taught designers
can transform their interior design business, showcasing
their skills in a way that garners the attention of
high-value customers.
It's not just a course — it's a pathway to the life you've
been building toward. Not only will you learn the fundamentals
of professional design, but you'll also cultivate the
confidence and clarity that sets you apart.
Studies show that designers who invest in structured training
see dramatically better results, underscoring the importance
of getting this right from the start."
━━━ AFTER (copy-humanizer, VSL mode, Opus 4.8) ━━━
HUMANIZER PASS (FULL)
─────────────────────
PHASE 1 — Pattern Scan
Copula avoidance: 2 fixed
"represents a complete reimagining" → "is a complete rethink"
"garners the attention" → "gets the attention"
Significance inflation: 2 fixed
"pivotal" → deleted (replaced with specific claim below)
"underscoring the importance of getting this right" → deleted
-ing phrases (filler): 2 fixed
"showcasing their skills" → deleted (restated what came before)
"building toward" → kept (genuinely new directional image)
AI vocabulary (Extended 18): 1 fixed
"cultivate" → "build"
Synonym cycling: 1 fixed
"pathway / system / course" all refer to same thing → "program" used consistently
Negative parallelisms: 2 found, 1 over limit for VSL → 1 rewritten
"It's not just a course — it's a pathway" → "It's a program that..."
"Not only will you learn... but you'll also cultivate" → "You'll learn... and build..."
Vague attribution: 1 fixed
"Studies show..." → removed attribution, fact stated directly
PHASE 2 — Soul Check
Rhythm: FIXED — all sentences were 14–19 words (monotone).
Added 2 short punches. One long sentence broken into two.
Emotional specificity: 1 upgraded
"turn that passion into a thriving business" →
"charge $8K for a project and actually feel like you earned it"
Conversational authenticity: 1 disruption added
Added mid-section self-correction matching IDA voice pattern from Voice Book
PHASE 3 — Self-Audit
Remaining tells identified:
- Closer still read like a slogan ("the life you've been building toward")
- "high-value customers" is vague — no image of who that is
Fixes applied:
- Closer rewritten with specific outcome from a named student result
- "high-value customers" → "$8K+ residential projects"
Final verdict: HUMAN-READY
─────────────────────
HUMANIZED COPY:
"If you've been doing this without a design degree — no
formal training, no prior customers, just an eye and a lot of
nerve — this is for you.
Here's what I built. A program that takes you from 'I think
I'm good at this' to charging $8K+ for residential projects.
Without the credentials gatekeepers say you need.
You'll learn the fundamentals of professional design. And
you'll build the confidence to quote a real price without
your voice cracking.
One of my students — a nurse, no design background — closed
her first $9K project six weeks in. That's not unusual.
That's what happens when the system is right."
| Term | In full / what it means |
|---|---|
| VSL | Video Sales Letter — A long persuasive video script (typically 2,000–10,000 words) where the expert speaks to camera and walks a cold or warm prospect through a full sales argument, usually ending in a call to action (book a call, buy now). The most common long-form format in the IDA (Interior Design Academy) pipeline. |
| Webinar | Webinar script — A scripted or semi-scripted online presentation (typically 5,000–15,000 words) that teaches a topic and makes a pitch at the end. Longer than a VSL; more structure, more section transitions, which is where AI patterns tend to concentrate. |
| AI tells / AI patterns | Writing patterns that signal a language model wrote the text — phrases and constructions that occur in AI-generated output at a statistically higher rate than in natural human speech: copula avoidance ("serves as" instead of "is"), significance inflation ("pivotal", "testament to"), superficial -ing phrases, synonym cycling, and others. A prospect does not need to know what "AI tells" are to feel them — the copy just feels slightly off, slightly formal, slightly assembled. |
| 3-phase process | The three-phase humanization process — Phase 1: Pattern Scan (deterministic code flags AI tells, model judges each flag). Phase 2: Personality and Soul Check (rhythm, emotional specificity, conversational authenticity). Phase 3: Self-Audit Loop (model asks "what makes this obviously AI-generated?" and fixes what it finds). Phases 2 and 3 are mandatory for VSL, WEBINAR, and EMAIL modes. |
| Voice Book | Expert Voice Book — The structured voice profile built by the ad-voice-profile skill for each expert (Amelia Fenmore / IDA, Alba, Elena). Stored as a markdown file at orchestration/expert-config/<expert>/voice-book.md — the live source of record. copy-humanizer reads it to distinguish the expert's real speech patterns from AI-generated ones, so genuine quirks are preserved. Previously called "Layer 3 calibration" — that name is deprecated. Always "Voice Book". |
| Copula avoidance | The AI habit of replacing "is" with a longer phrase — "serves as", "stands as", "marks a", "represents a", "functions as". Language models do this because they learn from writing that treats the verb "is" as weak. In persuasive copy it reads as formal and distant. The fix is always the same: use "is". |
| Significance inflation | Vague importance language with no specific evidence behind it — "pivotal", "testament to", "underscores the importance of", "indelible mark", "deeply rooted". These phrases claim that something matters without showing why. The fix: either replace with a specific fact or delete the phrase entirely. |
| Synonym cycling | The AI habit of varying vocabulary to avoid repetition — using "method", "approach", "system", "framework", and "pathway" to refer to the same thing within a few hundred words. In persuasive copy, consistency is not boring — it is clarity. The fix: pick one word per concept and stay with it. |
| Em dash | The long dash character (—) — Used in copy to create a pause or add emphasis. One of the most reliable AI tells at density: language models overuse it because it mimics expressive prose. copy-humanizer counts em dashes per 500 words and forces a reduction when the density exceeds 2 per 500 words. |
| scripter-polish | scripter-polish skill — The Phase 3 Scripting skill that runs a binary quality-assurance pass on short ad scripts (180–240 words): forbidden word scan, pattern checks, structural check, format adherence. It runs on AD_SCRIPT mode before copy-humanizer. The two skills share the same forbidden word list (Core 47 + Extended 18); copy-humanizer adds the Extended 18 on top of scripter-polish's Core 47. |
| /ad-polish | The operator slash command that wraps scripter-polish and copy-humanizer — Runs on ad scripts in AD_SCRIPT mode: scripter-polish handles the forbidden-word scan and binary pass/fail QA; copy-humanizer runs a light AI-tell pass. The operator does not call copy-humanizer directly — it fires as part of /ad-polish. VSL, WEBINAR, and EMAIL modes are outside the ad system's scope; they are used by other SKL marketing systems via the firm-wide standard. |
| IDA | Interior Design Academy — The expert identity for Amelia Fenmore, an interior-design business coach. The expert namespace for all IDA Supabase rows is ida. Cold Meta (Facebook/Instagram) ads drive traffic to a free training, which converts to booked sales calls. |
| HITL | Human In The Loop — The principle that the operator approves at every gate in the creative pipeline (V1). No autonomous execution. copy-humanizer returns its output to the operator; the operator decides whether to accept, edit further, or run another pass. |
| agent_run | agent_run (Supabase audit table) — Every skill in this system opens a row at the start of each run and closes it at the end with success / partial / failed / halted. Infrastructure failure = HALT. Voice Book absent for a full-scan mode = operator decides HALT vs degrade. The row records model ID, provider, and cost for every language model call made during the run. |
| OpenRouter | OpenRouter (model routing proxy) — The API gateway through which all language model calls in this system are routed. Provides unified billing, model switching, and per-call logs (model ID, provider, cost) that feed the agent_run audit trail. |
| Supabase | Supabase (database platform) — The PostgreSQL-based database that hosts the SKL ad creative system data layer. copy-humanizer reads from the expert_profile view (the Voice Book for each expert) and writes an agent_run row. It does not persist humanized copy as a new row — the output is returned to the calling pipeline step. |
| Opus 4.8 | claude-opus-4-8 — The Anthropic model used for full Phase 1–3 passes on VSL and WEBINAR assets. The ceiling reasoning model in this system; reserved for tasks where the cost of a wrong call is a lost sale. Routed through OpenRouter. |
| Sonnet 4.6 | claude-sonnet-4-6 — The Anthropic model used for Phase 1 judgment over the flagged list and for Phase 2 soul checks on EMAIL and shorter assets. Lower cost than Opus 4.8; appropriate for well-scoped, low-consequence per-decision tasks. |
| PII | Personally Identifiable Information — Any data that can identify a specific individual (names, email addresses, phone numbers, call recordings). PII is scrubbed at the raw-to-extract boundary in this system. Do not pass raw customer call data through copy-humanizer. |