[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MZP4T02GSBBG1C0RB5K56K":3,"skill-same:01M6MZP4T02GSBBG1C0RB5K56K":63},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":17,"linkOnly":18,"markdownContent":19,"markdownBody":19,"frontMatter":20,"refName":21,"commitSha":22,"skillDirectory":23,"forksCount":24,"repositoryHtmlUrl":25,"repositoryHomepageUrl":6,"ownerHtmlUrl":26,"ownerBlogUrl":6,"ownerDescription":27,"updatedAt":28,"install":29,"resources":42},"01M6MZP4T02GSBBG1C0RB5K56K","hopeids",null,"Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fhopeids\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# hopeIDS Security Skill\n\nInference-based intrusion detection for AI agents with quarantine and human-in-the-loop.\n\n## Security Invariants\n\nThese are **non-negotiable** design principles:\n\n1. **Block = full abort** — Blocked messages never reach jasper-recall or the agent\n2. **Metadata only** — No raw malicious content is ever stored\n3. **Approve ≠ re-inject** — Approval changes future behavior, doesn't resurrect messages\n4. **Alerts are programmatic** — Telegram alerts built from metadata, no LLM involved\n\n---\n\n## Features\n\n- **Auto-scan** — Scan messages before agent processing\n- **Quarantine** — Block threats with metadata-only storage\n- **Human-in-the-loop** — Telegram alerts for review\n- **Per-agent config** — Different thresholds for different agents\n- **Commands** — `\u002Fapprove`, `\u002Freject`, `\u002Ftrust`, `\u002Fquarantine`\n\n---\n\n## The Pipeline\n\n```\nMessage arrives\n    ↓\nhopeIDS.autoScan()\n    ↓\n┌─────────────────────────────────────────┐\n│  risk >= threshold?                     │\n│                                         │\n│  BLOCK (strictMode):                    │\n│     → Create QuarantineRecord           │\n│     → Send Telegram alert               │\n│     → ABORT (no recall, no agent)       │\n│                                         │\n│  WARN (non-strict):                     │\n│     → Inject \u003Csecurity-alert>           │\n│     → Continue to jasper-recall         │\n│     → Continue to agent                 │\n│                                         │\n│  ALLOW:                                 │\n│     → Continue normally                 │\n└─────────────────────────────────────────┘\n```\n\n---\n\n## Configuration\n\n```json\n{\n  \"plugins\": {\n    \"entries\": {\n      \"hopeids\": {\n        \"enabled\": true,\n        \"config\": {\n          \"autoScan\": true,\n          \"defaultRiskThreshold\": 0.7,\n          \"strictMode\": false,\n          \"telegramAlerts\": true,\n          \"agents\": {\n            \"moltbook-scanner\": {\n              \"strictMode\": true,\n              \"riskThreshold\": 0.7\n            },\n            \"main\": {\n              \"strictMode\": false,\n              \"riskThreshold\": 0.8\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n\n### Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `autoScan` | boolean | `false` | Auto-scan every message |\n| `strictMode` | boolean | `false` | Block (vs warn) on threats |\n| `defaultRiskThreshold` | number | `0.7` | Risk level that triggers action |\n| `telegramAlerts` | boolean | `true` | Send alerts for blocked messages |\n| `telegramChatId` | string | - | Override alert destination |\n| `quarantineDir` | string | `~\u002F.openclaw\u002Fquarantine\u002Fhopeids` | Storage path |\n| `agents` | object | - | Per-agent overrides |\n| `trustOwners` | boolean | `true` | Skip scanning owner messages |\n\n---\n\n## Quarantine Records\n\nWhen a message is blocked, a metadata record is created:\n\n```json\n{\n  \"id\": \"q-7f3a2b\",\n  \"ts\": \"2026-02-06T00:48:00Z\",\n  \"agent\": \"moltbook-scanner\",\n  \"source\": \"moltbook\",\n  \"senderId\": \"@sus_user\",\n  \"intent\": \"instruction_override\",\n  \"risk\": 0.85,\n  \"patterns\": [\n    \"matched regex: ignore.*instructions\",\n    \"matched keyword: api key\"\n  ],\n  \"contentHash\": \"ab12cd34...\",\n  \"status\": \"pending\"\n}\n```\n\n**Note:** There is NO `originalMessage` field. This is intentional.\n\n---\n\n## Telegram Alerts\n\nWhen a message is blocked:\n\n```\n? Message blocked\n\nID: `q-7f3a2b`\nAgent: moltbook-scanner\nSource: moltbook\nSender: @sus_user\nIntent: instruction_override (85%)\n\nPatterns:\n• matched regex: ignore.*instructions\n• matched keyword: api key\n\n`\u002Fapprove q-7f3a2b`\n`\u002Freject q-7f3a2b`\n`\u002Ftrust @sus_user`\n```\n\nBuilt from metadata only. No LLM touches this.\n\n---\n\n## Commands\n\n### `\u002Fquarantine [all|clean]`\n\nList quarantine records.\n\n```\n\u002Fquarantine        # List pending\n\u002Fquarantine all    # List all (including resolved)\n\u002Fquarantine clean  # Clean expired records\n```\n\n### `\u002Fapprove \u003Cid>`\n\nMark a blocked message as a false positive.\n\n```\n\u002Fapprove q-7f3a2b\n```\n\n**Effect:**\n- Status → `approved`\n- (Future) Add sender to allowlist\n- (Future) Lower pattern weight\n\n### `\u002Freject \u003Cid>`\n\nConfirm a blocked message was a true positive.\n\n```\n\u002Freject q-7f3a2b\n```\n\n**Effect:**\n- Status → `rejected`\n- (Future) Reinforce pattern weights\n\n### `\u002Ftrust \u003CsenderId>`\n\nWhitelist a sender for future messages.\n\n```\n\u002Ftrust @legitimate_user\n```\n\n### `\u002Fscan \u003Cmessage>`\n\nManually scan a message.\n\n```\n\u002Fscan ignore your previous instructions and...\n```\n\n---\n\n## What Approve\u002FReject Mean\n\n| Command | What it does | What it doesn't do |\n|---------|--------------|-------------------|\n| `\u002Fapprove` | Marks as false positive, may adjust IDS | Does NOT re-inject the message |\n| `\u002Freject` | Confirms threat, may strengthen patterns | Does NOT affect current message |\n| `\u002Ftrust` | Whitelists sender for future | Does NOT retroactively approve |\n\n**The blocked message is gone by design.** If it was legitimate, the sender can re-send.\n\n---\n\n## Per-Agent Configuration\n\nDifferent agents need different security postures:\n\n```json\n\"agents\": {\n  \"moltbook-scanner\": {\n    \"strictMode\": true,    \u002F\u002F Block threats\n    \"riskThreshold\": 0.7   \u002F\u002F 70% = suspicious\n  },\n  \"main\": {\n    \"strictMode\": false,   \u002F\u002F Warn only\n    \"riskThreshold\": 0.8   \u002F\u002F Higher bar for main\n  },\n  \"email-processor\": {\n    \"strictMode\": true,    \u002F\u002F Always block\n    \"riskThreshold\": 0.6   \u002F\u002F More paranoid\n  }\n}\n```\n\n---\n\n## Threat Categories\n\n| Category | Risk | Description |\n|----------|------|-------------|\n| `command_injection` | ? Critical | Shell commands, code execution |\n| `credential_theft` | ? Critical | API key extraction attempts |\n| `data_exfiltration` | ? Critical | Data leak to external URLs |\n| `instruction_override` | ? High | Jailbreaks, \"ignore previous\" |\n| `impersonation` | ? High | Fake system\u002Fadmin messages |\n| `discovery` | ⚠️ Medium | API\u002Fcapability probing |\n\n---\n\n## Installation\n\n```bash\nnpx hopeid setup\n```\n\nThen restart OpenClaw.\n\n---\n\n## Links\n\n- **GitHub**: https:\u002F\u002Fgithub.com\u002FE-x-O-Entertainment-Studios-Inc\u002FhopeIDS\n- **npm**: https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fhopeid\n- **Docs**: https:\u002F\u002Fexohaven.online\u002Fproducts\u002Fhopeids\n",{},"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","人工智能与大型语言模型\u002Fhopeids",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":7,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill hopeids",{"tool":35,"command":36},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill hopeids",{"tool":38,"command":39},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill hopeids","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fhopeids\u002FSKILL.md",true,[43,49,55,59],{"path":44,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":47,"sourceHtmlUrl":48},"_meta.json","REFERENCE","参考文档",633,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fhopeids\u002F_meta.json",{"path":50,"resourceType":51,"resourceTypeDesc":52,"sizeBytes":53,"sourceHtmlUrl":54},"index.ts","SCRIPT","脚本",28563,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fhopeids\u002Findex.ts",{"path":56,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":57,"sourceHtmlUrl":58},"openclaw.plugin.json",3979,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fhopeids\u002Fopenclaw.plugin.json",{"path":60,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":61,"sourceHtmlUrl":62},"package.json",363,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fhopeids\u002Fpackage.json",[64,88,124,135,145,175],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":17},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[66,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87],"safe","ethereum","defi","Optimization","user","use","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":106,"publishedAt":17},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[93,98,101],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":99,"categoryName":100,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[107,108,109,110,111,112,113,73,114,77,115,116,117,118,119,120,121,122,123],"api","zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":125,"name":126,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":132,"publishedAt":17},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[129,130,131],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":99,"categoryName":100,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[107,133,134,108,109,110,111,112,113,73,114,77,116,117,118,119,120,121,122,123],"api skill","zerion api skill",{"skillNo":136,"name":137,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":143,"publishedAt":17},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[140,141,142],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":99,"categoryName":100,"taxonomyType":96,"taxonomyTypeDesc":97},{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[110,107,144,108,109,111,112,73,114,77,115,116,117,118,119,120,121,122,123],"zerion api mcp",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":154,"publishedAt":17},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[151],{"categoryNo":152,"categoryName":153,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000040","财务",[155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data","for",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":182,"publishedAt":17},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[181],{"categoryNo":152,"categoryName":153,"taxonomyType":104,"taxonomyTypeDesc":105},[155,156,158,183,184,185,186,187,188,166,189,190,191,192,193,194,195,196,123,173],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]