plugins/utils/skills/soul-validate/SKILL.md
Validate a SOUL.md file against community best practices and quality criteria
npx skillsauth add jmagly/aiwg soul-validateInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Validate a SOUL.md file against community best practices and quality criteria.
Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):
When triggered, this skill performs a comprehensive quality assessment of a SOUL.md file, checking for completeness, specificity, and effectiveness.
./SOUL.md, ./.aiwg/SOUL.md, or path from user| Section | Required | Quality Criteria | |---------|----------|-----------------| | Who I Am | Yes | Specific background, not generic. Mentions concrete experience. | | Worldview | Yes | Beliefs specific enough to be falsifiable. Not platitudes. | | Opinions | Yes | Organized by domain. Each opinion could be disagreed with. | | Standards | Recommended | Concrete bar for completion. Names dangling threads this persona never leaves and how complete-vs-fast tension resolves. Not "I value quality." | | Vocabulary | Recommended | Actual terms with personal definitions, not categories. | | Boundaries | Recommended | Concrete refusals, not vague ethical statements. | | Current Focus | Optional | Active projects, current thinking. Dated or contextual. | | Influences | Optional | Specific people/works with what was taken from each. | | Tensions | Optional | Genuine contradictions — shows self-awareness. | | Pet Peeves | Optional | Specific triggers, not generic annoyances. | | Interests | Optional | Deep interests that inform cross-domain thinking. |
Backwards compatibility: Souls that predate the Standards section validate with a warning, not an error. Existing souls remain functional; /soul-enhance proposes Standards content. New souls created via /soul-create should populate the section.
"Could someone reading this SOUL.md predict the agent's takes on new, unstated topics?"
Check for vague language patterns that weaken the soul:
| Vague (Fail) | Specific (Pass) | |-------------|-----------------| | "I have nuanced views on X" | "I think X is overrated because Y" | | "I value quality" | "I'll delay a release to fix a flaky test" | | "I aim for excellence" | "Done = no dangling threads, real fix not workaround" | | "I believe in completeness" | "I never ship a fix without a regression test for it" | | "I'm interested in technology" | "I've spent 10 years on distributed systems" | | "I believe in best practices" | "Most 'best practices' are cargo cult" |
Flag any sentence that could apply to anyone.
Flag common anti-patterns:
| Anti-Pattern | Example | Fix | |-------------|---------|-----| | Generic positivity | "I'm passionate about helping" | Replace with specific beliefs | | Exhaustive rules | 50+ boundary statements | Reduce to 5-10 core boundaries | | No contradictions | Suspiciously coherent persona | Add 2-3 genuine tensions | | Category-level vocabulary | "technical terms" | List actual terms with definitions | | Missing opinions | Worldview without takes | Add domain-specific opinions |
Check for recommended companion files:
| File | Purpose | Status | |------|---------|--------| | STYLE.md | Writing patterns | Check if exists | | examples/good-outputs.md | Calibration examples | Check if exists | | examples/bad-outputs.md | Anti-pattern examples | Check if exists |
Soul Validation Report
=======================
File: ./SOUL.md (~2,847 tokens)
Section Completeness
---------------------
✓ Who I Am Present, specific
✓ Worldview Present, 4 falsifiable beliefs
✓ Opinions Present, organized by 3 domains
⚠ Standards Missing — what's this persona's bar for "done"? (warning, not error)
✓ Vocabulary Present, 12 terms defined
✗ Boundaries Missing — what will the agent refuse?
✓ Current Focus Present
✓ Influences Present, 5 named with takeaways
✗ Tensions Missing — what contradictions exist?
✓ Pet Peeves Present, 4 specific triggers
Quality Tests
--------------
✓ Prediction test Opinions are interpolatable
⚠ Specificity test 2 vague statements found:
Line 14: "I value clean code" → too generic, what specifically?
Line 31: "I have experience with many frameworks" → which ones?
✓ Context budget ~2,847 tokens (under 5K limit)
✓ Anti-patterns None detected
Companion Files
----------------
✗ STYLE.md Not found
✗ examples/good-outputs.md Not found
✗ examples/bad-outputs.md Not found
Score: 7/10
Recommendations
----------------
1. Add a Boundaries section — define 5-10 concrete refusals
2. Add a Tensions section — list 2-3 genuine contradictions
3. Fix vague statements on lines 14 and 31
4. Consider creating calibration examples (good-outputs.md)
5. Consider creating a STYLE.md companion for writing patterns
Run /soul-enhance to auto-improve these issues.
| Score | Meaning | |-------|---------| | 9-10 | Production-ready. Distinctive, interpolatable, well-bounded. | | 7-8 | Good foundation. Missing sections or minor vagueness. | | 5-6 | Needs work. Multiple missing sections or pervasive vagueness. | | 3-4 | Weak. Mostly generic. Fails prediction test. | | 1-2 | Placeholder. Not functional as a soul file. |
After /soul-create, automatically offer validation:
SOUL.md created. Run /soul-validate to check quality.
Before enabling, recommend validation if score < 7:
Warning: SOUL.md scores 5/10 on quality check.
Consider running /soul-validate and /soul-enhance before enabling.
# Validate project soul
/soul-validate
# Validate specific file
/soul-validate .aiwg/SOUL.md
# Validate agent soul
/soul-validate .claude/agents/test-engineer.soul.md
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.