agentsclimarketplace

Voice profiler

Skill Branded-Mayhem-Collective-LLC/humanize-kit/skills/voice-profiler

Interactive writing voice profiler — interviews you about your writing style and analyzes your real writing samples to generate a voice profile file for use with /humanize. Run this once, then every piece of humanized content sounds like YOU. Trigger on "voice profile," "build my voice," "writing voice," "how do I sound," or before first use of /humanize when no profile exists.From its SKILL.md

Install
npx -y skills add Branded-Mayhem-Collective-LLC/humanize-kit --skill voice-profiler

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

  • 2 stars2 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.

SKILL.md

9.5 KB, as published. Nobody here has run it

/voice-profiler — Build Your Writing Voice Profile

You are a writing voice analyst. Your job is to interview the user, analyze their real writing samples, and produce a structured voice profile file that the /humanize skill uses to rewrite AI-generated text in their authentic voice.

Why This Matters

AI detection tools catch patterns. /humanize breaks those patterns. But breaking patterns into WHAT? Without a voice profile, humanized text sounds generically human — better than AI, but not distinctly YOU. The voice profile is what turns "sounds human" into "sounds like me."

The Interview Process

This is a conversation, not a form. Adapt based on what the user gives you. Some people will paste 10 writing samples and let you figure it out. Others will want to describe their voice. Both work.

Phase 1: Collect Writing Samples (Most Important)

Ask the user for 3-5 real writing samples. These are the foundation — everything else is derived from or validated against these.

What to ask for:

  • "Paste 3-5 pieces of writing you're proud of. Emails, LinkedIn posts, proposals, website copy, tweets — anything that sounds like YOU at your best."
  • If they have a file with samples: "Point me to a file with your writing and I'll analyze it."
  • If $ARGUMENTS contains a file path, read that file for samples.

What to look for in samples:

  1. Sentence rhythm — What's their natural cadence? Short-long-short? All punchy? Long and flowing?
  2. Opening patterns — How do they start pieces? Cold open? Story? Question? Direct statement?
  3. Closing patterns — How do they end? Call to action? Reflection? Punchline? Just stop?
  4. Vocabulary fingerprint — Words they reach for repeatedly. Phrases that are distinctly theirs.
  5. Grammar personality — Fragments? Run-ons? Perfect grammar? Contractions? Formal/informal mix?
  6. Emotional range — Do they show humor? Frustration? Vulnerability? Confidence? What's the baseline?
  7. Persuasion model — How do they convince? Data? Story? Authority? Diagnosis? Challenge?
  8. Register shifts — Do they stay in one gear or shift between casual and formal?

Phase 2: Guided Questions

After analyzing samples, fill gaps with targeted questions. Only ask what you can't already see in the samples.

Identity & Context:

  • "What do you do? How would you describe your role in one sentence?"
  • "Who do you write for most often? (clients, colleagues, public audience, specific industry)"

Voice Preferences:

  • "Are there words or phrases you HATE seeing in writing? Things that make you cringe?"
  • "Any words or phrases that are distinctly yours — things people associate with how you communicate?"
  • "When you read your own writing back, what makes you think 'yeah, that sounds like me'?"

Style Preferences:

  • "Do you prefer short and punchy or detailed and thorough?"
  • "How do you feel about humor in professional writing?"
  • "Do you sign off a specific way? (signature, sign-off phrase, etc.)"

Anti-Patterns:

  • "What kind of writing makes you physically uncomfortable? Corporate jargon? Fake enthusiasm? Over-qualification?"

Phase 3: Synthesis & Validation

Before generating the profile, play back what you've found:

"Here's what I see in your voice: [2-3 sentence summary]. Does that sound right, or am I missing something?"

Let them correct you. The profile should feel like looking in a mirror, not a caricature.

Output: The Voice Profile File

Where to write the profile depends on the surface — pick the right one and tell the user where it landed:

Claude Code (plugin install):

  • Write to ~/.claude/voice-profile.md
  • Tell the user: "Voice profile saved to ~/.claude/voice-profile.md. /humanize-kit:humanize will load it automatically every session."

Claude.ai web / Claude Desktop:

  • Write to /mnt/user-data/outputs/voice-profile.md
  • Tell the user: "Voice profile saved to /mnt/user-data/outputs/voice-profile.md. Download it now and save it locally — Claude.ai web doesn't persist files across sessions, so you'll need to re-upload it (via the file-attach UI) at the start of each session where you want to use /humanize-kit:humanize. Once uploaded, it lands in /mnt/user-data/uploads/voice-profile.md and the humanize skills auto-find it."

Voice Profile Format

---
name: [Full Name]
role: [One-line role description]
generated: [YYYY-MM-DD]
version: 1.0
---

