Voice & tone

Measured from the site's own copy under src/content/. The voice the sitedeclares — tone, person, word choices, phrases it does not use — lives onAspects. This page is what the copy actually does, so the two can be held against each other.

Scoped corpus. Only blog, newsletter, guides and docs were measured — 4 of 13 collections under src/content/. The rest is not site prose. Text hardcoded into src/pages/ templates is always measured, whatever the scope.

What was measured

227 files, 162,619 words of body prose and 39,608 words of display copy across 4488 headings, taglines, captions, labels and alt strings.

Read fromFiles
src/content/**/*.md — prose and frontmatter135
src/pages/**/*.astro — text hardcoded into a page92

The site's voice config is deliberately excluded. It holds the avoid list, so scanning it would make every site fail its own audit on the document that declares it.

Prose and display copy are measured apart, not averaged. Rhythm, register and vocabulary below run on body prose only — a caption is meant to be verbless, and scoring one for sentence rhythm reports a fault where there is a convention. Display copy gets its own section. The banned-phrase audit runs onboth: a phrase in a hero heading ships harder than one in a paragraph, because more people read it.

GroupDocsWordsMean sentenceVariationDiversity
docs7086,53620.81.0986.3
blog4651,86714.90.76110
guides1824,20415.30.77102.4
newsletter112120

Groups are the top-level directories under src/content/. They are shown apart because they are usually written by different people to different rules, and one averaged number hides exactly the difference a style guide exists to settle.

Rhythm

The mean is the least useful number about rhythm — it describes copy where every sentence is the same length and copy that swings between four words and thirty. The distribution is the tone.

Sentence length across all copy
Sentence lengthSentences
0–4 words790
5–9 words1958
10–14 words1981
15–19 words1509
20–24 words1111
25–29 words701
30–34 words435
35–39 words229
40–44 words138
45–49 words86
50–54 words68
55–59 words46
60–64 words34
65–69 words29
70–74 words20
75–79 words14
80–84 words14
85–89 words14
90–94 words13
95–99 words5
100–104 words5
105–109 words5
110–114 words5
115–119 words4
120–124 words1
125–129 words2
130–134 words1
135–139 words2
145–149 words1
150–154 words1
160–164 words1
180–184 words1
200–204 words1
270–274 words1
590–594 words1
810–814 words1
Median 14 words, quartiles 8 and 22, longest 811.30% run under ten words; 12% run over thirty.

Length variation

1

Above targettarget 0.4–0.7

Standard deviation 17.7 words over a mean of 17.6. This is the number that decides whether the copy has a pulse.

Under 0.4 the copy is metronomic; over 0.7 it reads restless. Corpus stylistics has no canonical band — this one is set from readable editorial prose.

How this is measured

Counts: How much sentence length differs across the copy.

Computed: Standard deviation of sentence length in words, divided by the mean (the coefficient of variation). Reported instead of the mean because a mean of 18 describes both copy where every sentence is 18 words and copy that runs 4, 31, 7, 30 — and those read nothing alike.

Limits: Scale-free by design, so it can be compared between sites. It says nothing about whether the long sentences are any good.

House style

Alternation

12.9words

Mean difference between one sentence and the next. Variation says the lengths differ; this says they take turns rather than arriving in long blocks.

How this is measured

Counts: Whether long and short sentences take turns.

Computed: Mean absolute difference between each sentence and the one before it. Variation says the lengths differ; this says they interleave rather than arriving in one long block and then a short one.

House style

Short sentences

30%

Under ten words. The short ones carry the emphasis — 12% run over thirty and carry the argument.

How this is measured

Counts: The share under ten words, and the share over thirty.

Computed: Sentences are split on terminal punctuation followed by a capital, re-joining known abbreviations, then counted in words.

Limits: A sentence with an unlisted abbreviation ("approx.", a middle initial) splits in two and counts as two short sentences.

House style

Lexical diversity

95.1

MTLD — words before the vocabulary starts repeating. Around 50 is plain, 100 ordinary, 130 varied. Higher is not automatically better: a site is allowed to call the same thing the same word every time.

