Codex

soul-create

Generate a SOUL.md identity file from source material, interactive prompts, or an existing voice profile

104 stars

Best use case

soul-create 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 identity file from source material, interactive prompts, or an existing voice profile

Teams using soul-create 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

$curl -o ~/.claude/skills/soul-create/SKILL.md --create-dirs "https://raw.githubusercontent.com/jmagly/aiwg/main/.agents/skills/soul-create/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/soul-create/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How soul-create Compares

Feature / Agentsoul-createStandard Approach
Platform SupportCodexLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Generate a SOUL.md identity file from source material, interactive prompts, or an existing 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

SKILL.md Source

# 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**:

   | 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 |

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

Related Skills