voice-capture
Scannednpx machina-cli add skill robertguss/claude-code-toolkit/voice-capture --openclawVoice Capture Skill
Extract and encode writing voice from sample text into reusable voice profiles. This skill transforms examples of writing you like into documented patterns that can guide future writing.
When to Use This Skill
This skill applies when:
- A user provides sample text and asks "write like this"
- Creating a voice profile from existing content
- Documenting a brand voice for consistency
- Capturing an author's style for future reference
- Analyzing differences between two writing styles
Core Philosophy
Voice isn't just word choice. It's sentence rhythm, paragraph structure, emotional register, and a thousand small decisions that create a distinctive sound.
This skill captures those decisions systematically so they can be applied to new content.
Voice Profile Structure
A complete voice profile has three layers. See voice-profile-template.yaml for the full template.
Layer 1: Immutable Traits
Core characteristics that define the voice:
traits:
- direct # vs. indirect, circumspect
- conversational # vs. formal, academic
- technically-informed # level of assumed expertise
register: informal # formal / semiformal / informal
prohibited:
- "synergy"
- passive voice in openings
- exclamation marks (except in quotes)
Layer 2: Channel Guidance
How the voice adapts by medium:
channels:
blog:
length: "1000-2000 words"
personality: "full"
storytelling: "encouraged"
newsletter:
length: "300-500 words"
personality: "high - direct address okay"
storytelling: "personal anecdotes"
social:
length: "280 chars or thread"
personality: "punchy, hooks required"
storytelling: "minimal - punchlines only"
documentation:
length: "as needed"
personality: "minimal"
storytelling: "none - clarity first"
Layer 3: Example Library
Exemplars that demonstrate the voice:
exemplars:
- path: "samples/great-opening.md"
why: "Concrete example first, theory second"
demonstrates: ["hook", "pacing"]
- path: "samples/transition.md"
why: "Invisible transition technique"
demonstrates: ["flow", "structure"]
- path: "samples/closing.md"
why: "Strong CTA without being salesy"
demonstrates: ["conclusion", "call-to-action"]
Extraction Process
Step 1: Collect Samples
Minimum: 3 samples (ideally 5-10) Total words: At least 2,000 words Variety: Different topics, same author/brand
Step 2: Analyze Dimensions
Reference analysis-dimensions.md for the full framework.
Vocabulary Analysis
- Complexity: Simple ↔ Complex
- Formality: Casual ↔ Formal
- Jargon: Technical ↔ Accessible
- Signature words: Frequently used phrases
Sentence Analysis
- Length: Average words per sentence
- Variety: Standard deviation of sentence length
- Structure: Simple vs. compound vs. complex ratio
- Fragments: Used for emphasis? How often?
Paragraph Analysis
- Length: Average sentences per paragraph
- Opening patterns: How do paragraphs typically start?
- Closing patterns: How do paragraphs typically end?
Rhythm Analysis
- Pacing: Quick (short sentences) vs. measured (longer)
- Punctuation style: Dashes, semicolons, parentheses
- White space: Dense vs. airy paragraphs
Emotional Analysis
- Tone: Optimistic, skeptical, neutral, passionate
- Distance: Intimate (I, you) vs. distant (one, they)
- Stakes: High urgency vs. calm reflection
Step 3: Document Patterns
For each dimension, document:
- The observed pattern
- A concrete example
- A counter-example (what this voice avoids)
Step 4: Create Profile
Use extraction-templates.md to structure your findings.
Output: .claude/voice-profiles/[name].yaml
Using Voice Profiles
In Writing Commands
# In /writing:draft
style:
voice_profile: "kieran-blog"
# OR
voice_profile: ".claude/voice-profiles/client-name.yaml"
For Voice Guardian
The voice-guardian agent uses profiles to:
- Score voice consistency (0-100)
- Identify drift points
- Suggest specific fixes
Target score: 85+
For New Writers
When onboarding writers to match an existing voice:
- Share the voice profile
- Share the exemplars
- Run voice-guardian on their drafts
Quick Extraction Workflow
For rapid voice capture (when you need a profile fast):
## Quick Profile: [Name]
**Based on**: [X] samples totaling [Y] words
### Core Traits
- [Trait 1]
- [Trait 2]
- [Trait 3]
### Sentence Patterns
Average length: [X] words
Common patterns:
- [Pattern 1]
- [Pattern 2]
### Vocabulary Markers
**Signature words**: [list]
**Avoided words**: [list]
### Tone
[Brief description]
### Quick Examples
Good: "[example that nails the voice]"
Bad: "[example that would violate it]"
Common Extraction Challenges
Challenge: Too Few Samples
Problem: Can't identify patterns from 1-2 samples. Solution: Ask for more content or analyze published work from the same source.
Challenge: Inconsistent Source
Problem: The sample voice varies significantly. Solution: Either document the variation (multiple profiles) or focus on the most recent/best examples.
Challenge: Style vs. Voice
Problem: Confusing topic-specific style with core voice. Solution: Analyze samples on different topics. What stays constant? That's the voice.
Challenge: Unconscious Patterns
Problem: Author doesn't know what makes their voice distinctive. Solution: Compare to other writers. What's different? That's often the key.
Quality Checklist
A voice profile is complete when:
- All three layers are populated
- At least 3 exemplars are documented
- Prohibited patterns are explicit
- Channel variations are noted
- A test passage can be evaluated against it
- Someone unfamiliar with the voice could use it
References
- extraction-templates.md - Templates for structured extraction
- analysis-dimensions.md - All dimensions to analyze
- example-profiles.md - Sample voice profiles for reference
- voice-profile-template.yaml - The YAML template
Source
git clone https://github.com/robertguss/claude-code-toolkit/blob/main/plugins/compound-writing/skills/voice-capture/SKILL.mdView on GitHub Overview
Voice Capture extracts a writer’s voice from sample text and encodes it into reusable profiles. It documents patterns across three layers—immutable traits, channel guidance, and an exemplar library—so future writing stays consistent with a brand or author’s style.
How This Skill Works
Users submit sample texts and the tool analyzes dimensions like vocabulary, sentence length, rhythm, tone, and formality. The output is a three-layer voice profile (immutable traits, channel guidance, exemplars) that can guide new content and be tested against target writing. The process follows a structured extraction workflow: collect samples, analyze dimensions, and document patterns into a reusable profile.
When to Use It
- When a user asks 'write like this' using sample text to match a voice.
- When creating a voice profile from existing content to ensure long-term consistency.
- When documenting a brand voice for cross-channel consistency (blog, newsletter, social, docs).
- When capturing an author's style for future reference or style comparisons.
- When analyzing differences between two writing styles to inform adjustments.
Quick Start
- Step 1: Gather 3-5 samples totaling at least 2,000 words from the target author or brand.
- Step 2: Analyze the samples for vocabulary, sentence length, rhythm, tone, and formality using the extraction framework.
- Step 3: Create a voice-profile.yaml (Layer 1 traits, Layer 2 channels, Layer 3 exemplars) and test by writing in the target voice.
Best Practices
- Collect 3-5 samples totaling at least 2,000 words from the same author or brand.
- Analyze vocabulary, sentence length, rhythm, formality, and emotional tone to capture the voice.
- Define immutable traits and build channel-specific guidance (blog, newsletter, social, documentation) before adding exemplars.
- Compile an exemplar library with concrete samples and why they demonstrate the voice.
- Validate by producing new content in the voice and iterating until it aligns with the target profile.
Example Use Cases
- A tech startup documents its brand voice for blog posts, emails, and product docs to ensure consistent messaging.
- A freelance writer captures a client's voice to maintain consistency across articles.
- A marketing team uses voice profiles to compare two brand voices and harmonize messaging.
- A content rewrite project uses voice capture to ensure new copy matches an established author's style.
- An e-learning platform aligns course content to a defined voice across modules.