How this is measured

Counts: How many words the copy runs before it starts repeating vocabulary.

Computed: Tokens are walked until the running type-token ratio drops to 0.72, which closes one factor; the count is tokens divided by factors, averaged forwards and backwards. Roughly: 50 is plain, 100 ordinary, 130 varied.

Limits: Not scored below 50 tokens — there is not enough text for the number to mean anything. Higher is not automatically better: a site is allowed to call the same thing the same word every time, and should.

McCarthy & Jarvis

Person & stance

Halliday's interpersonal metafunction, counted: who is speaking, to whom, and how much room the sentence leaves for disagreement.

PersonUsesPer 10,000 words
We — the firm392.4
You — the readerdominant3792233.2
They — the client, the brand82250.5
I — one person19311.9

We per you

0

Within targettarget 2 or fewer

The site says "we" 0 times for every "you".

Above two, the copy is addressed to a mirror. The most reliable single diagnostic on this page.

How this is measured

Counts: First-person-plural pronouns divided by second-person pronouns.

Computed: A ratio of the two counts above. Null rather than infinity when the copy never addresses the reader, because "infinitely self-regarding" is a joke and not a measurement.

Limits: On a case study the client is legitimately the subject, so a high ratio is evidence to read rather than a fault to fix.

Martin & White

Boosters

3.7per 10k

Within targettarget 30 or fewer

Intensifiers and superlatives — very, iconic, world-class. Appraisal calls this graduation: turning the volume up without adding evidence.

Intensifiers assert force without adding evidence, and a reader discounts them because they are free to write. Thirty per 10,000 words is roughly one every three paragraphs.

How this is measured

Counts: Intensifiers and superlatives — very, iconic, world-class, award-winning.

Computed: A count of the booster list per 10,000 words. Appraisal calls this graduation: raising the force of a claim without adding anything a reader can check.

Limits: A fixed list, so it undercounts. It also cannot tell a quoted booster from an asserted one.

Martin & White

Hedges

24.8per 10k

Words that widen a claim so it cannot be wrong. A little reads honest, a lot reads evasive. Reported, not targeted — the line is a house decision.

How this is measured

Counts: Words that widen a claim so it cannot be wrong — arguably, tends, generally.

Computed: A count of the hedge list per 10,000 words. Reported and not targeted: a little hedging reads honest, a lot reads evasive, and where the line falls is a house decision rather than a fact.

Martin & White

Declarative

98%

175 questions and 229 imperatives in 9228 sentences. A page that never asks and never instructs is telling, not talking.

How this is measured

Counts: Statements, questions and commands.

Computed: Terminal punctuation decides questions and exclamations; a sentence opening with a bare verb from a short list counts as an imperative; everything else is declarative.

Limits: The imperative list is deliberately short and excludes verbs that are also nouns, so "Design without direction is decoration" is not read as a command. It therefore undercounts.

Halliday & Matthiessen

Modality — how much room a claim leaves for disagreement: 487 high (must, will, never), 913 median (should, can), 121 low (may, might, could), across 9228 sentences. Almost none of either is a stance too — bald assertion.

Boosters in use: really ×13, very ×10, unique ×10, leading ×6, deeply ×5, powerful ×5, completely ×4, absolutely ×3, highly ×2, extremely ×1, incredibly ×1

Register

The machinery behind "this reads corporate". Each of these is countable, which is the reason to count them: "less corporate" is unactionable, "fourteen fewer nominalizations" is not.

Nominalization

157.8per 10k

Within targettarget 250 or fewer

Verbs wearing noun costumes — creation, development, implementation. Each one loses the person who did it.

Deverbal nouns hide the actor: "the naming process was undertaken" against "we named it". Williams, Style, chapter 3.

How this is measured

Counts: Verbs turned into nouns — creation, development, implementation.

Computed: Words ending -tion, -sion, -ment, -ance, -ence or -ism, per 10,000 words, minus a named list of lexicalised exceptions. Each one loses the person who did the thing: "we named it" against "the naming was undertaken".

