Best use case
voice-to-soul is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
It is a strong fit for teams already working in Codex.
Generate a SOUL.md from an existing AIWG voice profile
Teams using voice-to-soul should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/voice-to-soul/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How voice-to-soul Compares
| Feature / Agent | voice-to-soul | Standard Approach |
|---|---|---|
| Platform Support | Codex | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate a SOUL.md from an existing AIWG voice profile
Which AI agents support this skill?
This skill is designed for Codex.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
Cursor vs Codex for AI Workflows
Compare Cursor and Codex for AI coding workflows, repository assistance, debugging, refactoring, and reusable developer skills.
AI Agents for Coding
Browse AI agent skills for coding, debugging, testing, refactoring, code review, and developer workflows across Claude, Cursor, and Codex.
AI Agents for Marketing
Discover AI agents for marketing workflows, from SEO and content production to campaign research, outreach, and analytics.
SKILL.md Source
# 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)Related Skills
voice-create
Generate custom voice profiles from natural language descriptions by mapping tone, formality, and domain to voice dimensions
voice-blend
Combine multiple voice profiles with weighted mixing to create hybrid voices
voice-apply
Applies a voice profile to transform content. Use when user asks to write in a specific voice, match a tone, apply a style, or transform content to sound like a particular voice profile.
voice-analyze
Reverse-engineer voice profiles from sample content by analyzing writing patterns
soul-validate
Validate a SOUL.md file against community best practices and quality criteria
soul-to-voice
Generate an AIWG voice profile from an existing SOUL.md identity file
soul-status
Show SOUL.md enforcement state across all installed providers with quality check
soul-enhance
Improve an existing SOUL.md by identifying vague sections, suggesting missing content, and generating calibration examples
soul-enable
Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule
soul-disable
Disable soul enforcement without deleting SOUL.md or soul files
soul-create
Generate a SOUL.md identity file from source material, interactive prompts, or an existing voice profile
soul-blend
Merge multiple SOUL.md files into a composite persona for team-level agents or multi-perspective characters