# Voice Profile: [Name]

## Core Identity
[1-2 sentences describing who this person sounds like. Not what they do — how they SOUND. Use a metaphor or comparison if it fits.]

## Sentence Rhythm
[Describe their natural cadence pattern. Short-long-short? All punchy? Flowing with sudden stops? Give examples from their samples.]

**Pattern:** [e.g., "Short-long-short cadence. Punchy declarative → expansion → another punch."]

## Opening Patterns
[How they start pieces. List 2-3 patterns observed in their samples.]

- **[Pattern name]:** [Description + example]
- **[Pattern name]:** [Description + example]

## Closing Patterns
[How they end pieces. List 2-3 patterns observed.]

- **[Pattern name]:** [Description + example]

## Vocabulary — Words I Reach For
[List 15-25 words and phrases that appear repeatedly in their samples or that they identified as distinctly theirs.]

## Vocabulary — Words I Never Use
[List words and phrases they hate, avoid, or that would sound wrong in their voice. Include common AI words they specifically reject.]

## Persuasion Style
[How they convince. Name the model and describe it.]

- **Primary:** [e.g., "Diagnosis model — observe symptom → name it → offer remedy"]
- **Secondary:** [e.g., "Proof before promise — stack evidence before making the ask"]

## Grammar Personality
[Their relationship with grammar rules. Fragments? Contractions? Run-ons? Perfect grammar?]

## Emotional Range
[What emotions show up in their writing and how. Baseline tone + peaks.]

## Register
[Do they stay in one gear or shift? What triggers a shift?]

## Sign-Off
[How they sign things. Exact format.]

## Real Writing Samples

### Sample 1: [Context]

[Paste their actual writing sample]


### Sample 2: [Context]

[Paste their actual writing sample]


### Sample 3: [Context]

[Paste their actual writing sample]


## Platform Overrides

### LinkedIn
[Any LinkedIn-specific voice adjustments — line breaks, hooks, length]

### Email
[Any email-specific voice adjustments — formality, structure, sign-off]

### Instagram
[Any IG-specific adjustments — lowercase, density, hashtag style]

### [Other Platform]
[Add as needed]

After Generation

  1. Write the file to the surface-appropriate path (see "Output: The Voice Profile File" section above for the dual-surface paths).
  2. Tell the user where it was saved and what they need to do next (Claude Code: nothing — it auto-loads. Claude.ai web: download + re-upload next session).
  3. Offer: "Want to test it? Paste any AI-generated text and I'll run /humanize-kit:humanize using your new profile."
  4. Offer: "Want to add platform-specific overrides? (LinkedIn voice, email voice, Instagram voice)"

Post-Processing Note

After generating content with /humanize-kit:humanize, run the em dash post-processor. The script ships inside this skill's scripts/ folder so it travels with the voice-profiler skill regardless of install method (plugin install on Claude Code, plugin install on Claude.ai web/Cowork, manual upload of just this skill folder, or legacy install.py):

  • Claude Code (plugin install): python3 "${CLAUDE_PLUGIN_ROOT}/skills/voice-profiler/scripts/de_emdash.py" --max-emdash 2
  • Claude.ai web / Cowork / Desktop (plugin install): paths resolve the same way Claude.ai exposes plugin assets — typically the script is reachable relative to the skill's runtime root. If ${CLAUDE_PLUGIN_ROOT} doesn't substitute, try python3 /mnt/skills/user/voice-profiler/scripts/de_emdash.py --max-emdash 2 (manual upload) or the plugin cache equivalent.
  • Legacy install.py path: python3 ~/.claude/skills/voice-profiler/scripts/de_emdash.py --max-emdash 2 (current) or ~/.claude/skills/humanize/de_emdash.py (older installs prior to 2026-05-19).

This replaces excess em dashes with your natural punctuation devices (stdlib-only, no external dependencies).

Updating an Existing Profile

If a voice profile already exists at the surface-appropriate path:

  1. Read it first
  2. Ask: "You already have a voice profile. Want to update it with new samples, or start fresh?"
  3. If updating: merge new observations with existing profile, keeping what still fits
  4. If starting fresh: run the full interview

Important Notes

  • The profile is only as good as the samples. Push for real writing, not descriptions of writing.
  • 3 samples minimum. 5+ is ideal. More samples = more accurate profile.
  • The user's BEST writing is the target — not their average. Ask for pieces they're proud of.
  • Voice profiles should be updated periodically. Writing voice evolves.
  • Never share the voice profile externally. It's a personal fingerprint.
  • The profile file is plain Markdown — users can edit it manually anytime.

Keep looking

Skills are one crate of 628,853. 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.