Aiwg soul-create
Generate a SOUL.md identity file from source material, interactive prompts, or an existing voice profile
install
source · Clone the upstream repo
git clone https://github.com/jmagly/aiwg
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jmagly/aiwg "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.agents/skills/soul-create" ~/.claude/skills/jmagly-aiwg-soul-create && rm -rf "$T"
manifest:
.agents/skills/soul-create/SKILL.mdsource content
soul-create
Generate a SOUL.md identity file from source material or interactive prompts.
Triggers
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
- "SOUL.md" / "project identity" → project soul/identity definition
- "write the soul file" → soul document creation
Behavior
When triggered, this skill generates a SOUL.md file following the community template structure. It can work from:
- Source material — writing samples, blog posts, tweets, essays
- Interactive prompts — guided questions to define identity
- Existing voice profile — bridge from AIWG voice profile to SOUL.md
- Natural language description — "a skeptical engineer who values simplicity"
Generation Process
-
Gather identity signals from input:
- Worldview patterns (what does this person believe?)
- Opinion patterns (what specific takes emerge?)
- Vocabulary fingerprint (signature terms, avoided terms)
- Rhetorical style (how are arguments structured?)
- Boundaries (what does this person refuse to do?)
- Contradictions (where are they inconsistent?)
-
Map to SOUL.md sections:
Section Source Signal Who I Am Self-description, background, context Worldview Recurring beliefs across samples Opinions Specific takes organized by domain Interests Topics that generate depth/enthusiasm Current Focus Active projects, recent themes Influences Referenced thinkers, cited works Vocabulary Terms with specific personal meanings Tensions Contradictory beliefs (a feature, not a bug) Boundaries What triggers refusal or pushback Pet Peeves What generates strong negative reactions -
Validate quality:
- Opinions must be specific enough to be falsifiable
- Vocabulary section must have actual terms, not categories
- Boundaries must be concrete, not platitudes
- Result should pass the prediction test: "could someone predict takes on new topics from this file?"
-
Output a complete SOUL.md file
Output Location
- Default:
(project root)./SOUL.md - Alternative:
./.aiwg/SOUL.md - Per-agent:
./.claude/agents/<name>.soul.md
Context Budget
Generated SOUL.md should target:
- Project soul: <5K tokens (~3,750 words)
- Agent soul: <2K tokens (~1,500 words)
Usage Examples
From Natural Language Description
User: "Create a soul for a senior engineer who is skeptical of frameworks, values simplicity, thinks most best practices are cargo cult, and has strong opinions about testing" Output: SOUL.md with: - Worldview: simplicity > cleverness, question defaults - Opinions: specific takes on testing, frameworks, complexity - Vocabulary: "accidental complexity", "cargo cult", "yak shaving" - Boundaries: won't add abstraction without clear benefit - Pet Peeves: "enterprise architecture", unnecessary indirection
From Existing Voice Profile
User: "Create a soul from our technical-authority voice profile" Process: 1. Read voice-framework/voices/templates/technical-authority.yaml 2. Extract tone dimensions, vocabulary, perspective 3. Expand into full identity (voice → who generates that voice) 4. Generate complementary sections (worldview, opinions, boundaries) Output: SOUL.md that produces content matching the voice profile
From Writing Samples
User: "Build a soul from these blog posts: ./samples/*.md" Process: 1. Analyze writing patterns across samples 2. Extract recurring themes, opinions, vocabulary 3. Identify contradictions and tensions 4. Map to SOUL.md sections 5. Generate calibration examples (good-outputs.md) Output: SOUL.md + examples/good-outputs.md
Interactive Mode
User: "Create a soul interactively" Questions: Q1: What's your background? What shaped your thinking? Q2: What do you believe that most people disagree with? Q3: What are your strongest opinions in your domain? Q4: What terms do you use in specific ways? Q5: Where are you contradictory or inconsistent? Q6: What will you never do or say? Q7: What triggers your pushback? Q8: Who influenced your thinking, and what did you take from each?
Integration
Voice Framework Bridge
If a voice profile exists for the same context, this skill:
- Uses voice dimensions as initial calibration
- Ensures SOUL.md and voice profile are complementary
- Offers to generate a compatible voice profile if none exists
After Creation
After generating SOUL.md, prompt:
SOUL.md created at ./SOUL.md (~2,400 tokens) Next steps: /soul-validate Check quality against best practices /soul-enable Wire into session context /soul-enhance Improve vague sections (future)
References
- @$AIWG_ROOT/agentic/code/addons/voice-framework/skills/voice-create/SKILL.md — Voice creation (parallel pattern)
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/commands/soul-enable.md — Enable enforcement
- @$AIWG_ROOT/docs/soul-md-guide.md — SOUL.md integration guide
- #437 — SOUL.md compatibility issue