Skip to content
Content
Skill

/personal-voice-capture

Use when a user wants an agent to learn, encode, or improve their personal writing voice as a reusable skill through source-text ingestion and iterative calibration edits.

From plugin
personal-voice-capture
131 skill

Claude Code

$ npx -y skills add eranshir/personal-voice-capture --skill personal-voice-capture --agent claude-code

SKILL.md

personal-voice-capture.SKILL.md
name: personal-voice-capture
description: "Use when a user wants an agent to learn, encode, or improve their personal writing voice as a reusable skill through source-text ingestion and iterative calibration edits."

Personal Voice Capture

Overview

Use this meta-skill to create or improve a personalized voice skill for a specific person. The output is not a one-off prompt. The output is a durable `SKILL.md` that future agents can load to draft or rewrite text in that person's voice.

This skill is a calibration process: corpus evidence plus user edits become executable voice rules, context modes, phrase preferences, examples, and quality checks.

Non-Negotiable Principle

Capture expression, not identity.

The generated skill may describe how the person tends to write. It must not invent their beliefs, commitments, emotions, facts, approvals, or positions. When future agents use the generated voice skill, they rewrite the supplied intent in the person's voice; they do not decide what the person thinks.

When to Use

Use when the user says things like:

  • "capture my voice"
  • "learn how I write"
  • "build my voice skill"
  • "make future agents write like me"
  • "that doesn't sound like me; update the voice skill"
  • "calibrate on my edits"
  • "turn these samples into my writing style"

Do not use for:

  • impersonating someone without their consent
  • inventing views, promises, or commitments
  • forensic authorship attribution
  • making text deceptively appear authored by someone in a context where disclosure is required
  • replacing current task intent with generic personality mimicry

Operating Modes

1. Capture Mode

Use this when no mature personal voice skill exists yet. The goal is to create a first usable `SKILL.md`.

2. Maintenance Mode

Use this when a voice skill already exists and the user corrects, edits, or rejects generated text. The goal is to patch the existing skill with new rules, weakened rules, deleted rules, or better examples.

Phase 0 — Scope and Consent

Before ingesting or storing source material, establish the scope. If the user already specified the scope, proceed without re-asking.

Capture:

1. **Person** — whose voice is being captured. 2. **Primary languages** — English, Hebrew, mixed, or other. 3. **Contexts** — DM, email, internal memo, investor note, customer note, public post, technical doc, etc. 4. **Source policy** — pasted samples, local files, email/docs/chat exports if authorized. 5. **Storage policy** — default: do not retain raw corpus; retain derived rules and user-approved examples only. 6. **Output target** — local profile skill, repo skill, or both.

Default if unspecified:

  • Store only derived voice rules and approved examples.
  • Create a private, user-local skill named `<person-slug>-voice`.
  • Keep source-text notes session-local unless explicitly asked to save them.

Phase 1 — Ingest Past Writing

Accept sources from pasted examples, files, docs, emails, chat exports, social posts, or prior agent outputs edited by the user.

For each source, classify:

| Dimension | Values | |---|---| | Authorship confidence | authored, edited, transcript, uncertain | | Medium | DM, email, memo, post, comment, deck, doc | | Audience | self, friend, team, investor, customer, public | | Formality | casual, crisp, polished, technical, strategic | | Language | English, Hebrew, mixed, other | | Recency | current, older, unknown |

Extract observations across these categories:

  • sentence length and rhythm
  • paragraph shape
  • openers and closers
  • transitions and framing devices
  • directness vs. hedging
  • compression level
  • warmth and humor
  • punctuation habits
  • bullets/tables/numbered-list usage
  • rhetorical patterns such as "not X, but Y"
  • vocabulary and recurring phrases
  • words or phrases the person avoids
  • multilingual switching patterns
  • context-specific differences

Keep evidence labels. Distinguish strong recurring patterns from weak one-off clues.

Phase 2 — Draft the Initial Voice Model

Create `Voice Spec v0.1` with these sections:

# <Person> Voice Spec

## Confidence
What evidence exists and where it is weak.

## High-Level Signature
A compressed description of the person's recognizable writing voice.

## Invariants
Rules that apply across most contexts.

## Context Modes
### DM / Chat
### Email
### Internal Memo
### Public Post
Add/remove modes as needed.

## Cadence
Sentence length, rhythm, paragraph shape.

## Diction
Preferred words, avoided words, recurring phrases.

## Structure
How the person organizes arguments and asks.

## Warmth / Humor / Edge
How much personality appears and when.

## Do / Don't
Concrete rewrite rules.

## Examples
Generic -> Person voice pairs.

Do not treat v0.1 as truth. It is a hypothesis to test against user edits.

Phase 3 — Calibration Loop

Run short rounds. Each round should include 3–5 calibration items unless the user asks for a different pace.

Delivery: editable file (default)

Do not paste calibration items into chat as blockquotes — they are painful to copy and edit. Instead, write the round to a single plain-text markdown file the user edits inline in their editor, then hand back. This scales to large rounds and keeps the user in one place.

Conventions for the file:

  • Write to a session-local, gitignored location (e.g. `.scratch/calibration-round-<n>.md`). Never store raw corpus or edits in a committed path unless storage policy allows it.
  • One block per item. Label the context/language. Show the generic version and the assistant's attempt as **plain text, not blockquotes** (no `>` and no leading indentation), so the user can copy or overwrite freely.
  • Give each item a clearly delimited edit zone with an explicit sentinel the user types into, e.g.:
## Example <n> — <context, language>

GENERIC:
<neutral, competent, non-personal version>

MY ATTEMPT:
<rewrite using current voice model>

YOUR EDIT (replace this line; write `good` if the attempt
Read more
Stats
13
Stars
2
Forks
Maintained
Maintenance
Python
Language
MIT
License
Last commit
Created

Repo: eranshir/personal-voice-capture

@eranshir
Ships withpersonal-voice-capture

Teach an AI agent to write like you — not from a one-off prompt, but from your own writing and your own edits. Every agent I use writes the same way. Competent, fluent, and unmistakably not me. I bet yours do too.

Stars on GitHub

Momentum

stars in total
13
Star history of eranshir/personal-voice-capture on GitHub, a chart by star-history.com

More skills from other plugins.

prompt-lookup

prompt-lookup

Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use…

@gh-f@gh-fInstall Skill
ppt-master

ppt-master

AI-driven presentation workflow for generating editable PPTX decks and slides, reconstructing page visuals, creating reusable…

@hugohe3@hugohe3Install Skill
morph-ppt

morph-ppt

Use this skill when the user wants a .pptx with smooth cross-slide animation — PowerPoint Morph transitions, Keynote-style…

@iofficeai@iofficeaiInstall Skill

Questions about personal-voice-capture.

Which coding agents can use personal-voice-capture?
personal-voice-capture installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.