Avoid AI Writing
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you.
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profile --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "voice-profile" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profile into .claude/skills/voice-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-profile", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profileType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profile --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/voice-profile .agents/skills/voice-profile && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "voice-profile" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profile into .agents/skills/voice-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-profile", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profile --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/voice-profile .cursor/skills/voice-profile && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "voice-profile" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profile into .cursor/skills/voice-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-profile", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pedrohcgs/claude-code-my-workflow.git --path .claude/skills/voice-profile--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profile --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/voice-profile .gemini/skills/voice-profile && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "voice-profile" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profile into .gemini/skills/voice-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-profile", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profileInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/voice-profile .github/skills/voice-profile && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "voice-profile" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profile into .github/skills/voice-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-profile", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pedrohcgs/claude-code-my-workflow --skill voice-profile -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pedrohcgs/claude-code-my-workflow voice-profile --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pedrohcgs/claude-code-my-workflow.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/voice-profile .opencode/skills/voice-profile && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "voice-profile" agent skill from https://github.com/pedrohcgs/claude-code-my-workflow/tree/main/.claude/skills/voice-profile into .opencode/skills/voice-profile/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "voice-profile", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
voice-profileExtract 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. 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.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ae72617. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGrepGlobWriteBashAgentFrom allowed-tools in the SKILL.md frontmatter.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Grep, Glob, Write, Bash, AgentAutomated 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.
The full file from pedrohcgs/claude-code-my-workflow at commit ae72617, republished under its MIT licence (© pedrohcgs). 691 words, ~1,572 tokens.
.claude/skills/voice-profile/SKILL.md (or your agent's skills folder)./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.
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.
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.
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, footnotesRead 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:
/humanize from flagging a habit as an AI tell./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.
Pass --audit followed by a filename to compare an existing draft against the profile instead of building one:
/voice-profile --audit main.texReport, 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.
/submission-disclosures).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 lenspdf-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
Just SKILL.md in .claude/skills/voice-profile of pedrohcgs/claude-code-my-workflow.
Open the folder on GitHubat commit ae72617
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Voice Profile this skillpedrohcgs/claude-code-my-workflow | 1.7k | — | ~1.6k | Automated safety check: Notes | MIT | |
| Avoid AI Writingconorbronsdon/avoid-ai-writing | 4.9k | 3 repos | ~8.1k | Automated safety check: Pass | MIT | |
| Unslop AI Writing Cleanuptheclaymethod/unslop | 518 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Remove AI Patternspchalasani/claude-code-tools | 2k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Brand Voiceaffaan-m/ECC | 277k | 3 repos | ~912 | Automated safety check: Pass | MIT | |
| Writewaynesutton/markdown-site | 627 | — | ~3k | Automated safety check: Pass | MIT |
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
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.
pchalasani/claude-code-tools
Remove AI-writing patterns ("AI-isms") from text using the avoid-ai-writing catalog (conorbronsdon/avoid-ai-writing).
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.
waynesutton/markdown-site
Writing style guide for technical content, social media, blog posts, READMEs, git commits, and developer documentation.
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.
pedrohcgs/claude-code-my-workflow
Adversarial 5-7 question challenge to a deck's pedagogical choices — ordering, prerequisites, cognitive load, motivation.
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.
pedrohcgs/claude-code-my-workflow
Compile a Beamer LaTeX slide deck with XeLaTeX (3 passes + bibtex).
pedrohcgs/claude-code-my-workflow
Show current context status and session health. An agent skill from pedrohcgs/claude-code-my-workflow.
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 /…
pedrohcgs/claude-code-my-workflow
Save a structured state snapshot before stopping or handing off.
Categories
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.