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.md
source 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:

  1. Source material — writing samples, blog posts, tweets, essays
  2. Interactive prompts — guided questions to define identity
  3. Existing voice profile — bridge from AIWG voice profile to SOUL.md
  4. Natural language description — "a skeptical engineer who values simplicity"

Generation Process

  1. 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?)
  2. Map to SOUL.md sections:

    SectionSource Signal
    Who I AmSelf-description, background, context
    WorldviewRecurring beliefs across samples
    OpinionsSpecific takes organized by domain
    InterestsTopics that generate depth/enthusiasm
    Current FocusActive projects, recent themes
    InfluencesReferenced thinkers, cited works
    VocabularyTerms with specific personal meanings
    TensionsContradictory beliefs (a feature, not a bug)
    BoundariesWhat triggers refusal or pushback
    Pet PeevesWhat generates strong negative reactions
  3. 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?"
  4. Output a complete SOUL.md file

Output Location

  • Default:
    ./SOUL.md
    (project root)
  • 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