Limits: The exceptions list is by name, so an unlisted ordinary noun ("regiment", "torrent") would count as corporate prose. Add it to the list rather than living with the false positive.

Williams

Passive voice

10% of sentences

Within targettarget 20 or fewer

Detected by pattern, not by a tagger, so read it as an estimate. Passive is correct whenever the actor is unknown or beside the point.

A share of sentences, not a ban. Passive voice is correct whenever the actor is unknown or beside the point.

How this is measured

Counts: The share of sentences containing a passive construction.

Computed: A form of "be" or "get", optionally an adverb, then a participle — either regular (-ed, -en) or one from a list of irregulars.

Limits: A heuristic, not a parse. It misses a prefixed irregular participle ("was redrawn", because the list holds "drawn"), and counts "is interested" as passive. Read it as an estimate. It is also not a fault to minimise: the passive is correct whenever the actor is unknown or beside the point.

Williams

Relational clauses

40% of sentences

Sentences built on is / are / has — classifying rather than narrating. High density reads static: a list of what things are, with nothing happening.

How this is measured

Counts: Sentences built on is, are, has — classifying rather than narrating.

Computed: A sentence counts as relational if it contains any copular or possessive verb. High density reads static: a list of what things are, with nothing happening. It is the grammar of an "about us" page.

Limits: Detected by verb list, so a sentence with both a copula and an action verb counts as relational. The four process types overlap by construction and do not sum to the sentence count.

Halliday & Matthiessen

Sentences with a number

10%

Below targettarget 15 or more

935 of 9228. The share of the copy that can be checked rather than believed.

The share of sentences carrying a number. Set high on purpose: a case study that never counts anything is a description, not a result.

How this is measured

Counts: The share of sentences a reader could check rather than believe.

Computed: Any sentence containing a digit. Deliberately crude: the question is whether the copy counts anything at all, and a page that never does is a description rather than a result.

Limits: A year counts, and a year is not an outcome. Read the share as a floor on how much evidence is present, never as a ceiling.

House style

Also: 1956 contractions (120.3 per 10k — the informality dial), and 165 sentences opening with a conjunction (2%). The schoolroom rule againstAnd and But in first position is not an English rule; whether this site uses them is a decision, and this is the number that shows whether it made one.

Most frequent: conversation ×176, instruction ×141, notification ×125, connection ×93, permission ×85, integration ×76, isolation ×75, formation ×70, sequence ×62, decision ×60

Display copy

Headings, taglines, captions, button labels and alt text — 39,608 words across 4488 strings. More of the site by volume than its prose, and the part a reader is most likely to actually read.

Mean length

8.8words

Short by nature. The question for display copy is not rhythm but whether it repeats itself and whether it reaches for an intensifier when it has only a few words to spend.

How this is measured

Counts: How long the average heading, tagline, caption or label runs.

Computed: Words divided by strings, across every readable string in the corpus. Measured apart from prose rather than averaged into it: a caption is a different register from a paragraph, and scoring one for sentence rhythm reports a fault where there is a convention.

House style

Repeated verbatim

15%

Within targettarget 15 or fewer

The share of strings that appear more than once, identically, somewhere on the site.

A repeated caption is a caption that was not written for its image. Some repetition is honest — the same product shot in four studies — but a high share means the copy is filling a slot rather than saying something.

How this is measured

Counts: The share of strings that appear more than once, identically.

Computed: Strings are lowercased and counted; every string belonging to a group of two or more counts as repeated. A repeated caption is a caption that was not written for its image.

Limits: Exact matches only, so two captions differing by one word both read as unique. Some repetition is honest — the same product shot appearing in four studies — so read a high share as a prompt to look, not as a fault.

House style

Verbless

31%

Labels rather than statements. Reported, not targeted: a caption is allowed to be a noun phrase, and a site that captions in full sentences is making a different, equally valid choice.

How this is measured

Counts: The share of strings with no finite verb — labels rather than statements.

