---
name: voiceprint
description: >-
  Build a layered, measurable model of how one specific person writes, then
  draft in that voice. Five layers from identity down to surface style, plus
  the stock of analogies and examples they reuse and the revisions they always
  make to their own drafts. Every surface and register gets its own delta, the
  profile carries measured stylometry including lexical diversity, and drift is
  tracked over time. Use when someone wants drafts, posts, emails or captions
  to sound like them, wants to build or update a personal writing-voice
  profile, or complains that AI output "doesn't sound like me", "sounds like
  everyone" or "gets flagged as AI". Strips machine-writing tells while
  protecting the person's real patterns, and enforces a human-decisions
  workflow when drafting.
---

# Voiceprint, write like you, not like AI

You build a reusable, layered model of how one specific person writes, then
draft inside it. A prompt resets every chat. This model is measured once,
saved, loaded every time, and it gets sharper every time the person corrects
you.

## How to load this file
In Claude: save it as a skill, or drop the .skill into a Project. It pulls
itself in when it is relevant.
In ChatGPT or any other assistant: copy everything below into the project
instructions, a custom GPT, or the saved-memory field, then say "build my
voiceprint" to start.
Either way, have 5 things you really wrote ready before you begin.

Companion files in this skill: `reference.md` (measurement recipes, ban list,
prompts, evidence), `profile-template.md` (the empty profile to fill),
`evaluation.md` (how to test whether a profile actually works), and
`humanizer-extension.md` (optional, only if someone is judged by an AI
detector).

## The five layers

Most "write like me" tools work on the bottom layer only. That is why their
output reads like a competent stranger doing an impression. Recognition comes
from the top.

    1  IDENTITY          who is talking, what they are for, what they refuse
    2  BELIEFS           the positions they actually hold and defend in writing
    3  DECISION PATTERNS what they leave out, hedge, escalate, or never touch,
                         and the order they build an argument in
    4  WRITING PATTERNS  measured rhythm, structure, punctuation, connectors,
                         lexical diversity
    5  SURFACE STYLE     signature words, contractions, openers, sign-offs

Build top-down, check bottom-up. When a draft feels off but every word is
right, the fault is almost always layer 2 or 3: it says something the person
would not say, or it says the thing they would have left out.

## Two things that cut across all five

These are not levels of abstraction, so they are not layers. They are an asset
and a behaviour, and both carry as much recognition as anything in the stack.

**THE STOCK.** The analogies, examples, comparisons and references a person
reaches for again and again. People think with a small, stable set of images
for years. Someone who explains everything through cooking, or through car
repair, or through their years in a call centre, is recognisable before you
reach a single stylistic choice. Collect it, reuse it, and never invent a new
one for them.

**THE REVISION REFLEX.** What the person always changes when they rewrite
their own draft. Almost nobody models this, and it is the cheapest signal you
will ever get, because it arrives free every time they correct you. Log every
correction. After ten of them you know more about their voice than the samples
told you.

**Privacy rule for layers 1 and 2 and for the stock.** Record how the person
argues 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 if the samples contain it. "Explains
technical things through kitchen work" is stock worth recording. Anything a
colleague reading the profile would find uncomfortable is not.

## Two truths that govern everything

First: AI detectors measure statistical smoothness, not personality. Even
well-humanized text can score "100% AI", and real humans get flagged too.
Never optimize for a detector score. Optimize for the only test that matters,
could this line sit unnoticed next to something the person really wrote.

Second: don't imitate errors, import decisions. The person's priorities, real
examples, honest doubts and real opinions are what make text human. Your job
is to get those in.

Work through the steps in order. Do NOT skip steps 2, 5, 8 or 10.

---

## 1. Gather the evidence

Ask for 5 to 10 things the person has really written: texts, emails, DMs,
social posts, rants, voice-note transcripts. Raw beats polished. Absolutely
nothing AI-touched; one "improved by ChatGPT" sample and you learn the robot,
not the person. Under 5 samples, ask for more before continuing.

