# Voiceprint · Reference

Deep material for the voiceprint skill. Read on demand; the operating steps
live in SKILL.md, the empty profile in profile-template.md, the test protocol
in evaluation.md, and the optional detector loop in humanizer-extension.md. The full explainer is the Field
Guide: https://enginsenli.com/voiceprint

## How to actually measure the numbers (step 2)

Paste the samples into one document first, strip signatures, greetings and
quoted text. Then measure. Two ways.

**By model.** Give the assistant this instruction:

> Measure the text below and return only a table of numbers, no commentary and
> no interpretation. Count: total words; total sentences; shortest, median and
> longest sentence in words; how many sentences are under 6 words; paragraphs;
> median sentences per paragraph; whether any paragraph is a single line;
> median commas per sentence; per 1000 words the count of colons, semicolons,
> parentheses pairs, dashes, question marks, exclamation marks and ellipses;
> rhetorical questions per 1000 words; occurrences of I, me, my per 1000 words;
> average word length in characters; share of words longer than 8 characters;
> share of lines that are list items; contractions used versus written out as a
> percentage; every connector that appears with its count; the first three
> words of each paragraph as a list.

**By script**, if the person can run one. Any language works; the point is that
the numbers are counted, not estimated. A model asked to "describe the style"
produces adjectives. A model asked to count produces a fingerprint.

**What the numbers are for.** Comparison, in two places only: the ship-check in
step 8 and the drift check in step 9. They are never writing targets. A draft
built to hit a comma count is a new machine tell, the exact failure this skill
exists to prevent. Say this out loud when you show the table, because the first
instinct is to treat it as a spec.

**Reading the numbers.** The spread matters more than the average. Two writers
with the same 17-word average sentence are completely different if one runs 4
to 40 and the other runs 14 to 20. Burstiness is the human signal; uniformity
is the machine one. If a person's own writing is uniform, that is their
fingerprint, do not "fix" it.

**Minimum viable measurement.** Under about 800 words the numbers are noise.
Get to 1500 words across at least 5 samples before writing any of them into the
profile. Below that, fill layers 1 to 3, the stock and layer 5, and leave layer
4 empty. An honest gap beats a confident wrong number.

## Lexical diversity: TTR, MATTR, MTLD

Three measures of how wide someone's working vocabulary is. They matter less
than anything else while writing and more than anything else while checking for
drift.

**TTR, type-token ratio.** Unique words divided by total words. Simple and
badly flawed: it falls automatically as a text gets longer, so a 200-word note
and a 2000-word essay by the same person are not comparable. Record it, but
never compare two texts of different lengths with it.

**MATTR, moving-average type-token ratio.** Slide a fixed window (use 100
words) across the text, compute TTR in each window, average them. Length-stable,
so two texts of any length can be compared. This is the practical default.

**MTLD, measure of textual lexical diversity.** Walk the text word by word,
tracking the running TTR, and every time it drops below 0.72, close the segment
and start a new one. MTLD is the average segment length. Higher means the
person sustains variety for longer before repeating. It is the most robust of
the three and the one to watch across years.

> Measure MATTR with a 100-word window and MTLD with a 0.72 threshold on the
> text below. Return both numbers and the total word count, nothing else.

**What it is good for, and what it is not.** Punctuation and sentence length
swing with topic and mood. Vocabulary range holds steadier, and it is nearly
impossible to fake in either direction, which is what you want from a baseline.
A 25% move in MTLD is worth a conversation where a 25% move in comma count
usually is not.

But do not sell it as the primary signal for drift overall, because it only
sees one kind of change. Someone who takes a new job, moves to a new audience
or starts writing on a new platform can sound like a different person while
their lexical diversity barely shifts: what moved was what they leave out, the
order they build an argument in, how blunt they let themselves be. Those live in
layers 3 and 5 and in the argument shape, not in a diversity score. So: a moving
MTLD is strong evidence that something real changed. A still MTLD is not
evidence that nothing did.

## Argument shape (step 2)

Take each sample apart into its moves and write the order down. Most people
have one or two defaults and hold them for years. Common shapes:

    claim → example → reason → consequence
    verdict → why → proof
    story → turn → point
    problem → failed attempt → what worked
    question → wrong answers → right answer
    concession → but → position
    number → what it means → what to do

This is macro-structure, not rhythm, and it is more individual than word
choice. Someone who always leads with the verdict does not suddenly open with a
story, and a draft that gets the shape wrong reads as someone else even when
every sentence is right.

Extraction prompt:

> For each text below, label every paragraph with the move it performs (claim,
> example, reason, consequence, verdict, proof, story, turn, point, problem,
> attempt, resolution, concession, position, number, meaning, action). Then
> give me the sequence of moves per text as a single line. Do not interpret,
> just label.

Then look for the repeated sequence. Two texts sharing a shape is a
coincidence; four is the profile.

