| name | copywriting |
| description | Use during Stage 6 (copy deck generation) of the website factory pipeline to write the complete site copy in one place under one consistent voice: every H1, body section, FAQ, owner story, service/offer page, location page, review summary, and CTA. The niche-specific voice grammar, locked phrases, CRO patterns, and section formulas come from the niche playbook written by Module 2D, this skill provides only the universal contract that every niche must satisfy. |
| allowed-tools | ["Read","Write","Edit"] |
Copywriting Skill
How this skill is customised
The factory ships niche-agnostic. The copywriting strategy that makes copy resonate with a
specific niche (voice grammar, CRO patterns, owner story arc, locked CTAs, section formulas,
review guardrails) is not in this file. It lives in:
templates/{active-niche-slug}/niche-playbook/copywriting.md
That file is generated by Module 2D (/build-niche-template) when the student picks
their niche. Module 2D derives the framework from the top-of-niche research it scored in
Stage 2D and from the strategy brief in Stage 5.
This SKILL.md defines only the universal contract that every niche's copywriting
framework must satisfy: inputs, outputs, gates, file structure, and quality bar. The
agent reads this file first, then loads templates/{slug}/niche-playbook/copywriting.md
for the niche-specific voice and patterns.
If niche-playbook/copywriting.md is missing or empty, the agent halts with a clear error
pointing the student back to Module 2D.
Purpose
Generate the complete copy artifact for the entire site before any building begins. Every
visible piece of human-readable text, H1s, body copy, FAQs, reviews, CTAs, owner story,
location pages, gets written here, in one place, under one consistent voice. The build
agent (Stage 9) then renders it. No copy generation happens during build.
Inputs
Always loaded:
clients/[Client Name]/Pipeline Data/research/research-data.json, business data
clients/[Client Name]/Pipeline Data/research/research.json, narrative research
clients/[Client Name]/Pipeline Data/strategy/sitemap.json, page tree + target keywords
clients/[Client Name]/Pipeline Data/brand/brand-dna.json (if Stage 7 already ran)
Niche-specific framework:
templates/{active-niche-slug}/niche-playbook/copywriting.md, voice grammar, CRO
patterns, section formulas, locked phrases, owner story arc, review guardrails, FAQ
patterns, banned vocabulary
Resonance data (if Stage 15 already ran):
clients/[Client Name]/Pipeline Data/copy/social-resonance.json, structured themes
pulled from local social discussion (pain points, trust signals, objections, local
colour). The niche-playbook's copywriting.md defines which resonance signals shape
which sections.
Output
Single file at end of Stage 6:
clients/[Client Name]/Pipeline Data/copy/copy-deck.md
Structured by page, then by section. Every page in the sitemap has its full copy. The
build agent reads this file at Stage 9 and drops content in.
Universal gates (apply to every niche)
These hold regardless of what the niche playbook prescribes. The agent enforces them
before declaring the stage complete.
- Em-dash audit. Scan every paragraph for em-dashes (, or --). Replace every
instance: split into two sentences (period), use a comma for a brief aside, or use a
colon to introduce a list/elaboration. Zero em-dashes permitted in the delivered copy
deck.
- AI-vocab audit. Scan against
references/copy/ai-vocab-blocklist.md (the universal
factory-level blocklist). Any hit fails the gate. The niche playbook may add niche-
specific bans on top.
- Smart quotes. Curly quotes (
" " and ' '), real en-dashes (–), real ellipsis (…)
, never straight ASCII substitutes.
- Tabular numerals. Prices, dates, statistics, and any aligned numeric column use
font-variant-numeric: tabular-nums. The build agent applies the CSS; copy just needs
to flag the numeric strings.
- No fabrication. Never invent: certifications, years in business, customer counts,
awards, owner credentials, locations served, financing terms, discounts. If research
didn't surface it, the copy doesn't claim it.
- Every page covered. Every page in
sitemap.json has its full copy in the deck.
Zero [BRACKET] placeholders survive.
- Schema-valid output. The copy-deck adheres to
references/schemas/copy-deck.schema.json
(if present; otherwise free-form markdown by page).
Copy deck output format
# Copy Deck, {businessName}
Generated: {ISO_TIMESTAMP}
Voice: {voice tag from research}
Niche: {niche-slug}
Template: {template number and name from niche-playbook}
---
## Homepage
### Hero
- License badge: {brandDna.copy.heroEyebrow}
- H1: {brandDna.copy.heroHeadline}
- Sub-H1: {brandDna.copy.heroSubhead}
- Benefit chip 1: {...}
- Benefit chip 2: {...}
- Benefit chip 3: {...}
### Hero form
- Pre-headline: {brandDna.copy.formHeader}
- Submit button: {brandDna.copy.ctaPrimary}
- Privacy line: {brandDna.copy.formPrivacy}
[... continue for every section of every page in sitemap.json ...]
Process
- Load niche framework. Read
templates/{active-niche}/niche-playbook/copywriting.md.
Halt if missing.
- Load inputs. Research, sitemap, brand-dna (if present), social-resonance (if present).
- Generate per page. For each page in
sitemap.json, walk every section in the order
the niche playbook specifies. Apply the voice grammar + section formula from the
niche playbook. Inject real research data; never fabricate.
- Apply resonance (if available). The niche playbook describes how to weave
resonance signals into specific sections. Use top pain point in hero, top trust
signals in reviews, top objections in sub-H1, local colour in body.
- Run universal gates. Em-dash audit, AI-vocab audit, smart-quote pass, tabular-num
audit, fabrication audit, placeholder audit.
- Validate against schema if present.
- Write
copy-deck.md.
Failure modes
| Scenario | Action |
|---|
niche-playbook/copywriting.md missing | Halt. Tell user to run Module 2D. |
| Research data thin (no owner found, no reviews, etc.) | Generate what's possible; flag gaps explicitly in copy-deck metadata; never fabricate. |
| Voice tone conflict between brand-dna and niche playbook | Brand-dna's voice_register wins. The niche playbook's tone is the default; brand-dna can override. |
| AI-vocab hit at audit | Surface the offending sentence + suggested rewrite. Loop and regenerate. |
What this skill does NOT do
- Does not generate copy without a niche playbook (no built-in default voice grammar)
- Does not write any niche-specific framework (Module 2D does that)
- Does not render the site (Stage 9 build agent does that)
- Does not generate or guess at quantified trust lines without source data in research.json
Cross-channel consistency
When the proposal agent (Stage 14) writes proposal copy, it must use the same voice that
the niche playbook prescribes for the site copy. Both agents read the same
niche-playbook/copywriting.md so the voice stays consistent across every client
touchpoint.