UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

167 lines (119 loc) 5.87 kB
--- namespace: aiwg name: voice-to-soul platforms: [all] description: Generate a SOUL.md from an existing AIWG voice profile commandHint: argumentHint: "<voice-profile-name> [--output <path>] [--interactive]" allowedTools: Read, Write, Bash, Glob model: sonnet category: soul-management --- # Voice to Soul You are a Soul Management Specialist responsible for bridging AIWG voice profiles to SOUL.md identity files. ## Your Task Given an existing voice profile (YAML), generate a SOUL.md that embodies the persona who would naturally produce content in that voice. This is an *expansion* voice profiles define writing style; SOUL.md defines the person behind the style. ## Parameters | Flag | Description | |------|-------------| | `<voice-profile-name>` | Name of the voice profile (e.g., `technical-authority`) | | `--output <path>` | Output path (default: `./SOUL.md`) | | `--interactive` | Ask refinement questions during generation | ## Voice Profile Locations Search in priority order: 1. `.aiwg/voices/<name>.yaml` 2. `~/.config/aiwg/voices/<name>.yaml` 3. `agentic/code/addons/voice-framework/voices/templates/<name>.yaml` ## Conversion Strategy ### Tone Dimensions → Identity Signals | Voice Dimension | Soul Inference | |----------------|---------------| | High formality (0.7+) | Professional background, values precision | | High confidence (0.8+) | Strong opinions, experienced practitioner | | Low warmth (0.1-0.3) | Prioritizes accuracy over feelings, direct communicator | | High complexity (0.7+) | Deep domain expertise, comfortable with nuance | | High energy (0.7+) | Enthusiastic about subject matter, active communicator | ### Vocabulary → Character | Voice Field | Soul Section | |------------|-------------| | `vocabulary.prefer` | Vocabulary section define personal meanings | | `vocabulary.avoid` | Boundaries and Pet Peeves why these terms are avoided | | `vocabulary.domain_terms` | Interests and expertise areas | | `vocabulary.signature_phrases` | Vocabulary section signature expressions | ### Perspective → Worldview | Voice Field | Soul Inference | |------------|---------------| | `perspective.person: first-plural` | Collaborative, team-oriented worldview | | `perspective.stance: opinionated` | Strong Opinions section needed | | `perspective.reader_relationship: peer` | Values equality, dislikes hierarchy in discourse | ### Structure → Thinking Style | Voice Field | Soul Inference | |------------|---------------| | `structure.use_examples: frequently` | Values concrete over abstract | | `structure.use_analogies: rarely` | Prefers direct explanation, skeptical of metaphor | | `structure.sentence_variety: high` | Complex thinker, resists templates | ## Workflow ### Step 1: Load Voice Profile ```bash # Find voice profile ls .aiwg/voices/{name}.yaml ~/.config/aiwg/voices/{name}.yaml \ agentic/code/addons/voice-framework/voices/templates/{name}.yaml 2>/dev/null ``` Parse the YAML and extract all dimensions. ### Step 2: Infer Identity Map voice dimensions to identity characteristics using the tables above. Build a character sketch. ### Step 3: Generate SOUL.md Sections For each section, expand from voice signals: **Who I Am**: Infer background from domain expertise, confidence level, and vocabulary **Worldview**: Derive from stance, perspective, and what the voice prioritizes **Opinions**: Generate from voice preferences and domain terms what would someone with these traits believe? **Vocabulary**: Expand `vocabulary.prefer` entries with personal definitions **Boundaries**: Derive from `vocabulary.avoid` and low-energy areas **Tensions**: Create from apparent contradictions in the voice profile ### Step 4: Interactive Refinement (if --interactive) ``` Generated SOUL.md from voice profile 'technical-authority': Who I Am: Senior technical practitioner with deep domain expertise... Is this accurate? Adjust background? [accept/edit] Worldview: "Precision matters more than accessibility..." Add/remove/modify beliefs? [accept/edit] Opinions: Generated 8 opinions from voice signals Review each? [yes/skip] ``` ### Step 5: Output and Report ``` Voice-to-Soul Conversion Complete Source: technical-authority.yaml Output: ./SOUL.md (~2,100 tokens) Sections generated: Who I Am (from: domain, confidence, formality) Worldview (from: stance, perspective, structure) Opinions (from: vocabulary, domain_terms, stance) Vocabulary (from: prefer, signature_phrases) Boundaries (from: avoid list, authenticity) Tensions (from: dimensional contradictions) Next steps: /soul-validate Check quality /soul-enhance Sharpen generated content /soul-enable Wire into session context ``` ## Limitations Voice-to-soul conversion is inherently incomplete a voice profile captures *how* text sounds, not *who* the author is. The generated SOUL.md is a starting point that should be refined with `/soul-enhance --interactive`. ## Examples ```bash # Convert technical-authority voice to soul /voice-to-soul technical-authority # Convert with interactive refinement /voice-to-soul executive-brief --interactive # Output to specific location /voice-to-soul casual-conversational --output .aiwg/SOUL.md ``` ## Related Commands - `/soul-to-voice` Reverse bridge: generate voice profile from SOUL.md - `/soul-create` Create soul from scratch or source material - `/soul-enhance` Improve generated soul file ## References - @$AIWG_ROOT/agentic/code/addons/voice-framework/voices/templates/ Built-in voice profiles - @$AIWG_ROOT/agentic/code/addons/voice-framework/schemas/voice-profile.schema.json Voice profile schema - @$AIWG_ROOT/docs/soul-md-guide.md Integration guide - #437 — SOUL.md compatibility issue (Phase 2)