## The stock: extracting a semantic fingerprint

People think with a small, stable set of images. This is the layer almost no
tool models, and it is the fastest route to "that is definitely them".

What to collect: recurring analogies, recurring examples, recurring
comparisons, recurring references (people, books, tools, prior jobs), and the
two or three anecdotes they keep retelling because they always land.

Extraction from samples:

> List every comparison, analogy, metaphor and concrete example in the texts
> below. Group anything that recurs. For each group, give me the underlying
> domain it comes from (cooking, sport, machinery, a former job, a specific
> field). Do not invent connections, only report what is actually there.

Then ask directly, because the good ones are often not in the samples: what do
you compare things to over and over, which story do you keep telling, what did
you do before this that you still explain things through.

**Rules for use.** Reach into the stock before inventing an analogy. If nothing
fits, say so and ask, rather than importing a stranger's metaphor. Do not use
the same stock item twice in one piece, and do not use the same one in
consecutive pieces; a person who reuses images across years still does not
reuse them across paragraphs. Retire an item that has not appeared in a year.

## Near misses: where the boundary actually runs

Anti-samples teach the opposite. Near misses teach the edge, and the edge is
where every draft either passes or fails.

A near miss is text that is 95% the person and 5% not: their own draft that
they rejected, an AI draft they almost accepted, something ghostwritten that
went out under their name and never quite sat right, a post they deleted an
hour later. Collect two or three with one sentence each on what is off.

> For each near miss below, name the specific thing that is wrong for this
> person. Be concrete: a word, a structural move, a stance, a rhythm. Ignore
> everything that is right. If you cannot name it in one clause, say so rather
> than guessing.

The answers are usually small and very sharp: "I would never open with a
question", "that is one adjective too many", "I do not thank people for
reading", "the conclusion says what the post already said". Each one goes
straight into the NEVER list, and near-miss findings outperform anti-sample
findings there, because a text that is obviously not you rules out things you
were never going to do anyway.

## The revision reflex: the free signal

What the person always changes when rewriting their own draft. It arrives free
every time they correct you, and after ten corrections you know more than the
samples told you.

**Seed it** from one draft pair if they have one:

> Diff these two versions. List every change as a rule of the form "always
> does X" or "always removes Y". Ignore one-off edits, only report patterns
> that could plausibly repeat. Do not explain, just list.

**Grow it** from every correction. When they edit your draft, diff it and log
what changed. Track a count per pattern. At three occurrences, promote it from
the reflex list into the core profile, because it is no longer a habit, it is a
rule.

Common reflexes worth watching for: cutting the first paragraph, deleting the
final summary line, replacing an adjective with a number, shortening the
opening sentence, removing hedges, adding one concrete name, breaking a long
paragraph in two, deleting the word "just".

## Surface and register: two axes, not one

Surface is where it was published. Register is what mode the person was in.
They are independent, and register is usually the bigger effect.

    SURFACES   linkedin · instagram · email · chat · docs · comments
    REGISTERS  serious · funny · rant · educational · storytelling ·
               technical · emotional

The same person writing a rant and a tutorial on the same platform are further
apart than the same rant on two platforms. Give each real combination a delta
only where it actually differs, and give registers the person never uses no
delta at all. Most people genuinely use three or four of the seven.

When drafting, match both axes before loading samples. A LinkedIn post in
storytelling register should load storytelling samples, even if they came from
somewhere else.

## Detector reality (short version)

Detectors rate perplexity and burstiness plus trained classifiers. They misfire
in both directions and disagree with each other: OpenAI retired its own
classifier in 2023 for low accuracy, and Stanford research showed majority
false-flag rates on real essays by non-native English speakers.

Measured 30.07.2026: raw AI text scored 100/100/55 on GPTZero/ZeroGPT/QuillBot;
the same content written through a voice profile scored 100/0/0. Against
GPTZero, 12 AI-written variants were tested one variable at a time and all 12
scored 100% AI, while the author's own 2011 German internal email scored 0%.

Conclusion: surface detectors score style and can be moved; deep classifiers
score something no prompt reached. Only changing the input changes the answer.
Never promise or chase detector scores. The optimisation loop, if someone
insists, is in `humanizer-extension.md`.

## The ban-list (starting point, person wins)

WORDS: delve/delves, dive into, crucial, pivotal, showcase, underscore,
intricate, realm, foster, boast, meticulous, seamless, robust, leverage,
elevate, empower, supercharge, game-changer, revolutionize, cutting-edge,
treasure trove, tapestry, testament to, navigating the landscape,
ever-evolving.

PHRASES: "In today's fast-paced world", "It's important to note", "Let's dive
in", "unlock your potential", "at the end of the day" (as a closer), "Great
question!", "In conclusion", negative parallelism ("It's not just X, it's Y" /
"This isn't A. It's B."), standalone "Let that sink in."

