The AI Read
← Latest
Method

Voice

6 min read

House rules for everything published here. They sit underneath PERSONAS.md: the three bylines argue differently, and all three obey these.

These are not invented for this project. They are the same rules as the anti-AI review pass already in use on the job-search letters — the cover-letter-anti-ai skill, and WRITING-INSTRUCTIONS.md §4A behind it. Same tell list, same two tiers, same guiding principle. One voice standard across everything, not a second one that drifts.


The test that actually matters

Before the list: does the sentence say something a reader could disagree with?

Most prose that "sounds like AI" is not failing on vocabulary. It is failing because it takes 40 words to avoid making a claim. Hedged, balanced, agreeable, and empty. The tells below are symptoms; this is the disease. A paragraph with no em dashes that still says nothing has not been fixed.

Every sentence should be doing one of: stating a fact with a source, making a claim someone could argue with, or explaining why the first leads to the second.


The tell list

Hard — fails the build

TellWhyInstead
Em dashThe single clearest signature. We do not use them.A period, comma, colon, or parentheses. Usually a period.
Manufactured candor — "to be honest", "let me be clear", "it's worth noting that"Announces honesty rather than being it. The words after it are never more honest than the words before.Say the thing.
AI register — delve, tapestry, testament to, moreover, furthermore, myriad, showcase, underscore, paradigm shift, at the end of the dayWords that appear in generated prose far more often than in written prose.Ordinary ones.
Empty intensifier — "significant increase", "substantial impact"An adjective standing where a number should be.The number. If there isn't one, the sentence is not saying anything.

Review — fine once, a tell repeated

Reported with the line, never fails the build, because the call is a person's.

TellThe line
Aphoristic opener — "At its core…", "Here's the thing", "Make no mistake"Open on the specific thing, not a truism about it.
Hedge stack — "may potentially", "some would argue", "to some extent"One hedge is honest. Two in a clause is a way of not saying it.
Antithesis — "not X, but Y"; "X, not Y."; "rather than"Once is human. Every paragraph is a tell.
Announced significance — "which is the part worth watching", "is the open question"Say the thing. Do not label it as the important thing.
Triad stack — "the planning, the schedules, the tools"Three parallel nouns. Vary the shape.
Loop-closer — "and that's exactly the point"At most once, only if earned.

The trailing antithesis is the one to watch. The original rule caught "not X, but Y" and missed the form this publication actually reaches for, which is the closing epigram: a sentence says its piece, then says it again inverted.

"A link to a batch directory is somebody else's list, not coverage." "Two people selling the work product of a lobbying firm rather than software for one, which is the part worth watching: it prices the output, not the seat."

Nothing after the comma is new. It is there for the rhythm, and the rhythm is what gives it away, because every paragraph lands the same way. Test: delete the clause after the comma. If the paragraph loses no information, it was decoration.

Keep it where the contrast carries a real distinction. "Run-rate, not recognized revenue" earns its place. "It prices the output, not the seat" does not.

House style: American

US spelling and US date order. Not a judgment about English, just consistency with the audience: behavior, center, defense, organization, analyze, program, and August 10th 2026 rather than 10 August 2026.

The generator was written day-month-year throughout and the prose matched it, which is how a US publication ended up reading British. tools/voice.py reports both at the review tier rather than failing the build, because a direct quotation keeps the spelling its source used, and a citation title is never edited at all.

Density, not absence

A single "not X, but Y" reads human. The same move three times on a page reads generated. The checker only flags the review tier once it crosses a rate, and the right response to a flag is often to fix two of the four, not all of them.

Do not scrub this into flat, voiceless prose. That is a different failure and not obviously a better one. The target is a person who writes well, not the absence of a person.


What is exempt, and why

  • Citation titles. [Astra explained — Axios](url) is that outlet's headline. Editing it would misquote a source.
  • The ## Sources section, for the same reason.
  • Code blocks and front matter.
  • docs/ and code comments. Internal. The rule governs what gets published.

Exemptions live in strip_exempt() in tools/voice.py. Adding one is a deliberate act — if a tell needs an exemption to pass, the likelier explanation is that the sentence needs rewriting.


The process

Three passes, in this order. The first is free and catches most of it; the third catches what a script cannot see.

1. Mechanical. Runs on every push and in CI.

python3 tools/voice.py                    # everything published
python3 tools/voice.py reports/daily/2026-08-12.md
python3 tools/voice.py --rank             # worst first, for triage

2. Judgment read. Read the piece back asking the question at the top: which sentences could a reader disagree with? Mark the ones that could not. Those are the problem, and the checker will never find them.

3. Adversarial verify — for the weekly and monthly, where the stakes are higher. Spawn a skeptic with this file and the draft and ask it to find every remaining tell and every sentence that survives on tone rather than content. Apply what it finds.


The existing archive

The August 2026 issue and the first daily briefs were written before this file existed and carry roughly 230 hard tells, mostly em dashes. --rank lists them worst-first.

Dated issues are immutable, and that rule is about facts and claims — a correction appends, it never quietly rewrites what was said. Punctuation is not a claim. Replacing an em dash with a full stop changes nothing a reader could have relied on, so a voice pass over the archive is allowed where a factual edit would not be.

The bar for touching a published issue: style only, and the meaning must be identical afterwards. If a rewrite makes a sentence say something different, keep the sentence and lose the edit.