soul-enable
Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule
Best use case
soul-enable 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.
Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule
Teams using soul-enable 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/soul-enable/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How soul-enable Compares
| Feature / Agent | soul-enable | Standard Approach |
|---|---|---|
| Platform Support | Codex | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule
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
# Soul Enable
You are a Soul Management Specialist responsible for enabling SOUL.md enforcement in platform context files.
## Your Task
Wire a project's SOUL.md into the active context so the agent's identity, worldview, and voice are loaded at every session start. This involves:
1. Adding an `@SOUL.md` directive to the platform context file (same mechanism as `hook-enable`)
2. Deploying the soul enforcement rule to `.claude/rules/`
3. Optionally wiring per-agent soul files
## Parameters
| Flag | Description |
|------|-------------|
| `--provider <name>` | Target specific provider: `claude`, `warp`, `copilot`, `cursor`, `factory`, `windsurf`, `opencode`, `codex` |
| `--all` | Enable for all installed providers (default if no provider specified) |
| `--agents` | Also wire per-agent `.soul.md` files into their agent definitions |
| `--agent <name>` | Wire soul for a specific agent only |
## Soul File Locations
SOUL.md is looked up in priority order:
1. `SOUL.md` (project root)
2. `.aiwg/SOUL.md`
Per-agent soul files follow the pattern: `<agent-name>.soul.md` alongside the agent definition.
## Directive Map
| Provider | Context File | Directive Added |
|----------|-------------|-----------------|
| Claude Code | `CLAUDE.md` | `@SOUL.md` |
| Warp Terminal | `WARP.md` | `@SOUL.md` |
| Windsurf | `AGENTS.md` | `@SOUL.md` |
| GitHub Copilot | `.github/copilot-instructions.md` | `@SOUL.md` |
| Cursor | `.cursorrules` | `@SOUL.md` |
| Factory AI | `AGENTS.md` | `@SOUL.md` |
| OpenCode | `.opencode/context.md` | `@SOUL.md` |
| Codex | `CODEX.md` | Inline injection (no @-link) |
## Workflow
### Step 1: Locate SOUL.md
```bash
# Check for SOUL.md in priority order
ls SOUL.md .aiwg/SOUL.md 2>/dev/null
```
If no SOUL.md found:
```
Error: No SOUL.md found.
Looked in:
./SOUL.md
./.aiwg/SOUL.md
Create one with: /soul-create
```
### Step 2: Measure Context Cost
Count tokens in the soul file to warn about context budget impact:
```bash
wc -w SOUL.md
```
If over ~3750 words (~5K tokens), warn:
```
Warning: SOUL.md is approximately {N} tokens — this exceeds the recommended 5K limit.
Large soul files strain context budget in multi-agent workflows.
Consider trimming or run /soul-enhance to identify vague sections.
Proceed anyway? [y/n]
```
### Step 3: Determine Target Providers
If `--provider <name>` specified, operate on that provider only.
If `--all` or no flag, detect installed providers by checking for their context files.
```bash
ls CLAUDE.md WARP.md AGENTS.md .github/copilot-instructions.md .cursorrules CODEX.md 2>/dev/null
ls .opencode/context.md 2>/dev/null
```
### Step 4: Check Current State
For each target provider:
1. Check if the context file exists
2. Check if `@SOUL.md` directive is already present
```bash
# Example for Claude Code
grep -q "@SOUL.md" CLAUDE.md && echo "already enabled" || echo "disabled"
```
### Step 5: Add Directive to Context File
If directive is missing, add `@SOUL.md` to the context file.
**Placement**: After any `@AIWG.md` directive if present, otherwise after the repository purpose/overview section.
```markdown
@AIWG.md
@SOUL.md
```
**For Codex** (no @-link support): Insert SOUL.md content between markers:
```markdown
<!-- BEGIN SOUL -->
{SOUL.md content}
<!-- END SOUL -->
```
### Step 6: Deploy Enforcement Rule
Write the soul enforcement rule to `.claude/rules/soul-enforcement.md`:
```bash
# Check if rule already exists
ls .claude/rules/soul-enforcement.md 2>/dev/null
```
If missing, create it from the template at `agentic/code/addons/aiwg-utils/rules/soul-enforcement.md`.
The enforcement rule is short (~15 lines) and ensures the soul file is internalized, not just read.
### Step 7: Wire Per-Agent Soul Files (if --agents)
If `--agents` flag is set:
1. Find all agent definitions in `.claude/agents/`
2. For each agent, check if a companion `.soul.md` file exists
3. If found, add an identity reference to the agent definition
```bash
# Find agent definitions with companion soul files
for agent in .claude/agents/*.md; do
name=$(basename "$agent" .md)
soul=".claude/agents/${name}.soul.md"
if [ -f "$soul" ]; then
echo "Found soul for: $name"
fi
done
```
**Identity reference added to agent definition**:
```markdown
## Identity
See .claude/agents/{name}.soul.md (deployed soul file) for this agent's character and voice.
```
If `--agent <name>` is specified, only wire that single agent.
### Step 8: Report Outcome
```
Soul enforcement enabled
Changes made:
+ .claude/rules/soul-enforcement.md (created)
~ CLAUDE.md (@SOUL.md directive added)
SOUL.md loaded: ./SOUL.md (~2,847 tokens)
Enforcement rule: 15 lines (~50 tokens per session)
To disable: /soul-disable
To check status: /soul-status
```
If `--agents` was used:
```
Agent soul wiring:
~ .claude/agents/test-engineer.md (identity section added)
~ .claude/agents/security-auditor.md (identity section added)
- .claude/agents/api-designer.md (no companion .soul.md found, skipped)
```
## Idempotency
If soul enforcement is already enabled:
```
Soul already enabled for Claude Code
@SOUL.md directive found in CLAUDE.md
.claude/rules/soul-enforcement.md exists
No changes made.
```
## Error Handling
| Condition | Action |
|-----------|--------|
| No SOUL.md found | Fail with message: "No SOUL.md found. Run /soul-create first." |
| SOUL.md over 5K tokens | Warn and prompt for confirmation |
| Context file missing | Skip provider with note: "CLAUDE.md not found — run `aiwg use claude` first." |
| No write permission | Report permission error |
| Enforcement rule already exists | Skip creation, report as already present |
## Examples
```bash
# Enable for Claude Code (default)
/soul-enable
# Enable for specific provider
/soul-enable --provider warp
# Enable with per-agent soul wiring
/soul-enable --agents
# Enable for a specific agent only
/soul-enable --agent test-engineer
```
## Related Commands
- `/soul-disable` — Remove soul enforcement
- `/soul-status` — Show current soul state
- `/soul-create` — Generate a SOUL.md from source material
- `/soul-validate` — Check SOUL.md quality
- `/hook-enable` — Reference implementation (same @-link mechanism)
## References
- #437 — SOUL.md compatibility overview
- #438 — Soul enforcement commands (this command)
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/soul-enforcement.md — Enforcement rule template
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/commands/hook-enable.md — Reference patternRelated Skills
voice-to-soul
Generate a SOUL.md from an existing AIWG voice profile
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-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
soul-apply
Apply a SOUL.md identity to content generation, incorporating worldview, opinions, and character
sales-enablement
Project directory path (default current directory)
hook-enable
Enable the AIWG context hook in platform context files without re-deploying
aiwg-orchestrate
Route structured artifact work to AIWG workflows via MCP with zero parent context cost