soul-enhance
Improve an existing SOUL.md by identifying vague sections, suggesting missing content, and generating calibration examples
What this skill does
# soul-enhance
Improve an existing SOUL.md by identifying vague sections, suggesting missing content, and generating calibration examples.
## Triggers
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
- "improve the soul" → soul quality enhancement
- "soul needs work" → soul refinement trigger
## Behavior
When triggered, this skill analyzes an existing SOUL.md and makes targeted improvements. It does not rewrite the file from scratch — it preserves the author's intent while strengthening weak areas.
### Enhancement Process
1. **Load and validate** the existing SOUL.md (runs soul-validate internally)
2. **Identify improvement targets** from the validation report
3. **Apply enhancements** category by category
4. **Generate companion files** if missing
5. **Report changes** with before/after comparisons
### Enhancement Categories
#### 1. Vague Statement Resolution
Scans for language patterns that are too generic to be useful:
| Vague Pattern | Enhancement Approach |
|--------------|---------------------|
| "I have nuanced views on X" | Ask: "What specifically do you believe about X?" |
| "I value quality" | Ask: "What does quality mean to you? What would you sacrifice for it?" |
| "I'm experienced with Y" | Ask: "How many years? What specifically have you built?" |
| "I believe in best practices" | Ask: "Which practices? Which 'best practices' do you think are wrong?" |
| "I'm passionate about Z" | Replace with concrete opinions about Z |
For each vague statement:
- Prompt the user with a sharpening question
- If interactive, wait for response and incorporate
- If non-interactive, suggest 2-3 specific alternatives based on context
#### 2. Missing Section Generation
For each missing recommended section, generate a draft:
| Missing Section | Generation Strategy |
|----------------|-------------------|
| Standards | Propose a bar-for-completion paragraph + dangling-thread examples + complete-vs-fast resolution. Infer from opinions and pet peeves about quality, shipping, and "good enough." Surface as a draft for the author to confirm. |
| Boundaries | Infer from opinions — strong opinions imply boundaries |
| Tensions | Find contradictions between stated opinions |
| Vocabulary | Extract signature terms from existing text |
| Pet Peeves | Infer from boundaries and strong opinions |
| Influences | Ask user or leave as TODO |
#### 3. Opinion Strengthening
Opinions must be specific enough to be falsifiable:
```
Before: "I think testing is important"
After: "Integration tests catch more real bugs than unit tests.
80% coverage with real calls beats 95% with mocked everything."
```
For each opinion:
- Check: could someone disagree with this?
- Check: is this specific to this persona or generic?
- If too generic, strengthen with specifics from the existing worldview
#### 4. Vocabulary Extraction
If the vocabulary section is empty or category-level:
1. Scan the entire SOUL.md for terms used in specific ways
2. Identify jargon, metaphors, and signature phrases
3. Add definitions that show personal meaning, not dictionary meaning
```
Before:
## Vocabulary
- Technical terms
After:
## Vocabulary
- **Blast radius**: How many things break when this thing breaks — my primary metric for evaluating changes
- **Yak shaving**: Work that's 3+ steps removed from the actual goal — I kill yak-shaving sessions aggressively
- **Accidental complexity**: Complexity from our tools and choices, not the problem domain — most complexity I encounter is accidental
```
#### 5. Calibration Example Generation
Generate `examples/good-outputs.md` and `examples/bad-outputs.md` from the soul definition:
**good-outputs.md**: 3-5 examples of text that correctly embodies the soul
- Match tone, vocabulary, opinions
- Cover different domains mentioned in the soul
- Include the contradictions/tensions
**bad-outputs.md**: 3-5 anti-examples showing what the soul would NOT produce
- Generic text that could come from anyone
- Text that contradicts stated opinions
- Text that uses avoided vocabulary
- Text that breaks stated boundaries
#### 6. Context Budget Optimization
If the soul file exceeds recommended limits:
- Identify sections that could be more concise
- Suggest moving detailed examples to companion files
- Flag redundancies between sections
- Recommend a target token count per section
## Parameters
| Flag | Description |
|------|-------------|
| `--interactive` | Ask sharpening questions for each vague statement |
| `--sections <list>` | Only enhance specific sections: `--sections "opinions,vocabulary"` |
| `--generate-examples` | Force generation of calibration examples |
| `--dry-run` | Show proposed changes without applying them |
## Output
### Interactive Mode
```
Enhancing SOUL.md...
Found 3 vague statements:
1. Line 14: "I value clean code"
→ What does "clean" mean to you specifically?
→ What would you sacrifice for clean code? What wouldn't you?
User: "Clean means I can read it at 3 AM. I'll sacrifice DRY for readability."
✓ Updated: "Clean code is code I can read at 3 AM during an incident.
I'll sacrifice DRY for readability — duplicated clarity beats obscure abstractions."
2. Line 31: "I have experience with many frameworks"
→ Which frameworks? What did each teach you?
User: "Rails taught me convention, React taught me composition, Django taught me batteries-included"
✓ Updated: "I've built production systems in Rails (conventions),
React (composition), and Django (batteries-included)."
3. Line 45: "I'm interested in distributed systems"
→ What specifically? Consensus? Networking? Data replication?
User: "Consensus algorithms and failure modes"
✓ Updated: "I've spent a decade thinking about consensus algorithms
and the creative ways distributed systems fail."
Missing sections generated:
+ Boundaries (5 items inferred from opinions)
+ Tensions (3 contradictions identified)
Calibration examples:
+ examples/good-outputs.md (4 examples)
+ examples/bad-outputs.md (3 anti-examples)
Score: 5/10 → 8/10
```
### Non-Interactive Mode
```
Enhancing SOUL.md...
Changes applied:
~ Line 14: Strengthened vague opinion (2 alternatives provided, chose first)
~ Line 31: Replaced generic statement with specific alternative
~ Line 45: Sharpened interest description
+ Boundaries section (5 items)
+ Tensions section (3 contradictions)
+ examples/good-outputs.md (4 examples)
+ examples/bad-outputs.md (3 anti-examples)
Score: 5/10 → 8/10
Review changes with: git diff SOUL.md
```
## Integration
### With soul-validate
`soul-enhance` runs `soul-validate` internally as its first step. The validation report drives which enhancements are applied.
### With soul-enable
After enhancement, if soul enforcement is already enabled, the improved SOUL.md is automatically active at the next session — no re-enabling needed.
### With voice-create
If a voice profile exists, `soul-enhance` cross-references it to ensure consistency. If the soul file mentions vocabulary that conflicts with the voice profile's avoid-list, it flags the conflict.
## Examples
```bash
# Full enhancement (interactive)
/soul-enhance --interactive
# Enhance specific sections only
/soul-enhance --sections "opinions,vocabulary,boundaries"
# Generate calibration examples without other changes
/soul-enhance --generate-examples
# Preview changes without applying
/soul-enhance --dry-run
# Enhance an agent soul file
/soul-enhance .claude/agents/test-engineer.soul.md
```
## References
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/soul-validate/SKILL.md — Validation (used internally)
- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/skills/soul-create/SKILL.md — Creation skill
- @$AIWG_ROOT/docs/soul-md-guide.md — Integration guide
- #437 — SOUL.md compatibility issue (Phase 2)
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.