The hardest part of NicAI is the writing. A draft that is correct but doesn't sound like me still gets rewritten before it goes out.
The voice stack is everything NicAI loads before it writes in my name: general writing rules, a list of AI tells to avoid, a persona spec built from what I actually sent, and style data underneath.
| What | 5 layers of rules and data that shape every draft NicAI writes for me |
| Core file | SOUL.md, a persona spec of about 15,000 words, now in its 4th version |
| Evidence | My own sent emails, LinkedIn messages, comments, posts and work chat messages |
| State | Drafts follow the rules. They don't yet pass as me without an edit |
The 5 layers
| Layer | What it holds | Applies to |
|---|---|---|
| Principles | Zinsser's 4 principles and Orwell's 6 rules | Everything |
| Mechanics | Numerals, no em-dashes, line breaks, European dates, British spelling | Everything |
| AI tells | A 4,900-word guide to the patterns that give AI text away | Everything |
| Register | Simplified Technical English and Google's style guide | Chat and technical docs only |
| Persona | SOUL.md, plus a German spec, plus verbatim examples |
Anything sent in my name |
Principles
Zinsser sets the goal: simplicity, brevity, clarity, humanity. When they collide, clarity wins. Orwell's 6 rules test each sentence: no stale figures of speech, short words, cut what can go, active voice, no needless jargon, and break any rule before writing something barbarous.
Mechanics
Small rules, applied to everything:
- Numerals, not words: "3 skills", "2 weeks".
- No em-dashes, anywhere.
- Break lines where the thought changes, instead of building long paragraphs. But not on a fixed rhythm: 15 one-line sentences in a row is its own tell.
- European dates in prose, British spelling.
- The double-read bracket, a device of mine: letters in brackets so a word reads 2 ways, both meant, as in "(y)our project". The spec limits it to one per message, warm threads only, and both readings must be real words.
AI tells
anti-ai-writing-guidelines.md started from Wikipedia's field guide to AI writing and grew with my own bans. It covers the words models overuse, inflated significance, the rule of three, "it's not X, it's Y", false ranges, compulsive summaries, sycophancy, and the narrated opener. A related list of tells is in The New Em-Dash: 9 Tells of AI Writing.
Register: chat is not a deliverable
When NicAI talks to me, it writes in ASD-STE100 Simplified Technical English, refined by an extract of Google's developer documentation style: short sentences, one word for one meaning, commands for instructions. Status updates become fast to scan.
This register never touches deliverables. An email, a post or a proposal in my name follows the persona spec instead. STE is clear, but nobody should write to a client like a maintenance manual.
SOUL.md: the persona spec
SOUL.md is a model-facing spec that tells an agent how I write and decide. It opens with one instruction: draft so that the result needs no edit before I send it.
What it's built from
Only text I wrote myself:
- About 1,500 sent emails, in English, French and German.
- About 7,300 LinkedIn messages, plus connection invitations and about 1,200 comments.
- My work chat messages. None of these were AI-drafted, so they are the cleanest evidence.
- 169 draft-vs-sent pairs: a NicAI draft next to the version I actually sent.
The pairs matter most. They show what I change, not what I say I want.
What's in it
15 sections, including a short "write from this" checklist, a card per channel (email, LinkedIn message, invitation, comment, internal chat), French and German rules, length bands per situation, a pre-send check, dead phrases, and verbatim examples.
The edit ledger is the core. Across the edited pairs, I delete the same things again and again:
- The opener that explains why I'm writing.
- The clause after a statement that explains why it matters.
- The closing offer of help, and promises to send more later.
- Compliments, and meeting-length minimisers.
- Any specific the model invented to add colour.
And I add facts: a detail in brackets, concrete slots, a question. My sent version was shorter in 68 pairs and longer in 38. The pattern is a swap of rhetoric for information, not a cut. The spec's own summary: "the draft argues, Nic states".
How it was built
The first version came out of The Council in June 2026. The panel had 5 facet experts (style, values, judgement, grounding, prompt engineering) and one fidelity judge with the highest weight. Each round, an impersonator agent answered test prompts from SOUL.md alone, and the judge compared its answers with real messages no other agent could see. The run converged after 4 rounds.
Versions 2, 3 and 4 followed in July and September, each after new evidence: a larger email corpus, the draft-vs-sent pairs, then the internal chat corpus. Version 4 added a separate card for internal chat, because that register is shorter and barer than email.
The blind test
The held-out set has 16 briefs, each with a real message I sent. The clone writes its own version from the brief. A judge sees both, unlabelled, and picks the real one.
The early council test used 5 probes and got close to a coin flip. The larger test in September was harder: in 3 recorded rounds, against versions 2, 3 and a revised 3, the judge picked my real message 16 times out of 16. The judge's notes say why: the clone restates the brief in order, stacks my tics in short lines, and never makes a slip. Real messages are messier.
Version 4 hasn't been through the blind test yet.
Style data underneath
- Older style files from February 2026: JSON dumps of about 1,100 sent emails, 6,800 LinkedIn messages and 1,000 comments. The corpus behind
SOUL.mdis larger and analysed. - My own LinkedIn posts, 979 of them back to 2010, one Markdown file each.
- Gold files: hand-picked verbatim messages per situation, for the model to copy moves from.
Disclosure
Anything NicAI helped write in public says so. A LinkedIn post that NicAI edited ends with a line saying so; the post skill's default is "(Written by Nic, edited with NicAI.)". Notes on this site that NicAI wrote end with a signature block, like this one.
What works, what doesn't
Works:
- The mechanics. Em-dashes, banned words and spelled-out numbers are easy to check with a plain text search, so they rarely survive.
- Structure and length. The per-channel cards stop a LinkedIn message from reading like an email.
- The edit ledger. The model gets the exact list of what I delete and add, from real pairs, instead of adjectives like "concise" or "warm".
Doesn't, yet:
- Sounding like me. Every draft still needs my edit. The blind test says a careful reader can tell.
- Cost of context. The spec alone is about 15,000 words, read by 11 writing skills, and long sessions drift from it.
- Over-correction. Tell a model to add my habits and it adds all of them at once. The spec now sets a ceiling as well as a floor.
What's next
The plan is a small local model fine-tuned on my own writing, with Claude doing the thinking and the small model doing the wording. It's written up as a plan, nothing trained yet. It only goes live if it beats Claude plus SOUL.md on the same blind test. Details in Fine-tuning your own model.