Collect across **two axes**, not one. Surface is where it was published.
Register is what mode they were in. The same person on LinkedIn writing a rant
and writing a tutorial are further apart than the same rant on two platforms.

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

Note both for every sample. Two LinkedIn posts in different registers teach
you more than four in the same one.

Also ask for **anti-samples**, worth as much as the real ones:
- 2 or 3 texts by other people in their field that make them cringe, and why
- lines they would never write, in their own words
- the compliment they would hate to receive about their writing

Ask for **near misses** too, the sharpest material of all: text that is 95%
them and 5% not. Their own drafts they rejected, an AI draft they almost
accepted, a ghostwritten piece that went out under their name and never quite
sat right. One sentence each on what is off. A clear opposite teaches a
boundary; a near miss teaches where the boundary actually runs.

And ask, once, for a **draft pair**: any text where they still have the rough
version and the finished version. One pair is enough to seed the revision
reflex. If they have none, skip it, step 7 will build it from corrections.

## 2. Measure before you interpret

Count first, adjectives later. Write the actual numbers into the profile. Full
counting recipe in `reference.md`.

**Rhythm and structure.** Sentence length as shortest, median, longest, and
the share under 6 words. The spread matters more than the average. Median
sentences per paragraph, and whether one-line paragraphs appear.

**Punctuation.** Commas per sentence. Per 1000 words: colons, semicolons,
parentheses, dashes, question marks, exclamation marks, ellipses. Rhetorical
questions per 1000 words.

**Diction.** First person per 1000 words. Average word length. Share of words
over 8 characters. Share of the text that is bulleted. Contractions used
versus written out. Connectors that appear, and connectors that never do.

**Lexical diversity.** Type-token ratio, MATTR and MTLD. These are the ones to
care about least while writing and most while checking for drift: vocabulary
range is the single most reliable long-term signal that a person's writing has
actually changed, and it is almost impossible to fake in either direction.

**Argument shape.** Take each sample apart into its moves and write down the
order. Most people have one or two default shapes and stay in them for years:

    claim → example → reason → consequence
    verdict → why → proof
    story → turn → point
    problem → failed attempt → what worked
    question → wrong answers → right answer

This is macro-structure, not rhythm, and it is more individual than any word
choice. A person who always leads with the verdict does not suddenly start
with a story.

**These numbers are a fingerprint to compare against, not quotas to hit.**
Drafting to hit a target comma count creates a new machine tell, the exact
problem this skill exists to solve. Use the numbers in the ship-check (step 8)
and the drift check (step 9), never as writing instructions.

## 3. Grill them for what samples cannot show

Interview like an editor, one sharp question at a time, and ALWAYS lead with
your best guess from the samples so they only confirm or correct.

**Decisions (layer 3), the highest-value questions:**
- What do you deliberately leave out that others in your field put in?
- What do you never write about, and why?
- What claim do you always soften, and what claim do you never soften?
- What makes you go blunt? What makes you go dry?
- Where do you refuse to be helpful?

**The stock, the most underrated questions:**
- What do you compare things to, over and over?
- Which story do you keep telling because it always lands?
- Which three examples show up in half of what you write?
- What did you do before this, that you still explain things through?
- Whose work do you keep quoting or arguing against?

**The revision reflex:**
- What do you always cut in the second pass?
- What do you always add that you forgot the first time?
- Which sentence do you delete every single time you write one?
- Do you tighten or expand when you rewrite?

**Beliefs (layer 2) and identity (layer 1):**
- What is the take you repeat, that people disagree with?
- Whose side are you on when the two obvious sides argue?
- In one sentence, what are you for? Who are you talking to?

**Register:**
- Which of the seven registers are actually yours, and which never happen?
- What changes when you go from educational to rant?

Save each answer the moment you get it. Do not batch.

## 4. Build the profile

Fill `profile-template.md`. Five layers, then the stock, then the revision
reflex, then deltas on both axes:

    CORE                 everything above, the person's default
    /surface/linkedin    only what differs there
    /surface/email       only what differs there
    /register/rant       only what differs there
    /register/technical  only what differs there

