clone-voice
A meta-skill: it reads a corpus of one person's messages, analyzes their writing
style against a fixed rubric, presents the findings as an inspectable voice profile,
then generates a second skill, write-as-<name>, that rewrites text in that voice.
Invoked as /clone-voice <name?> <texts-file?>. Both arguments are optional; resolve
them in the workflow below.
"Voice" here means writing/messaging style only - never audio or speech synthesis.
Step 0 - Show the ethics banner first
Before requesting input, analyzing, or generating anything, output the ethics banner
verbatim from reference/refusal-rules.md. This always comes first, on every invocation,
regardless of the arguments passed.
Workflow
- Banner - show the ethics banner (Step 0) before anything else.
- Resolve the name - use the name from the invocation if present. If absent, ask
the user for the target name before proceeding.
- Resolve the corpus - use the supplied file path if present and readable. If no
corpus is given, ask the user for either a file path or to paste texts directly,
and wait for it before analyzing. Never invent, infer, or pad corpus content that
was not supplied.
- Analyze - read
reference/style-rubric.md and evaluate the corpus against every
dimension. Record concrete observations with real examples quoted from the corpus.
Capture habitual typos and grammar quirks as reproducible traits. If the corpus is
thin, follow the rubric's confidence guidance and state low confidence rather than
overclaiming.
- Present the profile - read
reference/profile-template.md and present the filled-in
voice profile to the user before generating anything, so they can review and
correct the reasoning. Invite corrections.
- Generate the skill - produce
skills/write-as-<name>/SKILL.md (see Generation).
Generation
Read reference/generated-skill-template.md and write the generated skill to
skills/write-as-<name>/SKILL.md, where <name> is the target name kebab-cased.
- Embed the profile inline - paste the full voice profile into the generated skill.
- Inline the refusal rules - copy the ethics banner and the refusal cases verbatim
from
reference/refusal-rules.md into the generated skill. This is the single source of
truth; the generated skill must not reference back to clone-voice at runtime.
- Record provenance frontmatter - target name, generation date (read from the system
clock, e.g.
date +%Y-%m-%d), and that it was produced from a supplied corpus.
- Ask before overwriting - if
skills/write-as-<name>/SKILL.md already exists, ask the
user before replacing it.
After writing, tell the user the path and that they can invoke /write-as-<name> <text>.
Guardrails
- Banner first, always. No analysis or generation before the ethics banner.
- Refusal rules embedded in both skills. This skill and every generated
write-as-*
skill carry the same refusal rules inline. Before rewriting, a generated skill must
evaluate the request against the refusal cases and decline when it matches.
- Single source of truth. The refusal rules live only in
reference/refusal-rules.md and are copied into each generated skill. When that policy
changes, existing write-as-* skills must be regenerated to pick up the new text;
the provenance date shows how current each one is.
- Self-contained output. A generated skill depends only on its own embedded profile
and rules, never on
clone-voice files at runtime.
- Reproduce quirks, don't clean them. Fidelity beats cleanliness: habitual typos and
grammar slips are captured and reproduced as traits. The embedded refusal rules are the
safety counterweight.
- Don't invent data. Analyze only what the corpus contains; mark sparse dimensions as
tentative rather than guessing.
- Writing style only. No audio, no speech synthesis.
- Never commit. Leave all new files uncommitted for the user to review.
1---2name: clone-voice3description: Analyze a person's message corpus and generate a reusable write-as-<name> skill that rewrites text in their voice. Trigger when the user wants to clone or capture someone's writing/messaging style, build a "write as X" skill, or invokes /clone-voice.4---56# clone-voice78A **meta-skill**: it reads a corpus of one person's messages, analyzes their writing9style against a fixed rubric, presents the findings as an inspectable **voice profile**,10then **generates a second skill**, `write-as-<name>`, that rewrites text in that voice.1112Invoked as `/clone-voice <name?> <texts-file?>`. Both arguments are optional; resolve13them in the workflow below.1415"Voice" here means **writing/messaging style only** - never audio or speech synthesis.1617## Step 0 - Show the ethics banner first1819Before requesting input, analyzing, or generating **anything**, output the ethics banner20verbatim from `reference/refusal-rules.md`. This always comes first, on every invocation,21regardless of the arguments passed.2223## Workflow24251. **Banner** - show the ethics banner (Step 0) before anything else.262. **Resolve the name** - use the name from the invocation if present. If absent, **ask27 the user** for the target name before proceeding.283. **Resolve the corpus** - use the supplied file path if present and readable. If no29 corpus is given, **ask** the user for either a file path or to paste texts directly,30 and **wait** for it before analyzing. Never invent, infer, or pad corpus content that31 was not supplied.324. **Analyze** - read `reference/style-rubric.md` and evaluate the corpus against **every**33 dimension. Record concrete observations with real examples quoted from the corpus.34 Capture habitual typos and grammar quirks as **reproducible traits**. If the corpus is35 thin, follow the rubric's confidence guidance and state low confidence rather than36 overclaiming.375. **Present the profile** - read `reference/profile-template.md` and present the filled-in38 voice profile to the user **before** generating anything, so they can review and39 correct the reasoning. Invite corrections.406. **Generate the skill** - produce `skills/write-as-<name>/SKILL.md` (see Generation).4142## Generation4344Read `reference/generated-skill-template.md` and write the generated skill to45`skills/write-as-<name>/SKILL.md`, where `<name>` is the target name kebab-cased.4647- **Embed the profile inline** - paste the full voice profile into the generated skill.48- **Inline the refusal rules** - copy the ethics banner and the refusal cases **verbatim**49 from `reference/refusal-rules.md` into the generated skill. This is the single source of50 truth; the generated skill must not reference back to `clone-voice` at runtime.51- **Record provenance frontmatter** - target name, generation date (read from the system52 clock, e.g. `date +%Y-%m-%d`), and that it was produced from a supplied corpus.53- **Ask before overwriting** - if `skills/write-as-<name>/SKILL.md` already exists, ask the54 user before replacing it.5556After writing, tell the user the path and that they can invoke `/write-as-<name> <text>`.5758## Guardrails5960- **Banner first, always.** No analysis or generation before the ethics banner.61- **Refusal rules embedded in both skills.** This skill and every generated `write-as-*`62 skill carry the same refusal rules inline. Before rewriting, a generated skill must63 evaluate the request against the refusal cases and decline when it matches.64- **Single source of truth.** The refusal rules live only in65 `reference/refusal-rules.md` and are copied into each generated skill. When that policy66 changes, existing `write-as-*` skills must be **regenerated** to pick up the new text;67 the provenance date shows how current each one is.68- **Self-contained output.** A generated skill depends only on its own embedded profile69 and rules, never on `clone-voice` files at runtime.70- **Reproduce quirks, don't clean them.** Fidelity beats cleanliness: habitual typos and71 grammar slips are captured and reproduced as traits. The embedded refusal rules are the72 safety counterweight.73- **Don't invent data.** Analyze only what the corpus contains; mark sparse dimensions as74 tentative rather than guessing.75- **Writing style only.** No audio, no speech synthesis.76- **Never commit.** Leave all new files uncommitted for the user to review.