agentsclimarketplace

Clone voice

Skill ayrtonvwf/skills/skills/clone-voice

Portable SKILL.md agent skills with automated LLM-eval harness (Microsoft Waza), using mock MCP server for evals. Cross-harness: Claude Code, Copilot, Cursor, OpenCode.

Install
npx -y skills add ayrtonvwf/skills --skill clone-voice

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

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.

SKILL.md

4.3 KB, as published. Nobody here has run it

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

  1. Banner - show the ethics banner (Step 0) before anything else.
  2. Resolve the name - use the name from the invocation if present. If absent, ask the user for the target name before proceeding.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.