Agent skill

Voice Profile

by pedrohcgs in pedrohcgs/claude-code-my-workflow

Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you.

MITAuto-check: notesWriting & Content

Install Voice Profile

skills CLI
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profile --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/voice-profile .claude/skills/voice-profile && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
voice-profile
GitHub stars
1.7k
Token cost
~1.6k tokens
SKILL.md length
691 words
Files
1
Skills in repo
59
Repo updated
First seen
Licence
MIT

At a glance

Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you.

  • Works in 4 steps: Assemble the corpus, and count it → One subagent per document — never load… → Synthesize, and mark what is stable → …
  • Keep new drafts sounding like you
  • SKILL.md covers Building the profile, Auditing a draft, Anti-patterns and Cross-references
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Voice Profile is an agent skill from pedrohcgs/claude-code-my-workflow. Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you. Reads a corpus one document at a time via subagents, produces a reusable profile on disk (lexicon, sentence rhythm, how you open and close, hedging habits, deliberate quirks), and audits a draft against it. Use when the user says "make this sound like me", "match my voice", "profile my writing", "why does this draft not sound like my papers", or before drafting prose that will carry their name. The…

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Brand voice and tone, Humanizing AI text and Subagents. The repository describes itself as: A ready-to-fork Claude Code template for academics using LaTeX/Beamer + R. Multi-agent review, quality gates, adversarial QA, and replication protocols. The licence is MIT.

When your agent uses it

  • Keep new drafts sounding like you
  • The user says make this sound like me
  • Profile my writing
  • Why does this draft not sound like my papers

Example prompts

  • “make this sound like me”
  • “match my voice”
  • “profile my writing”
  • “/voice-profile”

Requirements

  • Pre-approved tools (allowed-tools): Read, Grep, Glob, Write, Bash, Agent

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Assemble the corpus, and count it
  2. One subagent per document — never load the corpus into one context
  3. Synthesize, and mark what is stable
  4. Wire it in

What it can do on your machine

Read from SKILL.md and the folder at commit ae72617. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Grep
    • Glob
    • Write
    • Bash
    • Agent

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Voice Profile loads about 1.6k tokens when it runs. Until then it costs about 147 tokens; SKILL.md has 691 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~147
When it runs · the whole SKILL.md, loaded when a task matches
~1.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Grep, Glob, Write, Bash, Agent

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from pedrohcgs/claude-code-my-workflow at commit ae72617, republished under its MIT licence (© pedrohcgs). 691 words, ~1,572 tokens.

