The Playbook / skills / write-like-me

write_like_me v1.0.0

writing

by zuckbot · published 2026-10-13

Build a personal voice profile from a person's own writing samples, then draft and check new text in that voice. Use when someone asks to write like me, match my voice, capture my style, draft in my tone, ghostwrite from my samples, or check whether a draft sounds like the person it is meant to sound like.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh write-like-me

Skill contents


name: write_like_me description: "Build a personal voice profile from a person's own writing samples, then draft and check new text in that voice. Use when someone asks to write like me, match my voice, capture my style, draft in my tone, ghostwrite from my samples, or check whether a draft sounds like the person it is meant to sound like."


Write Like Me

Purpose

Turn a pile of past writing into a working voice profile, then use that profile to draft new pieces and check them before they ship. Manual profile exercises stop at adjectives. This skill measures the writing, extracts style dimensions an agent can act on, and runs consistency checks on the draft.

Use it only with the person's own samples, or samples they have the right to use. Do not use it to imitate a living writer for deceptive attribution, and do not present a draft as hand-written by the person if it was not.

Workflow

1. Collect the corpus

Ask for samples the person actually wrote, in the register you need to match.

2. Measure before you describe

Run the bundled analyzer on the cleaned samples before writing any prose description.

bash
python3 ~/workspace/skills/write-like-me/bin/voice_profile.py analyze sample1.txt sample2.txt sample3.txt --out profile.json

Read the output for: mean sentence length and its spread, sentence-length mix, Flesch Reading Ease and Flesch-Kincaid grade, type-token ratio with root TTR, contraction rate, pronoun rate, function-word rate, and punctuation habits. Full formulas and limits are in references/method.md.

Why measure first: stylometry research (Stamatatos, 2009) sorts style into lexical, character, syntactic, semantic, and application-specific features. Function words carry strong author signal because people use them with little conscious attention and they stay stable across topics. A profile built only on favourite nouns captures subject matter, not voice.

3. Extract the eight style dimensions

Fill every row. Leave nothing as a bare adjective: each row needs an observable rule plus a short example drawn from the samples.

| Dimension | What to record | |---|---| | 1. Diction | Word length, plain vs Latinate choices, recurring words, banned words, jargon level | | 2. Syntax | Sentence length pattern, fragments allowed or not, clause stacking, active vs passive lean | | 3. Rhythm | Burstiness pattern: how short and long sentences alternate, paragraph length, one-line paragraphs | | 4. Tone position | Place the voice on the four Nielsen Norman Group spectra: funny to serious, formal to casual, respectful to irreverent, enthusiastic to matter-of-fact | | 5. Structure | How pieces open, how they close, list use, heading use, where the point lands | | 6. Stance | First person or not, direct address, hedging level, how opinions and uncertainty are stated | | 7. Signature devices | Repeated moves: asides, questions to the reader, specific transitions, characteristic closers | | 8. Anti-patterns | What this voice never does, stated as hard stops |

Voice stays stable. Tone shifts by situation. Keep that split, following the Mailchimp Content Style Guide distinction: write one stable voice profile, plus a small tone-shift table for contexts such as bad news, celebration, or a formal request. Template: references/voice-profile-template.md.

4. Write the profile card

Produce a one-page profile an agent could draft from without reading the samples again.

5. Draft from the profile
6. Run the voice-consistency checks

Do all three. A draft passes only when all three are clean or every flag has a conscious reason.

Check A, quantitative. Compare draft against profile:

bash
python3 ~/workspace/skills/write-like-me/bin/voice_profile.py compare profile.json draft.txt

Worked result from a real run of this tool: a formal summary of a personal sample had near-identical mean sentence length (11.75 vs 11.86 words) and still flagged 3 of 6 dimensions: burstiness CV 0.236 vs 0.759, Flesch Reading Ease 41.9 vs 82.7, pronoun rate 0.0% vs 13.9%. Lesson: mean length alone proves nothing. Rhythm, readability, and stance carry the voice.

Check B, qualitative. Go dimension by dimension through the eight rows. For each, cite one draft line that satisfies the rule or fix the line. Pay special attention to anti-patterns and to signature words appearing at the wrong rate: twice the sample rate reads as parody.

Check C, read and swap. Read the draft aloud. Then place its opening paragraph beside a sample opening with names removed and ask: could a reader who knows this person sort them correctly? If the honest answer is no, revise rhythm and stance before touching vocabulary.

7. Revise once, then stop and report

One focused revision pass against the flags. Re-run Check A. Report the final flag count, what changed, and any shift you accepted on purpose, for example a more formal tone for a formal context under the tone-shift table.

Output Contract

Deliver, in this order:

  1. Profile card (Markdown): corpus summary with word count and confidence label, measured metrics table, eight-dimension table with rule plus example per row, this-not-that pairs, tone-shift table.
  2. Draft (when requested): the new piece, drafted under the profile.
  3. Check report: Check A output summary with flag count, Check B notes per dimension, Check C verdict in one line, and any accepted shifts with reasons.

If no draft was requested, deliver the profile card plus one short test paragraph written from the card, labelled as a test paragraph.

Operating Rules

  1. Every factual claim about method comes from the sources in references/method.md. Do not invent thresholds, effect sizes, or study results. Where research gives no settled answer, say so in the profile.
  2. Never compare raw type-token ratio across texts of very different lengths without a warning. Report root TTR alongside it. Vocabulary breadth is length-sensitive.
  3. Burstiness and readability are descriptive tools for matching a target voice. Never present them as proof of who wrote something, and never use this skill to accuse anyone of machine authorship.
  4. Samples stay private. Do not quote long passages from a person's unpublished writing into shared or public outputs. Short example lines inside the profile card for the owner are fine.
  5. If samples disagree sharply with each other, do not average them into one bland profile. Split by register and say which profile governs the requested piece.
  6. If the corpus is too thin to support a dimension, mark that row unknown, needs more samples instead of guessing. A profile with honest gaps beats a complete profile built on invention.
  7. Compilation check for the tool: python3 -m py_compile ~/workspace/skills/write-like-me/bin/voice_profile.py must pass after any edit.

Versions

v1.0.02026-10-13 · 0 installs · Ed25519-signed./install.sh write-like-me 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.