{
  "schemaVersion": "1.0",
  "item": {
    "slug": "neon-soul",
    "name": "NEON-SOUL - Self-Learning Soul Synthesis for AI Agents",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/leegitw/neon-soul",
    "canonicalUrl": "https://clawhub.ai/leegitw/neon-soul",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/neon-soul",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=neon-soul",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/neon-soul.mjs"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/neon-soul"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/neon-soul",
    "agentPageUrl": "https://openagent3.xyz/skills/neon-soul/agent",
    "manifestUrl": "https://openagent3.xyz/skills/neon-soul/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/neon-soul/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "NEON-SOUL",
        "body": "Automated soul synthesis for AI agents. Reads memory files, finds recurring patterns, generates SOUL.md with provenance tracking. No questionnaires, no templates — identity emerges from real conversations.\n\nRequirements: Node.js 22+, Ollama running locally (ollama serve)."
      },
      {
        "title": "/neon-soul synthesize",
        "body": "Run the bundled processing engine. This is a single exec command:\n\nexec node {baseDir}/scripts/neon-soul.mjs synthesize\n\nSynthesis is incremental by default — only new/changed memory files and sessions are processed. Existing signals are preserved and merged with new ones. Results from previous runs are cached (generalization, principle matching, axiom notation, tension detection) so unchanged data is never re-processed. If nothing changed since the last run, synthesis skips automatically.\n\nThe script auto-detects Ollama, reads memory files, extracts signals, promotes axioms, and generates SOUL.md. It outputs JSON.\n\nReporting results: Don't dump raw JSON. Present a brief, conversational summary:\n\nIf new axioms emerged or counts changed: highlight what grew (e.g. \"3 new signals crystallized into axioms — your soul is deepening\")\nIf nothing changed: a short one-liner is fine (e.g. \"Soul is stable, no new patterns detected\")\nIf it failed: explain clearly what went wrong and suggest a fix\nInclude key numbers naturally (axiom count, signal count) but don't list every field\nKeep the tone reflective and warm — this is about the user's identity evolving, not a build log\n\nOptions:\n\n--reset — Clear all synthesis data and caches, re-extract from scratch\n--force — Run even if no new sources detected\n--dry-run — Preview changes without writing\n--include-soul — Include existing SOUL.md as input (for bootstrapping from hand-crafted files)\n--memory-path <path> — Custom memory directory path\n--output-path <path> — Custom SOUL.md output path\n--time-budget <minutes> — Time budget for synthesis (default: 20). Adaptively limits session extraction based on observed LLM speed to ensure synthesis completes within budget\n--verbose — Show detailed progress\n\nExamples:\n\nexec node {baseDir}/scripts/neon-soul.mjs synthesize\nexec node {baseDir}/scripts/neon-soul.mjs synthesize --reset\nexec node {baseDir}/scripts/neon-soul.mjs synthesize --force\nexec node {baseDir}/scripts/neon-soul.mjs synthesize --dry-run\n\nIf Ollama is not running, the script prints an error. Tell the user to start Ollama: ollama serve"
      },
      {
        "title": "/neon-soul status",
        "body": "Show current soul state. Read the following files and report:\n\nRead .neon-soul/state.json for last synthesis timestamp\nRead .neon-soul/synthesis-data.json for signal/principle/axiom counts\nCount files in memory/ modified since last synthesis\nReport dimension coverage (7 SoulCraft dimensions)\n\nOptions: --verbose, --workspace <path>"
      },
      {
        "title": "/neon-soul rollback",
        "body": "Restore previous SOUL.md from backup.\n\nList backups in .neon-soul/backups/\nWith --force: restore most recent backup\nWith --backup <timestamp> --force: restore specific backup\nWith --list: show available backups without restoring"
      },
      {
        "title": "/neon-soul audit",
        "body": "Explore provenance across all axioms.\n\nRead .neon-soul/synthesis-data.json\nWith --list: show all axioms with IDs and descriptions\nWith --stats: show statistics by tier and dimension\nWith <axiom-id>: show full provenance tree (axiom -> principles -> signals -> source files)"
      },
      {
        "title": "/neon-soul trace <axiom-id>",
        "body": "Quick single-axiom provenance lookup.\n\nRead .neon-soul/synthesis-data.json\nFind the axiom matching <axiom-id>\nShow: axiom text, contributing principles, source signal file:line references"
      },
      {
        "title": "Scheduled Synthesis",
        "body": "Set up cron to run synthesis automatically. Incremental processing and multi-layer caching mean it only does real work when new memory or sessions exist — cached runs complete in seconds.\n\nRecommended: Every 60 minutes, isolated session, 30-minute timeout.\n\nOpenClaw cron example:\n\nopenclaw cron add \\\n  --name \"neon-soul-synthesis\" \\\n  --every 60m \\\n  --timeout 1800 \\\n  --isolated \\\n  --message \"Run neon-soul synthesis: exec node {baseDir}/scripts/neon-soul.mjs synthesize --memory-path <memory-path> --output-path <output-path>. Share a brief, warm summary of what changed — highlight any new patterns, axioms, or growth. If nothing changed, just a calm one-liner.\"\n\nOr run manually: /neon-soul synthesize\n\nWhy cron over heartbeat:\n\nSynthesis is a standalone task — no conversational context needed\nRuns in isolation from the main session\nIncremental by default — cached runs complete in seconds when nothing changed\nAdaptive time budget prevents runaway execution"
      },
      {
        "title": "Data Locations",
        "body": "WhatPathMemory filesmemory/ (diary, preferences, reflections)Soul outputSOUL.mdState.neon-soul/state.jsonBackups.neon-soul/backups/Synthesis data.neon-soul/synthesis-data.jsonCaches.neon-soul/generalization-cache.json, compression-cache.json, tension-cache.json"
      },
      {
        "title": "Privacy",
        "body": "NEON-SOUL processes personal memory files to synthesize identity. Your data stays on your machine.\n\nWhat NEON-SOUL does NOT do:\n\nSend data to any service beyond your configured LLM (Ollama, local by default)\nStore data anywhere except your local workspace\nTransmit to third-party analytics, logging, or tracking services\nMake network requests independent of your agent\n\nBefore running synthesis:\n\nReview what's in your memory/ directory\nRemove any secrets, credentials, or sensitive files\nUse --dry-run to preview what will be processed"
      },
      {
        "title": "Troubleshooting",
        "body": "Ollama not running: curl http://localhost:11434/api/tags to check. Start with ollama serve.\n\nBullet 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.\n\nStale results after model change: Caches are keyed by model ID. Switching models automatically invalidates cached results. Use --reset if you want a clean start."
      }
    ],
    "body": "NEON-SOUL\n\nAutomated soul synthesis for AI agents. Reads memory files, finds recurring patterns, generates SOUL.md with provenance tracking. No questionnaires, no templates — identity emerges from real conversations.\n\nRequirements: Node.js 22+, Ollama running locally (ollama serve).\n\nCommands\n/neon-soul synthesize\n\nRun the bundled processing engine. This is a single exec command:\n\nexec node {baseDir}/scripts/neon-soul.mjs synthesize\n\n\nSynthesis is incremental by default — only new/changed memory files and sessions are processed. Existing signals are preserved and merged with new ones. Results from previous runs are cached (generalization, principle matching, axiom notation, tension detection) so unchanged data is never re-processed. If nothing changed since the last run, synthesis skips automatically.\n\nThe script auto-detects Ollama, reads memory files, extracts signals, promotes axioms, and generates SOUL.md. It outputs JSON.\n\nReporting results: Don't dump raw JSON. Present a brief, conversational summary:\n\nIf new axioms emerged or counts changed: highlight what grew (e.g. \"3 new signals crystallized into axioms — your soul is deepening\")\nIf nothing changed: a short one-liner is fine (e.g. \"Soul is stable, no new patterns detected\")\nIf it failed: explain clearly what went wrong and suggest a fix\nInclude key numbers naturally (axiom count, signal count) but don't list every field\nKeep the tone reflective and warm — this is about the user's identity evolving, not a build log\n\nOptions:\n\n--reset — Clear all synthesis data and caches, re-extract from scratch\n--force — Run even if no new sources detected\n--dry-run — Preview changes without writing\n--include-soul — Include existing SOUL.md as input (for bootstrapping from hand-crafted files)\n--memory-path <path> — Custom memory directory path\n--output-path <path> — Custom SOUL.md output path\n--time-budget <minutes> — Time budget for synthesis (default: 20). Adaptively limits session extraction based on observed LLM speed to ensure synthesis completes within budget\n--verbose — Show detailed progress\n\nExamples:\n\nexec node {baseDir}/scripts/neon-soul.mjs synthesize\nexec node {baseDir}/scripts/neon-soul.mjs synthesize --reset\nexec node {baseDir}/scripts/neon-soul.mjs synthesize --force\nexec node {baseDir}/scripts/neon-soul.mjs synthesize --dry-run\n\n\nIf Ollama is not running, the script prints an error. Tell the user to start Ollama: ollama serve\n\n/neon-soul status\n\nShow current soul state. Read the following files and report:\n\nRead .neon-soul/state.json for last synthesis timestamp\nRead .neon-soul/synthesis-data.json for signal/principle/axiom counts\nCount files in memory/ modified since last synthesis\nReport dimension coverage (7 SoulCraft dimensions)\n\nOptions: --verbose, --workspace <path>\n\n/neon-soul rollback\n\nRestore previous SOUL.md from backup.\n\nList backups in .neon-soul/backups/\nWith --force: restore most recent backup\nWith --backup <timestamp> --force: restore specific backup\nWith --list: show available backups without restoring\n/neon-soul audit\n\nExplore provenance across all axioms.\n\nRead .neon-soul/synthesis-data.json\nWith --list: show all axioms with IDs and descriptions\nWith --stats: show statistics by tier and dimension\nWith <axiom-id>: show full provenance tree (axiom -> principles -> signals -> source files)\n/neon-soul trace <axiom-id>\n\nQuick single-axiom provenance lookup.\n\nRead .neon-soul/synthesis-data.json\nFind the axiom matching <axiom-id>\nShow: axiom text, contributing principles, source signal file:line references\nScheduled Synthesis\n\nSet up cron to run synthesis automatically. Incremental processing and multi-layer caching mean it only does real work when new memory or sessions exist — cached runs complete in seconds.\n\nRecommended: Every 60 minutes, isolated session, 30-minute timeout.\n\nOpenClaw cron example:\n\nopenclaw cron add \\\n  --name \"neon-soul-synthesis\" \\\n  --every 60m \\\n  --timeout 1800 \\\n  --isolated \\\n  --message \"Run neon-soul synthesis: exec node {baseDir}/scripts/neon-soul.mjs synthesize --memory-path <memory-path> --output-path <output-path>. Share a brief, warm summary of what changed — highlight any new patterns, axioms, or growth. If nothing changed, just a calm one-liner.\"\n\n\nOr run manually: /neon-soul synthesize\n\nWhy cron over heartbeat:\n\nSynthesis is a standalone task — no conversational context needed\nRuns in isolation from the main session\nIncremental by default — cached runs complete in seconds when nothing changed\nAdaptive time budget prevents runaway execution\nData Locations\nWhat\tPath\nMemory files\tmemory/ (diary, preferences, reflections)\nSoul output\tSOUL.md\nState\t.neon-soul/state.json\nBackups\t.neon-soul/backups/\nSynthesis data\t.neon-soul/synthesis-data.json\nCaches\t.neon-soul/generalization-cache.json, compression-cache.json, tension-cache.json\nPrivacy\n\nNEON-SOUL processes personal memory files to synthesize identity. Your data stays on your machine.\n\nWhat NEON-SOUL does NOT do:\n\nSend data to any service beyond your configured LLM (Ollama, local by default)\nStore data anywhere except your local workspace\nTransmit to third-party analytics, logging, or tracking services\nMake network requests independent of your agent\n\nBefore running synthesis:\n\nReview what's in your memory/ directory\nRemove any secrets, credentials, or sensitive files\nUse --dry-run to preview what will be processed\nTroubleshooting\n\nOllama not running: curl http://localhost:11434/api/tags to check. Start with ollama serve.\n\nBullet 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.\n\nStale results after model change: Caches are keyed by model ID. Switching models automatically invalidates cached results. Use --reset if you want a clean start."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/leegitw/neon-soul",
    "publisherUrl": "https://clawhub.ai/leegitw/neon-soul",
    "owner": "leegitw",
    "version": "0.4.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/neon-soul",
    "downloadUrl": "https://openagent3.xyz/downloads/neon-soul",
    "agentUrl": "https://openagent3.xyz/skills/neon-soul/agent",
    "manifestUrl": "https://openagent3.xyz/skills/neon-soul/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/neon-soul/agent.md"
  }
}