This skill should be used when extracting voice profiles from sample text, creating voice documentation, or matching a specific writing style. It applies when users provide sample text and want to capture the voice for future use.
npx skills add https://github.com/robertguss/claude-code-toolkit --skill voice-capture
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.
This skill applies when:
> 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.
A complete voice profile has three layers. See voice-profile-template.yaml for the full template.
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)
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"
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"]
Minimum: 3 samples (ideally 5-10)
Total words: At least 2,000 words
Variety: Different topics, same author/brand
Reference analysis-dimensions.md for the full framework.
For each dimension, document:
Use extraction-templates.md to structure your findings.
Output: .claude/voice-profiles/[name].yaml
# In /writing:draft
style:
voice_profile: "kieran-blog"
# OR
voice_profile: ".claude/voice-profiles/client-name.yaml"
The voice-guardian agent uses profiles to:
Target score: 85+
When onboarding writers to match an existing voice:
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]"
Problem: Can't identify patterns from 1-2 samples.
Solution: Ask for more content or analyze published work from the same source.
Problem: The sample voice varies significantly.
Solution: Either document the variation (multiple profiles) or focus on the most recent/best examples.
Problem: Confusing topic-specific style with core voice.
Solution: Analyze samples on different topics. What stays constant? That's the voice.
Problem: Author doesn't know what makes their voice distinctive.
Solution: Compare to other writers. What's different? That's often the key.
A voice profile is complete when:
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
Take robertguss/voice-capture from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.