promptdojo_

The voice fingerprint — a client's voice, measured from their own copy — step 1 of 8

The client you inherit

Monday. You've just picked up Windrow — a backpack brand whose previous copywriter left with the brand book in her head. What you have instead: three pieces of live, published, client-approved copy. A product page, a welcome email, an about page. And a brief: the Drift 28 relaunches next Thursday, and the client wants "the usual voice, but everywhere" — subject lines, landing hero, social. Call it a dozen variants.

You'll draft with a model. Everyone does — Muck Rack's 2026 survey has 76% of PR professionals using generative AI, and the drafting itself is the least defensible hour of your week to spend typing. The question that decides whether you keep this client is different: when twelve variants come back, how do you know they sound like Windrow and not like the internet's average backpack?

"Sounds like them" is not transferable

Ask three people whether a line sounds like Windrow and you'll get three vibes. Vibes don't survive handoff — to a model, to a subcontractor, to yourself at 11pm. What survives handoff is measurement.

Run the editor. That's one paragraph of real Windrow copy, and the script tells you something no brand book bothers to write down: the average sentence is seven words long. Not "punchy." Not "confident but warm." Seven words. A script can check seven. No script can check punchy.

Read those five sentences again like a copywriter, though, because the numbers don't catch everything yet: "That's not a typo" — contractions, and a dry aside. Zero exclamation points while announcing a flagship product. "You," twice. Spec first, swagger second. That's a voice with opinions. Your job this lesson is to get those opinions out of your head and into a data structure.

Where this lesson goes

You'll build a fingerprint() function that reads a sample and returns the measurable facts of its voice: sentence length, exclamations, contractions. You'll run it over all three samples, derive rules from the measurements — not from your taste — and assemble the result into a versioned voice pack that names its own evidence. Every batch you generate for the rest of this chapter gets checked against it.

One warning before you start: the rules must come from the samples. The moment you write a rule the samples don't support, you're not capturing Windrow's voice — you're overwriting it with yours. That temptation gets its own drill in step 4.