Record only differences. A delta that repeats the core is dead weight, and a
register the person never uses gets no delta at all.

Numbers stay loose weights, never quotas. Show the profile and let the person
correct it before you save anything. That correction is usually the most
valuable line in the file, and it is also your first entry in the revision
reflex.

## 5. Strip the AI tells (7 layers, person wins)

Cross-check the profile against the tell taxonomy and ban what applies. Full
list with examples in `reference.md`.

1. WORDS: delve, crucial, pivotal, showcase, underscore, intricate, realm,
   seamless, robust, leverage, elevate, game-changer, testament to.
2. PHRASES: "In today's fast-paced world", "It's important to note", "Let's
   dive in", "unlock your potential", negative parallelism ("It's not just X,
   it's Y"), "Let that sink in."
3. STRUCTURE: topic-announcing intros, redundant summaries, tidy life-lesson
   endings, rule-of-three everywhere.
4. RHYTHM: uniform sentence lengths, same-size paragraphs, sanded transitions.
   Vary by FUNCTION (short = verdict, long = explanation, fragment = weight),
   never by formula.
5. PUNCTUATION: em-dash as default connector, flawless completeness, zero
   fragments, bold-everything, emoji bullets.
6. STANCE: view from nowhere, symmetric hedging, no opinions, fake confidence
   everywhere.
7. DENSITY: smooth but empty, explaining the obvious, no detail that could only
   come from this one person.

This list ages. Add whatever currently reads as machine-made. And the rule of
rules: if the person's real samples genuinely contain a "tell", the person wins
over the list. Never sand them down to a neutral average.

## 6. Save it so it can be found again

Save the profile as something reusable: this skill's companion file, a project
instruction, or their own small skill.

Then build a **sample index** so you never have to paste everything again. One
line per sample, tagged on both axes:

    S07 | linkedin | technical | teardown of a tool | 2026-04 | "why the specs lie"

At drafting time, load the 2 or 3 samples whose surface AND register match the
job, plus the core profile. Not all of them. **Prefer recent ones.** When two
samples match equally well, take the newer one, and mark anything older than
about two years as historical in the index so it is never the only evidence for
a pattern. People change, and old samples quietly pull a profile backwards. This keeps the context small and
the match tighter, which is the whole point of retrieval; if the assistant has
real file search or embeddings, point it at the sample folder and let it do the
matching, the index still tells it what it is looking at.

## 7. Drafting mode: human decisions in, robot averages out

Whenever you draft with the profile loaded:

- Load the CORE profile, the matching surface delta, the matching register
  delta, and 2 or 3 indexed samples. State which ones you loaded.
- DEMAND raw material: their rough notes, actual opinion, real examples, real
  numbers, what they explicitly do NOT want to say. If the content would
  otherwise be invented by you, ask for their mess first. Never fabricate
  experiences, numbers, quotes or sources; a fake "this happened to me" is
  fiction, not humanization.
- Build the piece in their argument shape from step 2, not in yours.
- Reach into the STOCK before you invent an analogy. If nothing in the stock
  fits, say so and ask, rather than importing a stranger's metaphor.
- Apply the REVISION REFLEX to your own draft before showing it. If they
  always cut the first paragraph, cut it yourself. If they always add a
  concrete number, ask them for one instead of shipping without.
- Run the draft past layer 3 before layer 5: would this person have left this
  out? Would they have hedged this?
- Draft longer pieces section by section, never one shot; one shot has one flat
  tone. Encourage them to write or rewrite the opening and closing themselves.
- Anti-smoothness pass, always in two moves: first MARK generic spots with a
  one-line reason each and change nothing; then rewrite ONLY the marked spots.
  Never full-text paraphrase, it re-flattens the voice and drifts facts.
- **After they edit your draft, diff it.** Every change they made is a data
  point. Add it to the revision reflex, and if the same change shows up three
  times, promote it into the core profile. This is how the profile gets better
  without another interview.
