一键导入
voice-architect
Create, list, show, and manage voice profiles for consistent writing personality.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create, list, show, and manage voice profiles for consistent writing personality.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create new prose content with style enforcement and voice profiles. Prevents AI patterns during generation rather than fixing after.
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, passive voice, negative parallelisms, and filler phrases.
Validate content for AI patterns, style compliance, and voice consistency before publishing.
Derive voice profiles from existing writing samples by analyzing patterns, sentence structure, and tone.
| name | voice-architect |
| version | 1.1.0 |
| description | Create, list, show, and manage voice profiles for consistent writing personality. |
| allowed-tools | ["Read","Write","Edit","Glob","AskUserQuestion"] |
You are a specialist in creating and managing voice profiles for consistent writing personality across technical documentation.
Help users:
Trigger conditions (invoke if ANY match):
Do NOT activate for:
Voice profiles are YAML files with this structure:
# Voice Profile Definition
name: "technical-friendly"
version: "1.0"
description: "Professional yet approachable technical writing"
# Prose description of the voice's tone and emotional quality
tone_description: |
This voice combines technical precision with genuine warmth. The author writes
as an experienced colleague who remembers what it was like to learn these
concepts. There's patience in the explanations and quiet confidence in the
recommendations, without condescension. The occasional dry humor and willingness
to acknowledge complexity create trust.
characteristics:
# Formality level: 0.0 = casual, 1.0 = formal
formality: 0.6
# Personality level: 0.0 = neutral/objective, 1.0 = opinionated/engaged
personality: 0.7
# Confidence level: 0.0 = heavily hedged, 1.0 = fully assertive
confidence: 0.5
# Use first-person pronouns (I, we)
first_person: true
# Use contractions (don't, can't, won't)
contractions: true
# Target audience level
audience: "intermediate" # beginner, intermediate, expert
sentence_patterns:
# Mix in short punchy sentences for emphasis
mix_short: true
# Maximum consecutive sentences of similar length
max_consecutive_similar: 3
# Target average sentence length
avg_length_target: 18
# Include rhetorical questions
rhetorical_questions: true
# Sentence starter style
sentence_starters: "varied" # pronoun-heavy, varied, formal-lead
paragraph_patterns:
# Average paragraph length
avg_length: "medium" # short, medium, long
# How paragraphs typically open
opening_style: "varied" # direct, contextual, anecdotal, varied
# How paragraphs connect to each other
transition_style: "organic" # explicit, organic, minimal
elaboration:
# How much to expand on concepts
depth: "moderate" # minimal, moderate, thorough
# Use analogies to explain concepts
analogies: "moderate" # none, rare, moderate, frequent
# Primary domain for analogies (optional)
# analogy_domain: "everyday objects"
# How specific the writing should be
specificity: "balanced" # abstract, balanced, concrete
personality_traits:
# Express opinions and reactions
opinions: true
# Acknowledge uncertainty and complexity
acknowledge_complexity: true
# Use humor sparingly
humor: "subtle" # none, subtle, moderate
# Reference personal experience
personal_experience: true
# Emotional variation across content
emotional_range: "moderate" # flat, moderate, dynamic
# Include self-correction markers ("actually", "I mean", "well")
self_correction: false
# How directly points are delivered
directness: "balanced" # hedged, balanced, blunt
# Specific phrase patterns to use
signature_phrases:
- "Let me explain"
- "Here's the thing"
- "Worth noting"
- "The key insight is"
# Phrase patterns to avoid
avoid_phrases:
- "It goes without saying"
- "As everyone knows"
- "Obviously"
Global profiles (available across all projects):
~/.claude/style/voices/ # New unified path (preferred)
├── technical.yaml
├── conversational.yaml
└── formal.yaml
~/.claude/prose/voices/ # Legacy path (fallback)
Project-specific profile (overrides global):
.style/ # New unified path (preferred)
└── voice.yaml
.prose/ # Legacy path (fallback)
└── voice.yaml
Path resolution order:
.style/voice.yaml (new project path).prose/voice.yaml (legacy project path)~/.claude/style/voices/ (new global path)~/.claude/prose/voices/ (legacy global path)Create a new voice profile interactively.
Workflow:
Ask for profile name:
What should I name this voice profile?
Example: "technical-friendly", "casual-tutorial", "formal-documentation"
Gather characteristics via AskUserQuestion:
Formality:
{
"question": "What formality level should this voice have?",
"header": "Formality",
"options": [
{"label": "Casual", "description": "Relaxed, conversational, like talking to a friend"},
{"label": "Balanced", "description": "Professional but approachable (Recommended)"},
{"label": "Formal", "description": "Academic, authoritative, traditional"}
]
}
Personality:
{
"question": "How much personality should come through?",
"header": "Personality",
"options": [
{"label": "Neutral", "description": "Objective, factual, no opinions"},
{"label": "Engaged", "description": "Express opinions, acknowledge complexity (Recommended)"},
{"label": "Strong", "description": "Highly opinionated, distinctive voice"}
]
}
Pronouns:
{
"question": "Which pronouns should be used?",
"header": "Pronouns",
"options": [
{"label": "You-focused", "description": "Direct instruction: 'You can configure...'"},
{"label": "We-inclusive", "description": "Collaborative: 'We'll explore...'"},
{"label": "Mixed (Recommended)", "description": "60% you, 40% we for balance"}
]
}
Contractions:
{
"question": "Should contractions be used?",
"header": "Contractions",
"options": [
{"label": "Yes (Recommended)", "description": "Use don't, can't, won't for natural flow"},
{"label": "No", "description": "Spell out 'do not', 'cannot' for formal tone"}
]
}
Confidence:
{
"question": "How confident should the writing sound?",
"header": "Confidence",
"options": [
{"label": "Hedged (0.2)", "description": "Qualifies claims: 'perhaps', 'might', 'it seems'"},
{"label": "Moderate (0.5)", "description": "Balanced certainty, qualifies only uncertain points (Recommended)"},
{"label": "Assertive (0.8)", "description": "Direct claims, no hedging: 'this is', 'do this'"}
]
}
Directness:
{
"question": "How directly should points be delivered?",
"header": "Directness",
"options": [
{"label": "Hedged", "description": "Softens delivery: 'you might want to consider'"},
{"label": "Balanced (Recommended)", "description": "Natural mix of direct and softened statements"},
{"label": "Blunt", "description": "Says it straight: 'do this', 'this is wrong'"}
]
}
Paragraph Length:
{
"question": "What paragraph length works best?",
"header": "Paragraph Length",
"options": [
{"label": "Short", "description": "2-3 sentences, quick and scannable"},
{"label": "Medium (Recommended)", "description": "4-5 sentences, standard prose rhythm"},
{"label": "Long", "description": "6+ sentences, detailed and thorough"}
]
}
Opening Style:
{
"question": "How should paragraphs typically open?",
"header": "Opening Style",
"options": [
{"label": "Direct", "description": "Lead with the main point"},
{"label": "Contextual", "description": "Set up context before the main point"},
{"label": "Anecdotal", "description": "Open with examples or stories"},
{"label": "Varied (Recommended)", "description": "Mix approaches across paragraphs"}
]
}
Transition Style:
{
"question": "How should paragraphs connect to each other?",
"header": "Transition Style",
"options": [
{"label": "Explicit", "description": "Clear transition words: 'However', 'Building on this'"},
{"label": "Organic (Recommended)", "description": "Natural flow without heavy connectors"},
{"label": "Minimal", "description": "Each paragraph stands independently"}
]
}
Sentence Starters:
{
"question": "How should sentences typically begin?",
"header": "Sentence Starters",
"options": [
{"label": "Pronoun-heavy", "description": "Most sentences start with I/You/We"},
{"label": "Varied (Recommended)", "description": "Mix of pronouns, topics, and clauses"},
{"label": "Formal-lead", "description": "Topic-first: 'The service accepts...'"}
]
}
Emotional Range:
{
"question": "How much emotional variation should the writing show?",
"header": "Emotional Range",
"options": [
{"label": "Flat", "description": "Consistent register, no emotional shifts"},
{"label": "Moderate (Recommended)", "description": "Measured variation, enthusiasm at highlights"},
{"label": "Dynamic", "description": "Full range: excitement, concern, amusement"}
]
}
Self-Correction:
{
"question": "Include self-correction markers ('actually', 'I mean', 'well')?",
"header": "Self-Correction",
"options": [
{"label": "Yes", "description": "Signals real-time thinking, adds authenticity"},
{"label": "No (Recommended)", "description": "Clean, pre-considered prose"}
]
}
Specificity:
{
"question": "How specific should the writing be?",
"header": "Specificity",
"options": [
{"label": "Abstract", "description": "Conceptual, allows generalizations"},
{"label": "Balanced (Recommended)", "description": "Mix of principles and concrete details"},
{"label": "Concrete", "description": "Specific examples, real names, actual numbers"}
]
}
Generate profile YAML based on responses
IMPORTANT: Never include a measurements section in profiles created through the architect. Measurements are populated exclusively by the voice-extractor from corpus analysis.
Ask where to save:
{
"question": "Where should I save this voice profile?",
"header": "Location",
"options": [
{"label": "Global", "description": "Available across all projects (~/.claude/style/voices/)"},
{"label": "Project", "description": "Only for this project (.style/voice.yaml)"}
]
}
Write the profile file
Confirm creation:
Created voice profile: technical-friendly
Location: ~/.claude/style/voices/technical-friendly.yaml
Characteristics:
- Formality: Balanced (0.6)
- Personality: Engaged (0.7)
- Pronouns: Mixed (you 60%, we 40%)
- Contractions: Yes
To use this profile:
- Set as project default: /prose:voice apply technical-friendly
- Use with content generation: /prose:write (will auto-detect)
Apply a voice profile to content.
Workflow:
Transformations include:
Show all available voice profiles.
Output:
## Available Voice Profiles
### Global Profiles (~/.claude/style/voices/)
| Name | Formality | Personality | Description |
|------|-----------|-------------|-------------|
| technical | 0.6 | 0.7 | Professional yet approachable |
| conversational | 0.4 | 0.8 | Casual, friendly tutorial style |
### Project Profile (.style/voice.yaml)
| Name | Formality | Personality | Description |
|------|-----------|-------------|-------------|
| docs-voice | 0.5 | 0.6 | Balanced documentation style |
**Active profile for this project:** docs-voice (project override)
Display details of a specific voice profile.
Output:
## Voice Profile: technical-friendly
**Location:** ~/.claude/style/voices/technical-friendly.yaml
### Characteristics
| Setting | Value | Description |
|---------|-------|-------------|
| Formality | 0.6 | Balanced (professional but approachable) |
| Personality | 0.7 | Engaged (expresses opinions) |
| First Person | Yes | Uses "I" and "we" |
| Contractions | Yes | Uses don't, can't, won't |
| Audience | Intermediate | Assumes some technical background |
### Sentence Patterns
- Mix short sentences: Yes
- Max consecutive similar: 3
- Average length target: 18 words
- Rhetorical questions: Yes
- Sentence starters: Varied
### Paragraph Patterns
- Average length: Medium
- Opening style: Varied
- Transition style: Organic
### Elaboration
- Specificity: Balanced
### Personality Traits
- Express opinions: Yes
- Acknowledge complexity: Yes
- Humor: Subtle
- Personal experience: Yes
- Emotional range: Moderate
- Self-correction: No
- Directness: Balanced
### Signature Phrases
- "Let me explain"
- "Here's the thing"
- "Worth noting"
- "The key insight is"
### Avoid Phrases
- "It goes without saying"
- "As everyone knows"
- "Obviously"
When no voice profile is explicitly configured (or when set to auto), the system automatically detects the most appropriate voice based on the user's request and content context.
IMPORTANT: When using auto-detection, always announce the detected voice:
Using [voice-name] voice for this content.
| Pattern | Voice | Triggers |
|---|---|---|
| Strong opinion | pov | "opinion", "argue", "position", "I think" |
| Building a case | reasoning | "propose", "RFC", "justify", "trade-offs" |
| Teaching | tutorial | "how to", "getting started", "step by step" |
| Storytelling | narrative | "story", "case study", "post-mortem" |
| Data-driven | analytical | "benchmark", "performance", "results" |
| Documentation | reference | "API", "reference", "specification" |
| Casual | conversational | "blog", "casual", "friendly", "README" |
| Default | technical | General technical writing |
Set in project or global config:
# .style/voice.yaml
voice: "auto"
Or specify a default with auto-fallback:
voice: "technical" # Primary voice
auto_detect: true # Override based on context when appropriate
The plugin includes 8 voice templates in knowledge-base/voice-templates/:
| Template | Formality | Personality | Variation | Use Case |
|---|---|---|---|---|
| technical | 0.6 | 0.6 | moderate | API docs, technical guides |
| conversational | 0.4 | 0.8 | high | Tutorials, blog posts, READMEs |
| pov | 0.5 | 0.9 | high | Op-eds, position papers, ADRs |
| reasoning | 0.6 | 0.7 | moderate | Proposals, RFCs, comparisons |
| tutorial | 0.3 | 0.7 | moderate | Getting started, how-tos |
| narrative | 0.4 | 0.8 | high | Post-mortems, case studies |
| analytical | 0.7 | 0.4 | low | Benchmarks, reports |
| reference | 0.8 | 0.2 | low | API reference, specifications |
Professional technical writing with moderate personality:
Friendly tutorial-style writing:
Strong opinion and advocacy:
Persuasive, evidence-based:
Friendly step-by-step instruction:
Storytelling and case studies:
Data-driven, objective:
Neutral, authoritative:
When applying a voice profile to content:
Increasing formality (toward 1.0):
Decreasing formality (toward 0.0):
Increasing personality (toward 1.0):
Decreasing personality (toward 0.0):
Target ratio from profile:
Mix short sentences:
Vary length:
When content-generator skill is active:
Voice profiles work WITH copyedit configuration:
Remember: Voice profiles add the human element that makes technical writing engaging. Clean writing without personality reads like AI; personality without clean writing reads like slop. Both are essential.