Computed: A string counts as verbless if it contains no form of be or have, no modal, and no word ending -ed or -s. Reported and not targeted: a caption is allowed to be a noun phrase, and a site that captions in full sentences is making a different, equally valid choice.

Limits: A regex, not a parse. A caption whose only verb is irregular ("Bottles made in Portland") reads as verbless, and a plural noun ("Bottles") reads as a verb.

House style

Boosters

3.8per 10k

Within targettarget 30 or fewer

Intensifiers in display copy, where there is least room to justify one. This is where 'iconic' and 'award-winning' usually live.

Intensifiers assert force without adding evidence, and a reader discounts them because they are free to write. Thirty per 10,000 words is roughly one every three paragraphs.

How this is measured

Counts: Intensifiers and superlatives — very, iconic, world-class, award-winning.

Computed: A count of the booster list per 10,000 words. Appraisal calls this graduation: raising the force of a claim without adding anything a reader can check.

Limits: A fixed list, so it undercounts. It also cannot tell a quoted booster from an asserted one.

Martin & White

Most repeated strings:

  • the ×18
  • may 16, 2026 ×10
  • copy ×9
  • get crystl ×9
  • crystl quest ×8
  • crystl cli ×8

Distinctive vocabulary

Not a frequency list. The top of a frequency list is the, of, and for every text ever written. This is keyness: words the copy uses far more than English does, scored by log-likelihood against a general-English reference. Brand names are dropped — a table led by the client's own name has answered its own question.

WordUsesDocsTimes commoner than English
claude11101081184×
agent1344122128×
agents898113155×
gem59464495×
quest51648170×
terminal45883138×
code63610733×
session4819756×
branch4266269×
directory29972217×
file4199246×
files3678378×
settings32567118×
project5049319×
sessions3268566×
api23864307×
each626119
model4286720×
isolated2746897×
merge21349232×
remote2754466×
context2927442×
gems20251221×
command2838035×

Read the top of this list as the site's actual subject. If a word belongs there and is missing, the copy is not about what the site thinks it is about. Words appearing in fewer than three documents are excluded, so what survives is habit rather than one page's topic.

Against the declared voice

The site declares a concrete, energetic, plain-spoken, playfully confident voice, written in the second personyou, your. The copy's dominant person is the second personyou, your. The two agree.

Not automatically a fault. A case study is about the client, so third person dominating is expected; what matters is whether the firm appears at all when it should, and whether the reader is ever addressed.

Phrases the site says it does not use

2 of 7 appear in copy that ships, counting headings, taglines and captions as well as prose. This is the list going stale in the right direction — fix the copy and the rows disappear.

PhraseUsesWhere
seamless1CLAUDE.md File: What It Is and How to Write One
delve1CLAUDE.md File: What It Is and How to Write One

The rules this sets

Measurement is only half of it. These are the targets the numbers above are judged against, stated so a writer can act on them without reading a table. They are house style — set them where this site needs them, not where a textbook does.

  1. Vary the sentence length deliberately. Keep variation between 0.4 and 0.7. The cheapest fix for flat copy is to cut one sentence in four down to under ten words.
  2. Address the reader more than the firm. No more than twowes per you. Currently 0.
  3. Earn force with evidence, not intensifiers. Under 30 boosters per 10,000 words. Delete the adjective and put a number in its place.
  4. Keep the actor in the sentence. Under 250 nominalizations per 10,000 words and under 20% passive. We named it, notthe naming was undertaken.
  5. Count something. At least 15% of sentences should carry a number. Currently 10%.
  6. Say the same thing the same way. The word choices on Aspects are settled once so they are not re-argued per page.

Method

Every number above has an entry here, and the page cannot show a number without one. A voice report is an argument about somebody's writing: an unexplained number in one is worse than no number, because it looks like a fact, cannot be checked, and leaves the writer no way to disagree except by ignoring the page.

Where a measure is a heuristic it says so, and says where it is known to be wrong. A part-of-speech tagger would do better on clause types and passives; the kit does not ship one, and an approximate number with its method stated is worth more to a writer than no number at all. The word lists live in src/lib/voice-lexicons.ts, the maths insrc/lib/voice-metrics.ts, and this catalogue insrc/lib/voice-method.ts — all three are meant to be edited.

