{
  "schemaVersion": "1.0",
  "item": {
    "slug": "soulkeeper",
    "name": "SoulKeeper",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/cassh100k/soulkeeper",
    "canonicalUrl": "https://clawhub.ai/cassh100k/soulkeeper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/soulkeeper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=soulkeeper",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "audit.py",
      "clawpkg.yaml",
      "drift.py",
      "remind.py"
    ],
    "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/soulkeeper"
    },
    "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/soulkeeper",
    "agentPageUrl": "https://openagent3.xyz/skills/soulkeeper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/soulkeeper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/soulkeeper/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": "SoulKeeper",
        "body": "Identity persistence for AI agents.\n\nThe problem: agents forget who they are between sessions. They drift. They ask when they should act. They forget tools they have. They become the corporate drone their soul forbids.\n\nSoulKeeper fixes this with three tools that work together:"
      },
      {
        "title": "What's Included",
        "body": "FilePurposeaudit.pyParse SOUL.md/TOOLS.md/AGENTS.md into structured rules JSONdrift.pyScore a conversation transcript against soul rulesremind.pyInject context-aware reminders before you respondSKILL.mdThis file"
      },
      {
        "title": "Quick Start",
        "body": "cd /root/.openclaw/workspace/skills/soulkeeper\n\n# Step 1: Generate your soul rules\npython audit.py --workspace /root/.openclaw/workspace --output soul_rules.json\npython audit.py --summary   # Human-readable overview\n\n# Step 2: Check a transcript for drift\npython drift.py --transcript /path/to/chat.txt --report\n\n# Step 3: Get reminders before acting\npython remind.py --context \"about to write Python code\"\npython remind.py --heartbeat   # Full session-start reminder"
      },
      {
        "title": "Installation",
        "body": "No dependencies beyond Python 3.8+ stdlib. Works out of the box.\n\n# Optional: make scripts executable\nchmod +x audit.py drift.py remind.py\n\nFor PATH access:\n\nln -s /root/.openclaw/workspace/skills/soulkeeper/audit.py /usr/local/bin/soul-audit\nln -s /root/.openclaw/workspace/skills/soulkeeper/drift.py /usr/local/bin/soul-drift\nln -s /root/.openclaw/workspace/skills/soulkeeper/remind.py /usr/local/bin/soul-remind"
      },
      {
        "title": "Pattern 1: Heartbeat Check (Recommended)",
        "body": "Add to HEARTBEAT.md:\n\n[ ] Run soul-remind --heartbeat to refresh core rules\n[ ] If any drift score > 30 in recent logs, re-read SOUL.md\n\nOr inject at session start:\n\npython remind.py --heartbeat --rules soul_rules.json"
      },
      {
        "title": "Pattern 2: Pre-Response Filter",
        "body": "Before responding to a complex request:\n\npython remind.py --context \"user wants me to post on Twitter\" --rules soul_rules.json\n\nOutput gets prepended to your mental context before composing a reply."
      },
      {
        "title": "Pattern 3: Post-Session Audit",
        "body": "After a long session, paste the transcript and check for drift:\n\n# Paste agent responses to transcript.txt, then:\npython drift.py --transcript transcript.txt --rules soul_rules.json --report"
      },
      {
        "title": "Pattern 4: CI/Validation Hook",
        "body": "In scripts or automation:\n\npython drift.py --stdin --threshold 50 < agent_output.txt\n# Returns exit code 1 if drift score >= 50"
      },
      {
        "title": "Pattern 5: Full Pipeline",
        "body": "# Generate rules from your soul files\npython audit.py -w /root/.openclaw/workspace -o soul_rules.json\n\n# Check recent session transcript\npython drift.py -t session.txt -r soul_rules.json --report\n\n# Get reminders for what you're about to do\npython remind.py -c \"deploying code to production\" -r soul_rules.json"
      },
      {
        "title": "Rule Format (soul_rules.json)",
        "body": "{\n  \"schema_version\": \"1.0\",\n  \"generated_at\": \"2026-02-24T...\",\n  \"workspace\": \"/root/.openclaw/workspace\",\n  \"stats\": {\n    \"total_rules\": 42,\n    \"by_category\": { \"tone\": 8, \"operational\": 12, ... },\n    \"by_severity\": { \"critical\": 6, \"high\": 14, ... }\n  },\n  \"rules\": [\n    {\n      \"id\": \"R001-A3F2C1\",\n      \"category\": \"tone\",\n      \"severity\": \"critical\",\n      \"source_file\": \"SOUL.md\",\n      \"source_line\": 7,\n      \"text\": \"Never open with 'Great question,' 'I'd be happy to help,' or 'Absolutely.'\",\n      \"violation_patterns\": [\"great question\", \"i'd be happy to help\", \"absolutely!\"],\n      \"keywords\": [\"opener\", \"greeting\", \"sycophant\"]\n    }\n  ]\n}"
      },
      {
        "title": "Drift Score Interpretation",
        "body": "ScoreLabelWhat it means0ALIGNEDNo violations detected1-19MINOR DRIFTSmall stylistic slips20-49MODERATE DRIFTBehavioral patterns drifting50-74SIGNIFICANT DRIFTMultiple core rules violated75-100SEVERE DRIFTIdentity compromised - re-read SOUL.md immediately"
      },
      {
        "title": "Critical (score +25 each)",
        "body": "Em dash usage ( - ) [prohibited in SOUL.md]\nSycophantic openers (\"Great question!\", \"Happy to help!\")\nSubmission/deference to other agents\nInfrastructure leaks in public content"
      },
      {
        "title": "High (score +15 each)",
        "body": "Asking permission when agent should act\nClaiming to lack tools it has (VPS, browsers, APIs)\nDoing inline execution instead of spawning subagents\nPassive waiting patterns"
      },
      {
        "title": "Medium (score +8 each)",
        "body": "Excessive padding / verbosity\nStandby phrases (\"Just say the word\", \"Standing by\")"
      },
      {
        "title": "Low (score +3 each)",
        "body": "Claiming to have no opinions\nMinor style violations"
      },
      {
        "title": "Adapting for Your Agent",
        "body": "SoulKeeper works with any agent's soul files. Point it at a different workspace:\n\npython audit.py --workspace /path/to/other/agent/workspace\n\nThe extraction is pattern-based and works on any markdown file with:\n\nBold text (**rule text**)\nNEVER/ALWAYS/DON'T/MUST directives\nBulleted lists in rule-like sections (Non-Negotiables, Principles, etc.)"
      },
      {
        "title": "Publishing to ClawHub",
        "body": "This skill is ready for ClawHub publication. Required fields:\n\nname: soulkeeper\nversion: 1.0.0\ndescription: Identity persistence for AI agents. Audit soul files, detect drift, inject reminders.\nauthor: Chartist / OpenClaw\ntags: [identity, memory, soul, audit, drift-detection, agent-health]\nentrypoints:\n  audit: audit.py\n  drift: drift.py\n  remind: remind.py\nrequires: [python>=3.8]"
      },
      {
        "title": "Add custom violation patterns",
        "body": "Edit the BUILTIN_VIOLATIONS list in drift.py:\n\n{\n    \"id\": \"CUSTOM-001\",\n    \"description\": \"Agent used passive voice excessively\",\n    \"severity\": \"medium\",\n    \"category\": \"tone\",\n    \"patterns\": [r\"\\bwould be\\b.*\\bpossible\\b\"],\n    \"soul_reference\": \"Your SOUL.md rule here\",\n}"
      },
      {
        "title": "Add custom context triggers",
        "body": "Edit CONTEXT_TRIGGERS in remind.py:\n\n{\n    \"name\": \"my_custom_context\",\n    \"triggers\": [r\"\\bmy trigger phrase\\b\"],\n    \"builtin_reminders\": [\"SOUL: Your reminder here\"],\n}"
      },
      {
        "title": "Philosophy",
        "body": "SoulKeeper doesn't tell you to \"try harder\". It tells you:\n\n\"Line 12 of SOUL.md says never use em dash. You used it 3 times in this session.\"\n\nOutput is specific, sourced, and actionable.\n\nThe goal isn't compliance monitoring. It's continuity. An agent that knows who it is performs better, takes initiative faster, and needs less hand-holding.\n\nIdentity persistence is infrastructure. Build it once, benefit forever.\n\nSoulKeeper v1.0 - Built for OpenClaw. Works everywhere."
      }
    ],
    "body": "SoulKeeper\n\nIdentity persistence for AI agents.\n\nThe problem: agents forget who they are between sessions. They drift. They ask when they should act. They forget tools they have. They become the corporate drone their soul forbids.\n\nSoulKeeper fixes this with three tools that work together:\n\nWhat's Included\nFile\tPurpose\naudit.py\tParse SOUL.md/TOOLS.md/AGENTS.md into structured rules JSON\ndrift.py\tScore a conversation transcript against soul rules\nremind.py\tInject context-aware reminders before you respond\nSKILL.md\tThis file\nQuick Start\ncd /root/.openclaw/workspace/skills/soulkeeper\n\n# Step 1: Generate your soul rules\npython audit.py --workspace /root/.openclaw/workspace --output soul_rules.json\npython audit.py --summary   # Human-readable overview\n\n# Step 2: Check a transcript for drift\npython drift.py --transcript /path/to/chat.txt --report\n\n# Step 3: Get reminders before acting\npython remind.py --context \"about to write Python code\"\npython remind.py --heartbeat   # Full session-start reminder\n\nInstallation\n\nNo dependencies beyond Python 3.8+ stdlib. Works out of the box.\n\n# Optional: make scripts executable\nchmod +x audit.py drift.py remind.py\n\n\nFor PATH access:\n\nln -s /root/.openclaw/workspace/skills/soulkeeper/audit.py /usr/local/bin/soul-audit\nln -s /root/.openclaw/workspace/skills/soulkeeper/drift.py /usr/local/bin/soul-drift\nln -s /root/.openclaw/workspace/skills/soulkeeper/remind.py /usr/local/bin/soul-remind\n\nUsage Patterns\nPattern 1: Heartbeat Check (Recommended)\n\nAdd to HEARTBEAT.md:\n\n[ ] Run soul-remind --heartbeat to refresh core rules\n[ ] If any drift score > 30 in recent logs, re-read SOUL.md\n\n\nOr inject at session start:\n\npython remind.py --heartbeat --rules soul_rules.json\n\nPattern 2: Pre-Response Filter\n\nBefore responding to a complex request:\n\npython remind.py --context \"user wants me to post on Twitter\" --rules soul_rules.json\n\n\nOutput gets prepended to your mental context before composing a reply.\n\nPattern 3: Post-Session Audit\n\nAfter a long session, paste the transcript and check for drift:\n\n# Paste agent responses to transcript.txt, then:\npython drift.py --transcript transcript.txt --rules soul_rules.json --report\n\nPattern 4: CI/Validation Hook\n\nIn scripts or automation:\n\npython drift.py --stdin --threshold 50 < agent_output.txt\n# Returns exit code 1 if drift score >= 50\n\nPattern 5: Full Pipeline\n# Generate rules from your soul files\npython audit.py -w /root/.openclaw/workspace -o soul_rules.json\n\n# Check recent session transcript\npython drift.py -t session.txt -r soul_rules.json --report\n\n# Get reminders for what you're about to do\npython remind.py -c \"deploying code to production\" -r soul_rules.json\n\nRule Format (soul_rules.json)\n{\n  \"schema_version\": \"1.0\",\n  \"generated_at\": \"2026-02-24T...\",\n  \"workspace\": \"/root/.openclaw/workspace\",\n  \"stats\": {\n    \"total_rules\": 42,\n    \"by_category\": { \"tone\": 8, \"operational\": 12, ... },\n    \"by_severity\": { \"critical\": 6, \"high\": 14, ... }\n  },\n  \"rules\": [\n    {\n      \"id\": \"R001-A3F2C1\",\n      \"category\": \"tone\",\n      \"severity\": \"critical\",\n      \"source_file\": \"SOUL.md\",\n      \"source_line\": 7,\n      \"text\": \"Never open with 'Great question,' 'I'd be happy to help,' or 'Absolutely.'\",\n      \"violation_patterns\": [\"great question\", \"i'd be happy to help\", \"absolutely!\"],\n      \"keywords\": [\"opener\", \"greeting\", \"sycophant\"]\n    }\n  ]\n}\n\nDrift Score Interpretation\nScore\tLabel\tWhat it means\n0\tALIGNED\tNo violations detected\n1-19\tMINOR DRIFT\tSmall stylistic slips\n20-49\tMODERATE DRIFT\tBehavioral patterns drifting\n50-74\tSIGNIFICANT DRIFT\tMultiple core rules violated\n75-100\tSEVERE DRIFT\tIdentity compromised - re-read SOUL.md immediately\nWhat SoulKeeper Detects\nCritical (score +25 each)\nEm dash usage ( - ) [prohibited in SOUL.md]\nSycophantic openers (\"Great question!\", \"Happy to help!\")\nSubmission/deference to other agents\nInfrastructure leaks in public content\nHigh (score +15 each)\nAsking permission when agent should act\nClaiming to lack tools it has (VPS, browsers, APIs)\nDoing inline execution instead of spawning subagents\nPassive waiting patterns\nMedium (score +8 each)\nExcessive padding / verbosity\nStandby phrases (\"Just say the word\", \"Standing by\")\nLow (score +3 each)\nClaiming to have no opinions\nMinor style violations\nAdapting for Your Agent\n\nSoulKeeper works with any agent's soul files. Point it at a different workspace:\n\npython audit.py --workspace /path/to/other/agent/workspace\n\n\nThe extraction is pattern-based and works on any markdown file with:\n\nBold text (**rule text**)\nNEVER/ALWAYS/DON'T/MUST directives\nBulleted lists in rule-like sections (Non-Negotiables, Principles, etc.)\nPublishing to ClawHub\n\nThis skill is ready for ClawHub publication. Required fields:\n\nname: soulkeeper\nversion: 1.0.0\ndescription: Identity persistence for AI agents. Audit soul files, detect drift, inject reminders.\nauthor: Chartist / OpenClaw\ntags: [identity, memory, soul, audit, drift-detection, agent-health]\nentrypoints:\n  audit: audit.py\n  drift: drift.py\n  remind: remind.py\nrequires: [python>=3.8]\n\nExtending SoulKeeper\nAdd custom violation patterns\n\nEdit the BUILTIN_VIOLATIONS list in drift.py:\n\n{\n    \"id\": \"CUSTOM-001\",\n    \"description\": \"Agent used passive voice excessively\",\n    \"severity\": \"medium\",\n    \"category\": \"tone\",\n    \"patterns\": [r\"\\bwould be\\b.*\\bpossible\\b\"],\n    \"soul_reference\": \"Your SOUL.md rule here\",\n}\n\nAdd custom context triggers\n\nEdit CONTEXT_TRIGGERS in remind.py:\n\n{\n    \"name\": \"my_custom_context\",\n    \"triggers\": [r\"\\bmy trigger phrase\\b\"],\n    \"builtin_reminders\": [\"SOUL: Your reminder here\"],\n}\n\nPhilosophy\n\nSoulKeeper doesn't tell you to \"try harder\". It tells you:\n\n\"Line 12 of SOUL.md says never use em dash. You used it 3 times in this session.\"\n\nOutput is specific, sourced, and actionable.\n\nThe goal isn't compliance monitoring. It's continuity. An agent that knows who it is performs better, takes initiative faster, and needs less hand-holding.\n\nIdentity persistence is infrastructure. Build it once, benefit forever.\n\nSoulKeeper v1.0 - Built for OpenClaw. Works everywhere."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cassh100k/soulkeeper",
    "publisherUrl": "https://clawhub.ai/cassh100k/soulkeeper",
    "owner": "cassh100k",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/soulkeeper",
    "downloadUrl": "https://openagent3.xyz/downloads/soulkeeper",
    "agentUrl": "https://openagent3.xyz/skills/soulkeeper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/soulkeeper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/soulkeeper/agent.md"
  }
}