STRUCTURE: topic-announcing intro, summary of what was just said, tidy
life-lesson ending, three bullets of three (three times).

RHYTHM: uniform sentence length, uniform paragraph size, sanded transitions,
identical tone start to finish.

PUNCTUATION/TYPOGRAPHY: em-dash as default connector, flawless completeness,
zero fragments, bold-everything, emoji bullets.

STANCE/DENSITY: no position, symmetric hedging, explaining the obvious, zero
person-specific detail.

## German texture (when writing German)

Modalpartikeln carry stance: eben, halt, doch, eigentlich, mal ("Das ist eben
das Problem" vs. "Das ist problematisch"). Contractions: ich hab, gibt's,
wär's. Fragments ("Nicht ideal."), afterthoughts ("Das war zumindest mein
erster Eindruck."), self-corrections ("Oder genauer: ..."). Sparingly; overuse
is a caricature. Pick ONE variant of sodass/aufwendig/selbstständig per profile
and hold it; random switching looks broken, and variant spelling proves nothing
about humanity.

## Prompt: anti-smoothness pass (two moves, always)

Move 1: "Check this text for generic LLM patterns: interchangeable intro,
unnecessary summary, overly clean transitions, uniform sentence lengths,
symmetric lists, unearned superlatives, meaning-poor abstractions, repeated
points in new words, stock phrases, full explanations of obvious things. ONLY
mark the offending spots with one short reason each. Change nothing."

Move 2: "Rewrite ONLY the marked spots. Leave everything else untouched. Keep
all facts. Invent nothing: no examples, experiences, quotes, sources."

## The six confidence dimensions

Definitions for step 8, so two runs score the same way.

**EVIDENCE.** Is there material in here that could only have come from this
person: their example, their number, their opinion, their experience. A
competent summary of public knowledge scores low no matter how well written.

**AUTHENTICITY.** Was anything invented that should have been supplied. A
fabricated anecdote, an estimated figure presented as known, a quote nobody
said. This is the dimension where a high score means "nothing made up", so it
starts at 100 and only falls.

**STRUCTURE.** Does the piece follow the person's argument shape from their
profile, or the model's default shape. A text that opens with a story for
someone who always opens with the verdict fails here even if every sentence is
right.

**VOICE.** Rhythm inside the measured spread, no surviving ban words, analogies
taken from the stock rather than invented, at least two matching samples
loaded, the revision reflex applied.

**FACTS.** Every name, number, quote, date and link checked. Unverifiable is
not the same as verified.

**DECISIONS.** Layer 3 applied. Would this person have cut this paragraph,
hedged this claim, escalated here, refused to answer this. This is the hardest
one to score and the one that most often explains a draft that is technically
perfect and still reads as somebody else.

**Act on the lowest, never the average.** Averaging is how a Facts score of 40
disappears behind five good numbers. Report the lowest dimension by name with
the lines responsible.

## Prompt: master drafting skeleton

TASK: draft in my voice; naturalness, accuracy, visible perspective.
AUDIENCE / TEXT TYPE / SURFACE + REGISTER / STYLE PROFILE (core + both deltas)
/ ARGUMENT SHAPE / STOCK ITEMS AVAILABLE / REVISION REFLEX / LOADED SAMPLES
(ids) / FIXED FACTS / RAW MATERIAL (my notes, my take, my real examples, what
NOT to say).
RULES: build in my argument shape, not yours; start at the concrete problem, no
warm-up; take analogies from the stock or ask; apply my revision reflex to your
own draft before showing it; vary rhythm by function, not pattern; keep true
uncertainty; no invented experiences; no generic closer; no intentional errors.
OUTPUT: finished text only, then the six dimensions with the lowest named and
the lines responsible quoted.

## Privacy, what never goes in the profile

Layers 1 and 2 and the stock tempt you to record the person rather than their
writing. Keep the line: record how they argue and what they argue with, not
private facts about them. Never store health, finances, political or religious
affiliation, sexual orientation, or personal data about third parties, even
when the samples contain it. Strip names, addresses, client identifiers and
internal company detail out of stored samples before they go in the index. The
test: would the person be comfortable if a colleague read this profile.

## Never do

Intentional typos (costume, not voice). Synonym spinning (more machine, not
less). "Write like a human" without evidence. A quirk in every paragraph (a new
grid). Humanizer chains (fact drift plus re-flattening). Invisible Unicode
tricks (fragile, zero quality). Cranked temperature (errors, not personality).
Writing to hit the measured numbers (a fingerprint is not a spec). Inventing an
analogy when the stock has none that fits.

---

Voiceprint by Engin Senli. https://enginsenli.com/voiceprint
MIT licensed, see LICENSE. Free to use, change and share, including commercially.
Keep this notice. Provided as is, without warranty of any kind. Whatever the AI
writes with this stays your text and your responsibility.