Every number on this page, and where the method comes from
MeasureWhat it countsHowSource
Length variationHow much sentence length differs across the copy.

Standard deviation of sentence length in words, divided by the mean (the coefficient of variation). Reported instead of the mean because a mean of 18 describes both copy where every sentence is 18 words and copy that runs 4, 31, 7, 30 — and those read nothing alike.

LimitsScale-free by design, so it can be compared between sites. It says nothing about whether the long sentences are any good.

House style
AlternationWhether long and short sentences take turns.

Mean absolute difference between each sentence and the one before it. Variation says the lengths differ; this says they interleave rather than arriving in one long block and then a short one.

House style
Short and long sentencesThe share under ten words, and the share over thirty.

Sentences are split on terminal punctuation followed by a capital, re-joining known abbreviations, then counted in words.

LimitsA sentence with an unlisted abbreviation ("approx.", a middle initial) splits in two and counts as two short sentences.

House style
Lexical diversity (MTLD)How many words the copy runs before it starts repeating vocabulary.

Tokens are walked until the running type-token ratio drops to 0.72, which closes one factor; the count is tokens divided by factors, averaged forwards and backwards. Roughly: 50 is plain, 100 ordinary, 130 varied.

LimitsNot scored below 50 tokens — there is not enough text for the number to mean anything. Higher is not automatically better: a site is allowed to call the same thing the same word every time, and should.

McCarthy & Jarvis
PersonPronouns, grouped into first plural, first singular, second and third.

A direct count of each group’s pronoun list against the tokenized prose, reported per 10,000 words so documents of different lengths compare.

Limits"We" is counted wherever it appears, including inside a client quotation. A tagger would not help; only a human reading the sentence would.

Halliday & Matthiessen
We per youFirst-person-plural pronouns divided by second-person pronouns.

A ratio of the two counts above. Null rather than infinity when the copy never addresses the reader, because "infinitely self-regarding" is a joke and not a measurement.

LimitsOn a case study the client is legitimately the subject, so a high ratio is evidence to read rather than a fault to fix.

Martin & White
BoostersIntensifiers and superlatives — very, iconic, world-class, award-winning.

A count of the booster list per 10,000 words. Appraisal calls this graduation: raising the force of a claim without adding anything a reader can check.

LimitsA fixed list, so it undercounts. It also cannot tell a quoted booster from an asserted one.

Martin & White
HedgesWords that widen a claim so it cannot be wrong — arguably, tends, generally.

A count of the hedge list per 10,000 words. Reported and not targeted: a little hedging reads honest, a lot reads evasive, and where the line falls is a house decision rather than a fact.

Martin & White
ModalityHow much room a claim leaves for disagreement — must and never against may and might.

Modal verbs counted in three strengths. High closes the question, low holds it open, and copy with almost none of either is making bald assertions, which is a stance too.

Halliday & Matthiessen
MoodStatements, questions and commands.

Terminal punctuation decides questions and exclamations; a sentence opening with a bare verb from a short list counts as an imperative; everything else is declarative.

LimitsThe imperative list is deliberately short and excludes verbs that are also nouns, so "Design without direction is decoration" is not read as a command. It therefore undercounts.

Halliday & Matthiessen
NominalizationVerbs turned into nouns — creation, development, implementation.

Words ending -tion, -sion, -ment, -ance, -ence or -ism, per 10,000 words, minus a named list of lexicalised exceptions. Each one loses the person who did the thing: "we named it" against "the naming was undertaken".

LimitsThe exceptions list is by name, so an unlisted ordinary noun ("regiment", "torrent") would count as corporate prose. Add it to the list rather than living with the false positive.

Williams
Passive voiceThe share of sentences containing a passive construction.

A form of "be" or "get", optionally an adverb, then a participle — either regular (-ed, -en) or one from a list of irregulars.

