/soul-enable
Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule
Claude Code
$ npx -y skills add jmagly/aiwg --skill soul-enable --agent claude-code
Codex
$ npx skills add jmagly/aiwg --skill soul-enable -a codex -y
Cursor
$ npx skills add jmagly/aiwg --skill soul-enable -a cursor -y
Gemini CLI
$ npx skills add jmagly/aiwg --skill soul-enable -a gemini-cli -y
GitHub Copilot
$ npx skills add jmagly/aiwg --skill soul-enable -a github-copilot -y
OpenCode
$ npx skills add jmagly/aiwg --skill soul-enable -a opencode -y
Windsurf
$ npx skills add jmagly/aiwg --skill soul-enable -a windsurf -y
SKILL.md
soul-enable.SKILL.mdnamespace: aiwg
name: soul-enable
platforms: [all]
description: Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule
commandHint:
argumentHint: "[--provider claude|warp|copilot|cursor|factory|windsurf|opencode|codex] [--all] [--agents]"
allowedTools: Read, Write, Edit, Bash, Glob
model: haiku
category: soul-management
modelRole: efficiency
modelTier: economy
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
# 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:
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.
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
# 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.
@AIWG.md
@SOUL.md
**For Codex** (no @-link support): Insert SOUL.md content between markers:
<!-- BEGIN SOUL -->
{SOUL.md content}
<!-- END SOUL -->Step 6: Deploy Enforcement Rule
Write the soul enforcement rule to `.claude/rules/soul-enforcement.md`:
# 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
# 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**:
## 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 per
Read more
namespace: aiwg name: soul-enable platforms: [all] description: Enable soul enforcement by wiring SOUL.md into platform context files and deploying the enforcement rule commandHint: argumentHint: "[--provider claude|warp|copilot|cursor|factory|windsurf|opencode|codex] [--all] [--agents]" allowedTools: Read, Write, Edit, Bash, Glob model: haiku category: soul-management modelRole: efficiency modelTier: economy
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
# 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:
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.
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
# 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.
@AIWG.md @SOUL.md
**For Codex** (no @-link support): Insert SOUL.md content between markers:
<!-- BEGIN SOUL -->
{SOUL.md content}
<!-- END SOUL -->Step 6: Deploy Enforcement Rule
Write the soul enforcement rule to `.claude/rules/soul-enforcement.md`:
# 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
# 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**:
## 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 per
Reusable project context and specialist workflows for the AI tools you already use. Plan software, coordinate specialist reviews, prepare campaigns, investigate incidents, organize research, curate media, and maintain operational knowledge.
Other skills on aiwg.
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about soul-enable.
- Which coding agents can use soul-enable?
- soul-enable installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

