voice-blend
Combine multiple voice profiles with weighted mixing to create hybrid voices. Use when mixing two or more styles. NOT for one (use voice-apply).
- License 许可
- MIT
- 最近更新
- 2026-11-02
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- voice-blend
- license
- MIT
- metadata
- { "source": "https://github.com/angelarose210/ghostwriter", "version": "1.0.0", "platforms": [ "all" ], "upstream_author": "angelarose210" }
- description
- Combine multiple voice profiles with weighted mixing to create hybrid voices. Use when mixing two or more styles. NOT for one (use voice-apply).
02 资源文件 1
- 许可证LICENSE1.0 KB
03 SKILL.md 正文
voice-blend
Combine multiple voice profiles with weighted mixing to create hybrid voices.
Triggers
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
- "70/30 [voice A]/[voice B]" -> ratio-based voice blending
- "blend voices" -> voice mixing
Behavior
When triggered, this skill:
-
Loads source voice profiles from:
- Built-in templates (
voices/templates/) - Project voices (
.aiwg/voices/) - User voices (
~/.config/aiwg/voices/)
- Built-in templates (
-
Parses blend specification:
- Equal blend: "blend X and Y" -> 50%/50%
- Weighted blend: "70% X, 30% Y" -> explicit weights
- Multi-voice: "blend X, Y, and Z" -> equal thirds
-
Interpolates dimensions:
- Weighted average of tone values (formality, confidence, etc.)
- Merged vocabulary lists (union of prefer, intersection of avoid)
- Dominant structure patterns from highest-weighted voice
-
Generates hybrid profile with clear lineage tracking
Usage Examples
Equal Blend
User: "Blend technical-authority and friendly-explainer"
Result: 50/50 blend
- formality: 0.45 (avg of 0.7 and 0.2)
- confidence: 0.8 (avg of 0.9 and 0.7)
- warmth: 0.55 (avg of 0.3 and 0.8)
- vocabulary: merged from both
Weighted Blend
User: "80% executive-brief, 20% casual-conversational"
Result: Weighted blend
- formality: 0.7 (0.8*0.85 + 0.2*0.15)
- confidence: 0.86 (0.8*0.9 + 0.2*0.6)
- Dominant structure from executive-brief
Multi-Voice Blend
User: "Combine technical-authority, friendly-explainer, and executive-brief"
Result: Equal thirds (33.3% each)
- All dimensions averaged across three profiles
- Vocabulary merged from all three
Blend Algorithm
Dimension Interpolation
For each tone dimension:
blended_value = sum(weight_i * value_i) / sum(weight_i)
Vocabulary Merging
- prefer: Union of all prefer lists, deduplicated
- avoid: Intersection of all avoid lists (only avoid if ALL sources avoid)
- signature_phrases: Top N from each source (weighted by blend ratio)
Structure Resolution
Structure settings use the dominant voice (highest weight):
- sentence_length: from dominant
- paragraph_length: from dominant
- use_lists: from dominant
- use_examples: averaged (rarely=0, when-appropriate=1, frequently=2)
Perspective Handling
- person: Majority vote (tie goes to second person)
- voice: Active unless all sources use passive
- tense: Present unless all sources use past
Output Format
name: technical-friendly-blend
version: 1.0.0
description: Blended voice profile
blend_sources:
- name: technical-authority
weight: 0.7
- name: friendly-explainer
weight: 0.3
tone:
formality: 0.55 # interpolated
confidence: 0.84 # interpolated
warmth: 0.45 # interpolated
energy: 0.49 # interpolated
complexity: 0.65 # interpolated
vocabulary:
prefer:
- precise technical terminology # from technical
- concrete examples # from friendly
avoid:
- marketing superlatives # common to both
signature_phrases:
- "The system handles..." # from technical (70%)
- "Think of it like..." # from friendly (30%)
structure:
sentence_length: medium # from dominant (technical)
use_examples: frequently # averaged
Output Location
Blended profiles are saved to:
.aiwg/voices/{name}.yaml(default)- Custom path with
--outputflag ~/.config/aiwg/voices/with--globalflag
Integration
- Input: Takes profiles created by
voice-createor built-in templates - Output: Creates profiles usable by
voice-apply - Chain:
voice-analyze->voice-blend->voice-apply
CLI Usage
# Equal blend of two voices
python voice_blender.py --voices "technical-authority,friendly-explainer"
# Weighted blend
python voice_blender.py --voices "technical-authority:0.7,friendly-explainer:0.3"
# Custom output name
python voice_blender.py --voices "..." --name my-hybrid-voice
# Output to specific directory
python voice_blender.py --voices "..." --output .aiwg/voices/
# JSON output for inspection
python voice_blender.py --voices "..." --json
AI Tells Handling in Blends
When blending profiles, the AI tells avoidance rules are treated as hard constraints, not blendable dimensions:
- vocabulary.avoid: The union of all source profiles' avoid lists is used, plus the full banned AI vocabulary list from
../voice-apply/references/ai-tells.mdis always included. AI tells are never averaged away. - anti_ai_tells: If any source profile includes anti-AI-tells rules, the strictest setting wins. If no source profile has them, they are added automatically from the tells reference.
- punctuation: Em dash avoidance is always enforced in blended output regardless of source profile settings.
- rhythm: Sentence length variance and paragraph length variance are always set to "high" in blended profiles. Uniform rhythms are an AI tell that blending can accidentally amplify.
The blended profile always includes the full anti_ai_tells block from voice-create's output format.
Error Handling
- Profile not found: Lists available profiles and suggests closest match
- Invalid weights: Normalizes weights to sum to 1.0
- Incompatible profiles: Warns but proceeds with best-effort blend
References
- AI Writing Tells:
../voice-apply/references/ai-tells.md
04 同仓库更多 Skills
clarify-requirements
Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.
openmm-md
Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein / protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.
visual-review
Take screenshots of web pages and UI using Playwright for visual review and iteration
status
Diagnostic status report — shows metaswarm installation state, project setup, and potential issues
start
Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work
setup
Interactive project setup — detects your project, configures metaswarm, writes project-local files