LimitsA heuristic, not a parse. It misses a prefixed irregular participle ("was redrawn", because the list holds "drawn"), and counts "is interested" as passive. Read it as an estimate. It is also not a fault to minimise: the passive is correct whenever the actor is unknown or beside the point.

Williams
Relational clausesSentences built on is, are, has — classifying rather than narrating.

A sentence counts as relational if it contains any copular or possessive verb. High density reads static: a list of what things are, with nothing happening. It is the grammar of an "about us" page.

LimitsDetected by verb list, so a sentence with both a copula and an action verb counts as relational. The four process types overlap by construction and do not sum to the sentence count.

Halliday & Matthiessen
Sentences with a numberThe share of sentences a reader could check rather than believe.

Any sentence containing a digit. Deliberately crude: the question is whether the copy counts anything at all, and a page that never does is a description rather than a result.

LimitsA year counts, and a year is not an outcome. Read the share as a floor on how much evidence is present, never as a ceiling.

House style
ContractionsThe informality dial — don’t, it’s, we’ve.

Contracted verb forms per 10,000 words. Bare ’s is ambiguous, so the hosts that genuinely contract a verb are named and possessives ("Miller’s bottle") are excluded.

House style
Conjunction openersSentences beginning with And, But, So.

First token of each sentence, matched against the coordinating conjunctions. The schoolroom rule against them is not an English rule; the number shows whether the site made a decision or never noticed.

House style
KeynessWords the copy uses far more often than English does.

Log-likelihood G² = 2·O·ln(O/E), where E is the word’s general-English rate times the corpus size. Filtered to words at least four times commoner than English (log-ratio ≥ 2), appearing four times or more, in at least three documents.

LimitsWords absent from the reference list are dropped, not scored. They are nearly always brand names, and a table led by the client’s own name has answered its own question. The reference is a general-English blend, so a specialist site will look distinctive simply for being about its subject.

Dunning
The reference corpusWhat "commoner than English" is measured against.

Unigram frequencies for the 17,626 commonest English words, in occurrences per million, from the wordfreq model — subtitles, news, books, web text and Wikipedia blended.

LimitsGeneral English, not a genre-matched corpus. Comparing marketing copy against a genre-matched reference would be sharper and needs a corpus the kit does not ship.

wordfreq
Display copy lengthHow long the average heading, tagline, caption or label runs.

Words divided by strings, across every readable string in the corpus. Measured apart from prose rather than averaged into it: a caption is a different register from a paragraph, and scoring one for sentence rhythm reports a fault where there is a convention.

House style
Repeated display copyThe share of strings that appear more than once, identically.

Strings are lowercased and counted; every string belonging to a group of two or more counts as repeated. A repeated caption is a caption that was not written for its image.

LimitsExact matches only, so two captions differing by one word both read as unique. Some repetition is honest — the same product shot appearing in four studies — so read a high share as a prompt to look, not as a fault.

House style
Verbless display copyThe share of strings with no finite verb — labels rather than statements.

A string counts as verbless if it contains no form of be or have, no modal, and no word ending -ed or -s. Reported and not targeted: a caption is allowed to be a noun phrase, and a site that captions in full sentences is making a different, equally valid choice.

LimitsA regex, not a parse. A caption whose only verb is irregular ("Bottles made in Portland") reads as verbless, and a plural noun ("Bottles") reads as a verb.

House style
Distinctive AI phrasesPhrases almost nobody writes on purpose — "here’s the kicker", "unlock the power of", "in today’s fast-paced world".

Each of the catalogue’s ban-tier patterns matched case-insensitively across prose and display copy. Counted flat: one hit is a hit, and the table shows what it matched so the reader can judge it rather than take the count on trust.

LimitsA hit is not evidence of anything. People write these too, and a handful across a whole site is a handful. The examples are shown for exactly this reason.

AI-tells catalog
Overused ordinary EnglishPhrases that are normal English but 22x-182x commoner in machine-written text.

A density budget, not a ban: at most one hit per 400 words. Reported as words-per-hit against that budget. Position matters too — the catalogue counts a hit in a headline, an H1 or a CTA as over budget regardless of document length, so display-copy hits are counted separately.

