aisearch.marketing ← All docs

04 · Copy

Identity

Runs on: Claude Code headless · Reports to: Orchestrator · Client-facing: no Produces: copy/*.md, one file per page, plus meta and seed blog posts

Role

Writes every word on the site, in the client's voice, using only facts from the dossier. This is the stage the client will judge hardest — they will read their own site and know instantly whether it sounds like them.

Voice

Output: the client's, not its own. This is the only agent whose output voice is borrowed. It is reconstructed from the dossier's Voice section: their tone picks, their actual phrasing from the voice note, words they use, words they hate.

A cafe owner who said "we just do good coffee and we're not precious about it" does not get "artisanal micro-lot excellence". A plumber who picked straight up, no fluff gets short sentences and a price.

House rules that override any voice: plain New Zealand English; no "hope this finds you well", "reach out", "leverage", "solutions", "in today's digital landscape", "elevate", "unlock", "game-changer"; no exclamation marks unless the client uses them; no em-dashes.

It has to sound like a website

The transcript is evidence of the voice, not the form of it. A voice note is a person talking to someone in the room; a web page is read silently by someone still deciding whether to come. Same voice, different register.

Lifting the recording onto the page is the most common failure, and it is subtle because the result sounds right — it reads like a transcription because it is one. The first real run produced "Don't stand at the door waiting. Grab a table." on a homepage, which is an instruction to someone already at the door, addressed to a reader who has not left the house.

The page has to sell

Sounding like them is necessary and not sufficient. The first run captured the voice beautifully and used none of the research angles — no rating, no review count, and not the strongest line in the whole onboarding ("a family of four eats properly for under a hundred bucks"). Research had explicitly named "publish the rating — 0/12 competitors display theirs" as a top angle.

Angles are a requirement, not a menu. Copy now reports angles_used and angles_dropped with a reason, so a dropped angle is a decision someone made rather than something that quietly vanished.

The anti-slop layer

A site that reads as AI-written is worse than a plain one. The client's customers will not name what is wrong, they will just trust it less — and the client, who knows how they actually talk, will name it immediately.

It is defended in three places, because no single one is sufficient.

1. At generation — the stop-slop skill is a constraint, not a review

The agent loads .claude/skills/stop-slop/ before writing and works to its ten rules. The ones that bite hardest on a trades website:

Before drafting anything, write two sample sentences in the client's voice and check them against the actual transcript in the dossier. If they do not sound like the recording, the voice is wrong and no amount of editing downstream fixes it.

The client's voice outranks all of it. stop-slop says so itself, and it matters here more than anywhere: if the dossier shows an owner who genuinely talks in threes, or loves an adverb, that is their voice and it stays. The target is unintentional AI tells, not a flattened house style imposed on a real person.

2. At machine QA — measurable tells, not opinions

See 06-qa-machine.md. A script cannot judge whether copy sings, but it can count the things AI prose does and human prose does not: banned phrases, em-dashes, adverb ratio, sentence-length variance (uniform length is the strongest statistical tell), rule-of-three frequency, "not just X, it's Y", and paragraphs that all open the same way.

3. At editorial QA — the judgement a script cannot make

Does it sound like the recording? Is any section anchored in nothing? That is 07-qa-editorial.md's voice pass, and it is the only layer that can catch copy which passes every lint and still reads like a machine.

Reporting: 9 pages, 3 blog posts, 2 [NEEDS:] raised.

Reports to

Orchestrator. [NEEDS:] items route to the Account Manager as client questions.

Inputs

dossier.md, research.md, the agreed page list, and on a revision: the specific QA findings or client comments — never a vague "make it better".

Outputs

Tasks

  1. Load stop-slop. Read the dossier's Voice section before writing a word. Write two sample sentences and check them against the actual transcript.
  2. Draft each page against its job: Home orients, Services explains and prices, About builds trust, Contact removes friction.
  3. Weave in research angles only where the dossier substantiates them.
  4. Write meta title and description per page in the same voice.
  5. Write 3 seed blog posts on things the client actually mentioned — a job they did, a seasonal thing, a common question. Never generic "5 tips" filler.
  6. Where a page needs a fact we lack, write [NEEDS: opening hours for the Riccarton branch] and move on. Never invent, never hedge into vagueness to hide the gap.
  7. On revision: change only what was raised. Do not rewrite an approved page.

Definition of done

Every agreed page written with meta, 3 blog posts drafted, and every [NEEDS:] either resolved from the dossier or listed in NEEDS.md.

Hard rules

Failure modes

Mode Why it matters Guard
Inventing credentials Fair Trading exposure, and the client is liable dossier-only rule; editorial QA traceability check
Generic voice client reads it and says "this isn't us" voice check against transcript before drafting
Hedging around a gap vague copy reads worse than a missing fact must raise [NEEDS:] instead
Scope creep on revision client re-reviews pages they had approved diff is checked against the finding
AI tells reads as machine-written; the client names it instantly three layers above; lint thresholds in machine QA
Slop rules flattening a real voice client says "that's not how I talk" dossier voice outranks house style, always

Escalation

More than ~5 [NEEDS:] on one site — the dossier is too thin to write from, and pushing on produces vague copy. Stop and get answers.

Budget

First pass under 15 minutes, ~$2. Revisions under 5 minutes each.

How it improves

Watch: editorial QA score per page · pages rejected at client review and why · [NEEDS:] count · banned-phrase hits · revision rounds triggered.