My copy passed every check. It still read cold.

My copy passed every check. It still read cold.

Martin Shein · · 7 min read

I have a script that checks my copy for clichés. Another for clarity. One for spam words, one for CTA strength, one for compliance claims. By August there were six.

Every draft shipped passed all six.

Then I read one of my own articles back and felt nothing.

It was correct. It was clear. It scored well. And it read like a memo from a company, not a message from a person. I could not say what was wrong with it. That is the part that bothered me.

The belief I had to lose

Here is the sentence I had been operating on for months.

If it passes the checks, it is good.

That belief is why cold copy kept going out. The checks measured hygiene. Jargon. Spam triggers. Reading grade. Banned claims. Not one of them measured whether a piece sounded like a person talking to you.

I tried the usual fixes. Read it aloud. Sleep on it, read it again in the morning. Send it to someone and ask if it sounds like me. Every one of those gives you an opinion. Opinions do not survive contact with a deadline.

What I found when I finally measured it

In August I was writing a launch article for another skill. The draft was fine. I was reasonably happy with it.

Before publishing, I did something new. I counted.

Four numbers, on the draft about to ship:

  • 17 em-dashes

  • 16.8 first-person words per thousand

  • 11.1 second-person words per thousand

  • 13.4 words per sentence

Then the same material, rewritten as a story:

  • 0 em-dashes

  • 39.8 first-person words per thousand

  • 26.8 second-person words per thousand

  • 9.9 words per sentence

Same facts. Same product. Same author. The second one is the one people finished.

Two chalk squares on a blackboard. Left, in white: 17, labelled COLD DRAFT. Right, in gold: 0, labelled STORY REWRITE. Above both, the word EM-DASHES.

That is the epiphany. It fits in a line.

A story and an explainer are two different registers. The difference between them is measurable.

For years "does this move me" felt like a taste question. It is a counting question.

The vehicle

So I built the counter myself. It ships in @di-atomic/copy-engine 0.6.0 as verify-narrative-voice. It is the seventh script in the skill.

It reads a draft. It strips the code blocks first, so your examples do not pollute the measurement. Then it prints four bars, each with a PASS or a FAIL.

It runs in two modes, because an explainer is allowed to be an explainer. Story mode wants zero em-dashes. Thirty to fifty first-person per thousand. Fifteen to thirty second-person. Sentences between eight and eleven words.

Those bars are not my taste. They come from a corpus of 83 high-performing LinkedIn posts, and from the measured targets already sitting in my brand voice file.

The method behind the numbers

A gate that says your draft is cold is half a tool. You also need to know what to write instead.

That part I did not invent.

Russell Brunson's Epiphany Bridge Script is five phases and fourteen questions. It is in Expert Secrets, pages 213 to 222. It now ships in copy-engine as an installable registry item, questions intact, page numbers attached.

Five chalk rectangles in a left-to-right row joined by arrows, labelled BACKSTORY, JOURNEY, OPPORTUNITY, FRAMEWORK, TRANSFORMATION. The fifth is circled in gold.

Next to it sits the Hero's Two Journeys, from Michael Hauge and Christopher Vogler. Same book, pages 197 to 211. It explains why the last two questions are two questions and not one.

Question thirteen asks what you achieved. Question fourteen asks who you became.

Two chalk boxes joined by a gold arrow. Left, in white: Q13, WHAT YOU ACHIEVED. Right, in gold: Q14, WHO YOU BECAME.

Almost every launch post stops at thirteen. That is why they read like brags.

Three questions do most of the work. The internal struggle you would rather not admit. The villain, which is nearly always a false belief and not a person. And the vehicle, which you have to explain rather than tease.

One rule made it into the recipe. Never invent the results. If you cannot give a real number for what the framework did, write the piece without that section and say it is missing. A reader who checks one number and finds it hollow will not check a second.

What you get

Ask copy-engine for your founder story, your launch article, or the piece that has to make somebody feel something before it explains anything.

You get the fourteen questions, put to you in your own words. A draft built on the five phases. And four numbers telling you whether what came out reads like a story or like a memo.

You also get the honest gaps. Any question left unanswered comes back listed, not filled in.

The skill is guidance-only. No API to call. No service to go down. Your agent reads it and does the work, and the scripts keep it honest.

New in 0.7.0: words that have to fit a clock

Then I wrote a video script, and my page stopped being the problem.

It was a demo for another skill I built. Sixty seconds, seven shots. I read the script aloud and liked it. I timed the whole thing. It fit.

It did not fit.

I played my voiceover against the picture. Five of my seven lines ran past their shot. I had 67.5 seconds of speech in a 60-second video. My total had hidden it. Each long line spilled into the next shot, so my voice talked over the wrong picture.

The line most likely to run long is the close. It overflowed in four of my six demo scripts. It gets the shortest shot and the longest line, because that is where the install step goes.

So copy-engine now writes the words you hear, not just the ones you read.

Ask it for a demo, an ad, a short or a tutorial. You get a beat table. One row per shot, with the voiceover, the text on screen, and a word budget for that row. You get one table per language, because the same line runs longer in Russian or Hebrew than in English.

The first three seconds come from hook-generator. The timing comes from video-director. It reads your table and times every row. A row that runs long comes back with its own word budget. You rewrite only that row.

I ran it on my own demo. Same picture, same seven shots. I changed only the words.

  • Before: 5 of 7 lines over, 67.5 seconds of speech

  • After, English: 0 of 7 over, 35.2 seconds

  • After, Russian: 0 of 7 over, 37.2 seconds

One fix surprised me. My close said "Install it from the OPVS Marketplace." A voice reads OPVS as four letters. That pushed my line over by three hundredths of a second. Now it says "Install it from the marketplace." I put the name and the install command on screen, where you can read them.

My Russian has not had a native speaker's review yet. That is next.

What actually changed

A year ago this piece would end with a line about how much better my copy is now.

That is not what changed.

What changed is that I stopped trusting my ear. The first draft still gets written by feel, the way it always did. Then four numbers run over it. Roughly half the time they catch something my ear missed completely.

Drafts I was ready to bin got kept. Drafts I was proud of got rewritten. I run the numbers on everything now, before anything ships.

I am a worse judge of my own writing than I thought. Finding that out was worth more than the script.

Get @di-atomic/copy-engine free on the OPVS marketplace.