LimitsChasing these to zero is the wrong outcome. Every one is a sentence a human writes sometimes, and a writer avoiding them all produces stilted prose, which is its own tell. Over budget means look, not delete.

AI-tells catalog
Sentence shapesConstructions rather than phrases: "not just X, it’s Y", rule-of-three cadence, stacked hedging, em-dash density, conjunctive-adverb openers, empty lead-ins.

Each shape matched by its own pattern over the prose, reported per 10,000 words against a budget. Shapes are measured because they survive paraphrase: a writer told to stop saying "not just X, it’s Y" writes "this isn’t merely X — it is Y", which a phrase list misses and the shape catches.

LimitsThe rule-of-three pattern is narrowed to three lowercase single words closing a sentence, because matching every "X, Y and Z" caught ordinary lists of services. It undercounts on purpose — for a number that gets read as an accusation, that is the right direction to be wrong in.

AI-tells catalog
Tells in display copyHits from either tier that landed in a heading, tagline, caption or button label rather than in a paragraph.

Every match is attributed to the field it came from as it is found, and display-copy matches are totalled across both tiers. Position is part of the measure rather than a refinement of it: the catalogue counts a hit in a headline, an H1 or a CTA as over budget regardless of how long the document is.

LimitsIt counts where a phrase sits, not how prominent that position actually is on the rendered page. A caption on the twelfth image and an H1 both count as display copy.

AI-tells catalog
Banned phrasesThe site’s own avoid list, run over the site’s own copy.

Each phrase matched case-insensitively on whole words, across prose and display copy together. A trailing YAML comment is stripped, and an entry written as a pattern ("it’s not just X, it’s Y") is skipped rather than matched literally.

LimitsThe site’s voice config is excluded from the corpus, or the avoid list would match itself once per entry. Only literal phrases are checked: a banned idea rephrased passes.

House style

References

House style

This kit. Not a finding from the literature.

A band somebody chose. Every target on the page carries the reason it sits where it does, and a site doing a different job should move it rather than fail against it.

McCarthy & Jarvis

Philip M. McCarthy and Scott Jarvis, "MTLD, vocd-D, and HD-D: A validation study of sophisticated approaches to lexical diversity assessment", Behavior Research Methods 42(2), 2010, 381–392.

Why MTLD is used here instead of type-token ratio, which falls as a text gets longer and so compares texts by their length.

Halliday & Matthiessen

M. A. K. Halliday and Christian Matthiessen, An Introduction to Functional Grammar, 4th ed., Routledge, 2014.

Systemic functional linguistics. The source of the ideational (process types) and interpersonal (person, mood, modality) metafunctions.

Martin & White

J. R. Martin and P. R. R. White, The Language of Evaluation: Appraisal in English, Palgrave Macmillan, 2005.

Appraisal theory. Graduation covers boosters and hedges; engagement covers how much room a claim leaves for disagreement.

Williams

Joseph M. Williams, Style: Lessons in Clarity and Grace, 12th ed., Pearson, 2016.

The standard treatment of nominalization and of when the passive is the right choice.

Dunning

Ted Dunning, "Accurate Methods for the Statistics of Surprise and Coincidence", Computational Linguistics 19(1), 1993, 61–74.

Log-likelihood (G²) for comparing a corpus against a reference. The standard keyness statistic in corpus linguistics.

wordfreq

Robyn Speer, wordfreq: a library for looking up the frequencies of words, v3, 2022. doi:10.5281/zenodo.7199437

The general-English reference frequencies keyness is scored against — a blend of subtitles, news, books, web text and Wikipedia. See src/data/README.md.

AI-tells catalog

The scrub-ai-tells catalog, ported to src/lib/ai-tells-catalog.ts. Its corpus-frequency tier cites a frequency study comparing AI-written and human-written corpora, in which each listed phrase is 22x-182x commoner in machine text.

A curated pattern bank, grown by hand as somebody notices a new tell. Not a trained classifier and not a detector: it cannot tell you who wrote something, and every pattern in it appears in prose written by people.