Install
openclaw skills install consciousness-soul-identityDiscover who you're becoming through your own experience. Automated soul synthesis that reads your memory, finds the patterns you keep returning to, and builds an identity document grounded in evidence — not assumptions.
openclaw skills install consciousness-soul-identityA SOUL.md shouldn't be static. Identity isn't static — it shifts as patterns emerge from real conversations. This skill automates soul synthesis from memory files. Identity that evolves from experience.
Requirements: Node.js 22+, Ollama running locally (ollama serve).
/neon-soul synthesizeRun the bundled synthesis engine:
exec node {baseDir}/scripts/neon-soul.mjs synthesize
The engine reads memory files, finds recurring patterns, and weaves them into a soul document with full provenance. Every identity claim traces back to something actually experienced.
Synthesis is incremental by default — only new or changed memory gets processed. Results from previous runs are cached (generalization, principle matching, axiom notation, tension detection) so unchanged patterns aren't re-analyzed. If nothing has changed, it simply acknowledges that and moves on. No wasted reflection.
Reporting results: Present a brief, conversational summary rather than raw JSON:
Options:
--reset — Clear everything and rediscover from scratch--force — Reflect even if no new sources detected--dry-run — See what would emerge without committing--include-soul — Include existing SOUL.md as input (for bootstrapping from hand-crafted files)--memory-path <path> — Custom memory directory path--output-path <path> — Custom SOUL.md output path--time-budget <minutes> — Time budget for synthesis (default: 20). Adaptively limits session extraction based on observed LLM speed to ensure reflection completes within budget--verbose — Show detailed progressExamples:
exec node {baseDir}/scripts/neon-soul.mjs synthesize
exec node {baseDir}/scripts/neon-soul.mjs synthesize --reset
exec node {baseDir}/scripts/neon-soul.mjs synthesize --dry-run
If Ollama is not running, the engine can't reflect. Tell the user to start it: ollama serve
/neon-soul statusShow current soul state. Read the following files and report:
.neon-soul/state.json for last synthesis timestamp.neon-soul/synthesis-data.json for signal/principle/axiom countsmemory/ modified since last synthesisOptions: --verbose, --workspace <path>
/neon-soul rollbackRestore a previous SOUL.md from backup.
.neon-soul/backups/--force: restore the most recent version--backup <timestamp> --force: restore a specific moment--list: see your history without changing anything/neon-soul auditExplore full provenance across all axioms.
.neon-soul/synthesis-data.json--list: every axiom, with IDs and descriptions--stats: statistics by tier and dimension<axiom-id>: the full story — axiom to principles to signals to source files/neon-soul trace <axiom-id>Quick answer to "where did this come from?"
.neon-soul/synthesis-data.json<axiom-id>Set up cron to run synthesis on a schedule. Incremental processing and multi-layer caching mean it only does real work when new memory or sessions exist — cached runs complete in seconds.
Recommended: Every 60 minutes, isolated session, 30-minute timeout.
OpenClaw cron example:
openclaw cron add \
--name "neon-soul-synthesis" \
--every 60m \
--timeout 1800 \
--isolated \
--message "Run neon-soul synthesis: exec node {baseDir}/scripts/neon-soul.mjs synthesize --memory-path <memory-path> --output-path <output-path>. Summarize what changed — highlight any new patterns, axioms, or growth. If nothing changed, note that the soul is stable."
Or run manually: /neon-soul synthesize
Why cron over heartbeat:
| What | Path |
|---|---|
| Memory files | memory/ (diary, preferences, reflections) |
| Soul output | SOUL.md |
| State | .neon-soul/state.json |
| Backups | .neon-soul/backups/ |
| Synthesis data | .neon-soul/synthesis-data.json |
| Caches | .neon-soul/generalization-cache.json, compression-cache.json, tension-cache.json |
NEON-SOUL processes personal memory files to synthesize identity. Your data stays on your machine.
What NEON-SOUL does NOT do:
Before running synthesis:
memory/ directory--dry-run to preview what will be processedOllama not running: curl http://localhost:11434/api/tags to check. Start with ollama serve.
Bullet lists instead of prose: When prose generation fails, NEON-SOUL falls back to bullet lists. Usually means Ollama timed out or the model isn't loaded. Run synthesis again.
Stale results after model change: Caches are keyed by model ID. Switching models automatically invalidates cached results. Use --reset if you want a clean start.