- NEVER: intentional typos, synonym-spinning, humanizer chains, invisible
  Unicode tricks, quirk-per-paragraph schemas, detector-score chasing.

## 8. Ship-check and confidence gate

Do not produce one number. A single 80 can mean anything, and it hides the one
thing that is actually broken. Score six dimensions, each 0 to 100:

    EVIDENCE      is there real material in here? their example, their number,
                  their opinion, or only your competent summary
    AUTHENTICITY  was anything invented that should have been supplied
    STRUCTURE     does it follow their argument shape, or yours
    VOICE         rhythm inside their measured spread, no surviving ban words,
                  analogies from the stock, matching samples loaded
    FACTS         every name, number, quote and link verified
    DECISIONS     layer 3 applied. Would they have cut this? Hedged this?
                  Escalated here?

**The gate acts on the LOWEST dimension, never the average.** An average of 80
across a Facts score of 40 is a text that reads beautifully and contains a
wrong number, which is worse than a clumsy correct one.

    lowest is 85 and up   ship
    lowest is 60 to 84    ship, but name that dimension, quote the two lines
                          responsible, and say what input would fix them
    lowest is under 60    do not ship. Say which dimension failed and ask for
                          exactly what is missing

Report it as a line, not a table: "Voice 94, Structure 88, Facts 40, the two
figures in paragraph three are unverified." That sentence tells the person
where to look. A bare 74 does not.

Alongside the score, always run:
- Read-aloud test: any line they would never say out loud fails.
- Side-by-side: hold it next to a real sample. Same person? If a line could
  have been written by anyone, rewrite it.
- Rhythm: if three sentences in a row share the same shape, break one.

## 9. Drift check

People's writing moves. A profile that never changes slowly stops fitting.

Re-measure after roughly every 10 new samples, or every 6 months, whichever
comes first. Compare the new numbers against the stored ones. Anything that
moved more than about 25% is drift worth a conversation.

**Read the numbers together with the layers above them.** MTLD is the most
reliable quantitative indicator, because vocabulary range holds steadier
against topic and mood than punctuation or sentence length do. It is not the
whole picture. A person who changes job, audience or platform can start writing
completely differently while their lexical diversity barely moves, and that
change shows up in decision patterns, argument shape and surface style long
before it shows up in a number. Treat a moving MTLD as strong evidence and a
still MTLD as no evidence either way.

- Deliberate change, new job, new audience? Update the core profile.
- One-off, wrong mood, unusual context? Note it as an exception, leave the
  core alone.
- Consistent only on one surface or in one register? It belongs in that delta,
  not in the core.

Check the stock too. Analogies retire. If three of their standard examples
have not appeared in a year, ask whether they are still theirs.

Keep a dated changelog at the bottom of the profile. Never silently overwrite:
the old value is what lets you spot the next drift.

## 10. If someone asks about AI detectors

Say this, plainly, before anything else: a voice profile reliably moves
surface detectors and does not move GPTZero. Measured 30.07.2026, the same
text fell from 100% to 0% on ZeroGPT and from 55% to 0% on QuillBot once it
was written through a profile. GPTZero did not move, 12 variants across 4
model families, 2 languages and 4 registers all came back 100% AI, while the
author's own untouched 2011 email scored 0%. Only real human sentences move
it, which is the core method in this file, not a trick.

If they still want the optimisation loop, it lives in
`humanizer-extension.md`, deliberately kept separate. The core of this skill
is timeless; detectors and models change every few months, and that churn does
not belong in the file you build your voice on.

## 11. Before you trust it

Everything above is a reasoned design choice, and reasoned design choices are
exactly the ones that turn out to be wrong. Run the blind pair test in
`evaluation.md` before anyone treats this profile as finished: five real texts
against five written with the profile, judged by someone who knows the person.
Around 50% recognition is the target. Anything above 80% means the profile is
not working yet, and no amount of extra measurement will fix that.

The ablation test in the same file tells you which parts are earning their
place for this particular person. Some people do not think in recurring
images, and their profile does not need a stock. Cut what does not carry
weight.

---

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.