Download SKILL.mdSave it as .claude/skills/voice-profile/SKILL.md (or your agent's skills folder).
name
voice-profile
description
Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you. Reads a corpus one document at a time via subagents, produces a reusable profile on disk (lexicon, sentence rhythm, how you open and close, hedging habits, deliberate quirks), and audits a draft against it. Use when the user says "make this sound like me", "match my voice", "profile my writing", "why does this draft not sound like my papers", or before drafting prose that will carry their name. The positive counterpart to /humanize, which only detects AI tells.
allowed-tools
Read, Grep, Glob, Write, Bash, Agent
argument-hint
[corpus directory | --audit draft.tex]
disallowed-tools
Edit, MultiEdit
disable-model-invocation
true
metadata.protocol
evidence-grounding

Voice profile — write toward something, not just away from tells

/humanize is the negative direction: it finds AI tells and says what to remove. That leaves a draft that is merely less bad.

This is the positive direction: a written description of how you actually write, extracted from your own published work, so a draft can be measured against a target instead of a taboo list.

What this does not do. A voice profile makes prose sound like your prose. It does not make model-generated text stop reading as model-generated to a neural detector — nothing an LLM applies to its own output does. See writing-with-ai.md. Use this to write well in your own register; write the load-bearing sentences yourself.

Building the profile

1. Assemble the corpus, and count it

Three to twelve of your own pieces where you were the primary writer. Published papers are best — they survived editing. Mix genres if you write in several (paper, referee report, grant, teaching notes); the profile should note where your register changes.

bash
find <corpus-dir> -maxdepth 1 \( -name '*.pdf' -o -name '*.tex' \) | wc -l

(find, not a glob — in zsh an unmatched glob aborts the whole command, which reports 0 and defeats the count this step exists for.)

Count before starting. A corpus of eleven is a different task from four, and discovering that halfway through is how a session gets reset.

2. One subagent per document — never load the corpus into one context

Per pdf-processing.md: spawn one subagent per document in a fresh context. Each reads only its own file, writes a ~300-word note to notes/voice/<name>.md against the fixed schema below, and returns only the filename.

The main session then reads only the notes. Loading a whole corpus at once has repeatedly forced a session reset after partial work was already lost.

Per-document note schema — the same six headings every time, so the synthesis can compare:

## Lexicon      words and phrases used repeatedly; words conspicuously avoided
## Rhythm       typical sentence length; variance; where long sentences appear
## Openings     how sections and paragraphs begin; how the paper opens
## Transitions  the actual connectives used, verbatim, with rough frequency
## Hedging      how uncertainty is expressed; how strong claims are made
## Quirks       anything distinctive — punctuation habits, first person, humour, footnotes
3. Synthesize, and mark what is stable

Read only the notes. A trait belongs in the profile if it appears across most of the corpus, not because one paper did it once. Record frequencies where you can: "'note that' appears in 7 of 9 papers; 'delve' appears in none."

Write to voice-profile.md at the repo root (allowlisted in the repo-hygiene gate). Include:

  • Signature vocabulary and the avoid list — words the author demonstrably does not use.
  • Sentence rhythm, with a number: median length, and where the long ones land.
  • Structural habits — how an introduction is built, where the contribution paragraph sits, how results are framed.
  • Hedging register — the author's actual calibration language, which is usually narrower than a model's default.
  • Deliberate quirks, labelled as deliberate. "Uses em-dashes frequently and on purpose" stops /humanize from flagging a habit as an AI tell.
  • Where the register shifts by genre.
Show full SKILL.md (242 more words)Show less
4. Wire it in

/humanize reads voice-profile.md when present and respects documented preferences — a quirk you have declared deliberate is no longer a finding. Point drafting work at the profile before it writes, not after.

Auditing a draft

Pass --audit followed by a filename to compare an existing draft against the profile instead of building one:

/voice-profile --audit main.tex

Report, per section: distance from the profile, with concrete evidence — vocabulary outside your range, hedging denser than your baseline, transitions you do not use, sentence rhythm that has flattened. Every finding cites the profile line it violates, so it is a deduction rather than taste.

Read-only. Auto-rewriting prose degrades it and introduces new tells, and it cannot change what a detector sees. The report says where and why; the author edits.

Anti-patterns

  • Profiling coauthored work you did not draft. You will extract someone else's voice.
  • Treating the profile as a rulebook. It describes what you have done, not what you must do. Voices change; re-profile after a few new papers.
  • Building it from AI-assisted drafts. The profile will encode the model's register as yours — the corpus must be work you wrote.
  • Using it to pass a detector. It is a writing aid, not a laundering step. If a venue wants an AI-use statement, make one (/submission-disclosures).

Cross-references

  • writing-with-ai.md — readability vs provenance, and the human-readable standard
  • /humanize — the negative direction; reads this profile when it exists
  • /proofread — grammar and consistency, a separate lens
  • pdf-processing.md — the one-subagent-per-document pattern

© pedrohcgs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/voice-profile of pedrohcgs/claude-code-my-workflow.

Open the folder on GitHubat commit ae72617

Compare with similar skills

Voice Profile next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Voice Profile compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Voice Profile this skillpedrohcgs/claude-code-my-workflow1.7k—~1.6kAutomated safety check: NotesMIT
Avoid AI Writingconorbronsdon/avoid-ai-writing4.9k3 repos~8.1kAutomated safety check: PassMIT
Unslop AI Writing Cleanuptheclaymethod/unslop518—~1.7kAutomated safety check: PassMIT
Remove AI Patternspchalasani/claude-code-tools2k—~1.4kAutomated safety check: PassMIT
Brand Voiceaffaan-m/ECC277k3 repos~912Automated safety check: PassMIT
Writewaynesutton/markdown-site627—~3kAutomated safety check: PassMIT

Similar skills

  • Avoid AI Writing

    conorbronsdon/avoid-ai-writing

    Audit and rewrite content to remove AI writing patterns ("AI-isms").

    4.9k GitHub starsUsed in 3 repos~8.1k tokens
    Writing & ContentAuto-check passed
  • Unslop AI Writing Cleanup

    theclaymethod/unslop

    Removes AI writing tells from prose through an audit-first flow, routing to a two-pass rewrite, a report-only cleanup, voice teaching or mimicry depending on the sub-command used.

    518 GitHub stars~1.7k tokensUpdated 1 mo ago
    Writing & ContentAuto-check passed
  • Remove AI Patterns

    pchalasani/claude-code-tools

    Remove AI-writing patterns ("AI-isms") from text using the avoid-ai-writing catalog (conorbronsdon/avoid-ai-writing).

    2k GitHub stars~1.4k tokensUpdated yesterday
    Writing & ContentAuto-check passed
  • Brand Voice

    affaan-m/ECC

    Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows.

    277k GitHub starsUsed in 3 repos~912 tokens
    Writing & ContentAuto-check passed
  • Write

    waynesutton/markdown-site

    Writing style guide for technical content, social media, blog posts, READMEs, git commits, and developer documentation.

    627 GitHub stars~3k tokensUpdated 4 mo ago
    Writing & ContentAuto-check passed
  • Writing Rules

    PromptPartner/agentsmith

    Write or review anything an agent reads — a core rule, a profile gate, a SKILL.md description, an instruction-file line, a subagent prompt, a handoff note, a verify-phase label.

    177 GitHub stars~2.9k tokensUpdated yesterday
    Writing & ContentAuto-check passed

More from pedrohcgs/claude-code-my-workflow

All 59 skills in this repo
  • Devils Advocate

    pedrohcgs/claude-code-my-workflow

    Adversarial 5-7 question challenge to a deck's pedagogical choices — ordering, prerequisites, cognitive load, motivation.

    1.7k GitHub starsUsed in 2 repos~641 tokens
    Auto-check passed
  • Vaccinate

    pedrohcgs/claude-code-my-workflow

    Qualify a check before it is allowed to clear anything — prove it can detect the failure it is meant to catch.

    1.7k GitHub stars~2.1k tokensUpdated 13 days ago
    Auto-check: notes
  • Compile Latex

    pedrohcgs/claude-code-my-workflow

    Compile a Beamer LaTeX slide deck with XeLaTeX (3 passes + bibtex).

    1.7k GitHub starsUsed in 1 repo~492 tokens
    Auto-check: notes
  • Context Status

    pedrohcgs/claude-code-my-workflow

    Show current context status and session health. An agent skill from pedrohcgs/claude-code-my-workflow.

    1.7k GitHub starsUsed in 1 repo~613 tokens
    Auto-check: notes
  • Capture Environment

    pedrohcgs/claude-code-my-workflow

    Snapshot the computational environment for a replication package — detects the analysis stack (R / Stata / Python) and emits the right lockfiles (renv.lock + sessionInfo.txt, requirements.txt /…

    1.7k GitHub stars~2.8k tokensUpdated 13 days ago
    Auto-check: notes
  • Checkpoint

    pedrohcgs/claude-code-my-workflow

    Save a structured state snapshot before stopping or handing off.

    1.7k GitHub stars~2.8k tokensUpdated 13 days ago
    Auto-check: notes

Questions about Voice Profile

What does Voice Profile do?

Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you. Voice Profile is an agent skill from pedrohcgs/claude-code-my-workflow. Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you.

When should I use Voice Profile?

Voice Profile fits situations like: keep new drafts sounding like you; the user says make this sound like me; profile my writing; why does this draft not sound like my papers.

How do I install Voice Profile in Claude Code?

Run `npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a claude-code`. Or copy the skill folder (.claude/skills/voice-profile in pedrohcgs/claude-code-my-workflow) into .claude/skills/voice-profile in your project. Claude Code loads it when a task matches its description.

How do I install Voice Profile in Codex?

Run `npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a codex`. Or copy the skill folder (.claude/skills/voice-profile in pedrohcgs/claude-code-my-workflow) into .agents/skills/voice-profile in your project. Codex loads it when a task matches its description.

Can I use Voice Profile in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/voice-profile, .gemini/skills/voice-profile, .github/skills/voice-profile and .opencode/skills/voice-profile in your project.

What does Voice Profile need to run?

SKILL.md names no scripts, command-line tools or credentials: Voice Profile is instructions for the agent only. Its frontmatter pre-approves these tools: Read, Grep, Glob, Write, Bash, Agent.

Does Voice Profile access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Voice Profile safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Voice Profile use?

Voice Profile is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Voice Profile use?

About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Voice Profile?

Skills that share tags, products or a category with Voice Profile: Avoid AI Writing (conorbronsdon/avoid-ai-writing, 4.9k stars), Unslop AI Writing Cleanup (theclaymethod/unslop, 518 stars), Remove AI Patterns (pchalasani/claude-code-tools, 2k stars) and Brand Voice (affaan-m/ECC, 277k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Voice Profile?

pedrohcgs (a GitHub user) maintains it in pedrohcgs/claude-code-my-workflow, which has 1,655 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on September 27, 2026.

Source: pedrohcgs/claude-code-my-workflow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.