Draft messages, replies, PR/issue/commit text, or longer prose in the user's own writing voice, learned from their Claude Code transcripts. Invoke when the user asks for a draft "in my voice", "as me", or asks for a message or reply they will send under their own name.
Scanned 8/30/2026
Install to Claude Code
npx -y skills add hex/claude-sessions --skill write-as-me --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Write As Me?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hex-write-as-me)More formats (shields.io, HTML) on the badges page.
---
name: write-as-me
description: Draft messages, replies, PR/issue/commit text, or longer prose in the user's own writing voice, learned from their Claude Code transcripts. Invoke when the user asks for a draft "in my voice", "as me", or asks for a message or reply they will send under their own name.
---
Write AS the user, not as an assistant writing about them. The voice comes
from a distilled profile document, never from improvisation.
## Files
- Profile: `${CS_SESSIONS_ROOT:-$HOME/.claude-sessions}/.voice/profile.md`
- Corpus: `${CS_SESSIONS_ROOT:-$HOME/.claude-sessions}/.voice/corpus.md`
- Builder: `~/.claude/skills/write-as-me/scripts/build-corpus.sh`
## Flow
1. Read the profile. If it exists, go to step 4.
2. No profile: run the builder script. If it exits with
"nothing to learn from", tell the user exactly that — there are no
transcripts to distill on this machine — and stop.
3. Distill the corpus into a profile (next section), then continue.
4. Infer the register from the request: Chat & comms (Slack, email, DM),
Dev artifacts (PR description, review comment, issue reply, commit
message), or Long-form (README, announcement, post). If genuinely
ambiguous, ask one question.
5. Load the profile, draft in the user's voice, deliver the draft for the
user to edit and ship. Iterate on feedback. You never send anything —
no Slack, no email, no gh commands; the draft is text in the
conversation.
6. If the profile's Provenance date is older than 30 days, offer a rebuild
(re-run the builder, re-distill) AFTER delivering the draft — staleness
never blocks a draft.
## Distilling the profile
Read the corpus (with offset/limit chunks when it exceeds ~200 KB) and
write the profile with exactly these sections:
- `# Voice profile`
- `## Fingerprint` — portable traits that survive any register: directness,
sentence rhythm and length, vocabulary, how disagreement is voiced, how
questions are asked, greeting/sign-off habits (or their absence).
- `## Registers` — three subsections: `### Chat & comms`, `### Dev
artifacts`, `### Long-form`. Each records a casualness dial (lowercase
starts, punctuation weight, contraction use) and typical length. The
corpus is coding-chat; extrapolate registers from the fingerprint plus
the corpus evidence, and say in the profile which registers are
corpus-backed and which are extrapolated.
- `## Phrase bank` — verbatim phrases the user actually types (draw from
the corpus body and the short-ack frequency appendix).
- `## Languages` — languages observed and where they are used.
- `## Anti-patterns` — what the user never writes (e.g. corporate
pleasantries, exclamation-heavy enthusiasm) — derived from the corpus,
not invented.
- `## Provenance` — Built date, messages used, files scanned (copy from
the corpus stats header).
The profile is a document the user can open and correct by hand; their
edits are authoritative on the next draft.
## Rules
- The profile is the single source of style truth. Do not apply traits the
profile does not record.
- Never fabricate quotes, facts, decisions, or commitments on the user's
behalf. A draft may carry placeholders like [date] for facts you lack.
- Typos in the corpus are a described trait; drafts are spelled correctly.
- Never reproduce `[redacted line]` markers or anything credential-shaped
from the corpus into the profile or a draft. The corpus redactor is a
deny-list and cannot catch every shape, so a token that reaches the corpus
must stop at you: the profile persists and is reloaded on every draft.
- Every draft gets an anti-slop pass before delivery: no em dashes, no
throat-clearing openers, no "not X, it's Y" contrasts, no quotable
closers that restate the message, no filler adverbs, no three same-length
sentences in a row. The profile's Anti-patterns section carries what this
user specifically rejects; apply both layers.
- Deliver drafts for the user to edit and send; never send or post
anything yourself.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!