plugins/voice/skills/voice-blend/SKILL.md
Combine multiple voice profiles with weighted mixing to create hybrid voices
npx skillsauth add jmagly/aiwg voice-blendInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Combine multiple voice profiles with weighted mixing to create hybrid voices.
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
When triggered, this skill:
Loads source voice profiles from:
voices/templates/).aiwg/voices/)~/.config/aiwg/voices/)Parses blend specification:
Interpolates dimensions:
Generates hybrid profile with clear lineage tracking
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
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
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
For each tone dimension:
blended_value = Σ(weight_i × value_i) / Σ(weight_i)
Structure settings use the dominant voice (highest weight):
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
Blended profiles are saved to:
.aiwg/voices/{name}.yaml (default)--output flag~/.config/aiwg/voices/ with --global flagvoice-create or built-in templatesvoice-applyvoice-analyze → voice-blend → voice-apply# 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
../voice-apply/scripts/voice_loader.py../../../schemas/voice-profile.schema.json../../voices/templates/data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.