agentleFS
unfoldingdimensionsunfoldingdimensions/humanised-ai-voice/SKILL.md

writing-voice

Skill0 starsChanged 3 months agoMITView on GitHub

Write user-facing prose in the user's personal voice.

10 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 7 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 10 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read references/voice-fingerprint.md (unless already in context).

    line 46
  2. Distinctive:

    Write, mimicking the fingerprint's rhythm, punctuation habits, pet words, and structure.

    line 48
  3. Distinctive:

    If the text is UI copy or design copy, run the antislop-design copy rules / smell pass on top (see Required toolchain).

    line 51
  4. Distinctive:

    If a rewrite hinges on external knowledge ("is this phrase actually a tell?"), use /research before guessing.

    line 52
  5. Very specific:

    Run a sequential thinking chain first (mcp__thinking__sequentialthinking): enumerate the layers, weigh conflicting evidence, and decide …

    line 66
  6. Distinctive:

    Write the fingerprint; every rule needs at least one verbatim example from real samples.

    line 69
  7. Distinctive:

    Do not overfit chat-speed typos as voice — they are typing artifacts.

    line 81
  8. Distinctive:

    Do not leak the chat voice into code, technical docs, or third-party communications without say-so.

    line 83
  9. Distinctive:

    No evidence for a register or situation → ask for a sample.

    line 84

“Common” is measured: kept by at least 6 in 10 of the 10 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Writing Voice — a personal writing fingerprint

A portable agent skill that captures a person's writing voice as a concrete fingerprint and makes agents write in that voice instead of generic AI English. The fingerprint lives in references/voice-fingerprint.md and outranks generic style advice when the two conflict.

This is a template: run the Voice capture procedure to replace the placeholder fingerprint with your own writing patterns. The skill is OSS — bring your own voice.

When to use (always)

  • Default — voice applied: summaries and replies. Chat answers, recap summaries, reply drafts, short updates.
  • On request only — no default voice: docs. READMEs, technical documentation, project docs, client-facing documents stay professional/neutral unless explicitly asked for the voice (configurable in the fingerprint's Scope section).
  • Humanizing / de-AI-ing text.
  • Being corrected on how something should sound (that is a learning event — see Learn loop).

Required toolchain (verify on first run)

Three supporting capabilities are recommended for full operation. Check each when the skill is installed and install what's missing:

  1. /research (the research skill) — used whenever voice work needs external knowledge: whether a phrase is a genuine tell or normal human usage, register conventions, background for capture analysis. Invoked as a /research pattern: load the research skill and delegate the question to a background agent (primary sources only; findings saved as a Markdown file).
    • Hermes check: hermes skills list | grep research — install: hermes skills install research --category research (skills.sh community).
    • Other harnesses: install the equivalent research skill, or skip — the skill still works; research just strengthens it.
  2. Sequential thinking (the thinking MCP server) — recommended before any multi-layer fingerprint analysis: voice capture, periodic re-extraction, conflicting corrections, register decisions. Run a chain with mcp__thinking__sequentialthinking before editing the fingerprint.
    • Hermes check: hermes mcp list shows thinking enabled — install: hermes mcp add thinking --command npx --args -y @modelcontextprotocol/server-sequential-thinking, then restart Hermes (MCP servers load at startup).
    • Other harnesses: any reasoning mode (e.g. Claude Code extended thinking) can substitute.
  3. /antislop-design (the antislop-design skill) — recommended when voice work touches UI: landing copy, buttons, empty states, or any design surface. Run its audit (smell, checkup) and copy rules (one verb per button, sentence case, no exclamation points) on top of the voice pass. Its core principle transfers to text: a cluster of tells is a confession, a single quirk is not.
    • Hermes: copy the skill folder into the harness skills dir, or hermes skills install <url-to-SKILL.md> --name antislop-design --category creative.
    • Other harnesses: install the equivalent design-critique skill, or skip.

Apply

  1. Read references/voice-fingerprint.md (unless already in context).
  2. Pick the register: chat (evidenced) or formal (dials in the fingerprint). Text a third party will read defaults to formal; when unsure, ask.
  3. Write, mimicking the fingerprint's rhythm, punctuation habits, pet words, and structure.
  4. Self-audit: "would the profile owner write it this way?" Fix anything that isn't them.
  5. Learn loop: whenever the user edits a rewrite or says "that's me / not me", update the fingerprint with the correction as an example plus an Update Log entry. This is how the skill gets better.
  6. If the text is UI copy or design copy, run the antislop-design copy rules / smell pass on top (see Required toolchain).
  7. If a rewrite hinges on external knowledge ("is this phrase actually a tell?"), use /research before guessing.

Fingerprint rules outrank generic style advice

Generic humanizer skills strip AI tells and land on neutral standard English. This skill replaces them with the person's actual patterns. Whatever the fingerprint file says (punctuation habits, capitalization, contraction style, sentence rhythm, pet words) outranks generic style rules when the two conflict — including a generic humanizer's preferences. A user-provided sample beats scrubbing the tell.

First-run setup (Hermes Agent)

After installation in Hermes, verify the Required toolchain and install anything missing, then offer a periodic fingerprint refresh: cronjob(action='create', schedule='0 9 1 * *', name='voice-fingerprint-refresh', skills=['writing-voice'], workdir=this skill directory). The job re-runs the Voice capture procedure over the last month of sessions and updates references/voice-fingerprint.md, keeping the profile current as the person's writing evolves.

For other harnesses, references/harness-session-access.md has the recipes: Claude Code (/.claude/projects/*.jsonl) and Codex (/.codex/sessions/*.jsonl) both keep full local transcripts with user-message markers, so the same refresh can be scripted there. If a harness keeps no accessible transcripts, refresh manually whenever the user says "learn my voice".

Voice capture (when the user says "learn my voice")

  1. Run a sequential thinking chain first (mcp__thinking__sequentialthinking): enumerate the layers, weigh conflicting evidence, and decide what to change before touching the file — don't rush.
  2. Gather the person's own writing: session history (Hermes: session_search role_filter=user; Claude Code: ~/.claude/projects/*.jsonl; Codex: ~/.codex/sessions/*.jsonl — see references/harness-session-access.md) plus any files they point at (emails, docs, notes).
  3. Analyze on the layers in the fingerprint template: rhythm, punctuation, grammar quirks, lexicon, discourse structure, register. Use /research for external-knowledge questions (e.g. whether a construction is a real tell or normal usage).
  4. Write the fingerprint; every rule needs at least one verbatim example from real samples.
  5. Confirm register dials with the person.

Portability (any agent)

Plain Markdown — copy the folder into any agent's skills dir (Hermes ~/AppData/Local/hermes/skills/, Claude Code ~/.claude/skills/, Codex ~/.codex/skills/, or npx skills add <path> --global). The fingerprint file travels with it. For AGENTS.md-based agents, add:

Always write user-facing prose in the profile owner's voice. Read writing-voice/references/voice-fingerprint.md first. Never default to neutral AI English.

Pitfalls

  • Chat register ≠ formal register. Fix typos and apostrophes in anything published (per the fingerprint's dials).
  • Do not overfit chat-speed typos as voice — they are typing artifacts.
  • The file only learns when the agent updates it — run the learn loop on every correction.
  • Do not leak the chat voice into code, technical docs, or third-party communications without say-so.
  • No evidence for a register or situation → ask for a sample; never invent how the person would write.
  • The shipped fingerprint file is a template. Sharing the skill shares only the template — run capture to make it personal.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.