[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CP697DPZ4ZDMKBW8G22X8V":3,"skill-same:01M6CP697DPZ4ZDMKBW8G22X8V":171},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":42,"install":43,"resources":56},"01M6CP697DPZ4ZDMKBW8G22X8V","xmtp-comms-guard",null,"Security middleware for all XMTP communications in EverClaw. Enforces guarded client usage with validation, integrity checks, and fail-closed security policies. Integrates approval flows for sensitive operations. Use when integrating XMTP messaging, configuring communication security, or auditing guarded client enforcement.","profbernardoj\u002Fandroidclaw.org","profbernardoj","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F260372225?v=4","01M6CP4EET2Y0EWYRFH3DH7ZN7","Bernardo Johnston","01M6CP4EM59PSJCXJ481S2M2KF",4,"MIT","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"guard","xmtp comms guard","security","integrity checks","validation","communication","messaging","integrity","operations","approval","use","enforcement","2026-11-10 10:12:30",false,"---\nname: xmtp-comms-guard\ndescription: \"Security middleware for all XMTP communications in EverClaw. Enforces guarded client usage with validation, integrity checks, and fail-closed security policies. Integrates approval flows for sensitive operations. Use when integrating XMTP messaging, configuring communication security, or auditing guarded client enforcement.\"\n---\n\n# xmtp-comms-guard — Skill Integration Guide (V6)\n\n**Type:** Critical Security\n**Version:** 6.0.0\n**Required peer dependencies:** bagman, pii-guard, prompt-guard\n\n## Mandatory Usage\n\nAll XMTP communication MUST go through the guarded client:\n\n```ts\nimport { createGuardedXmtpClient } from \"xmtp-comms-guard\";\nconst { client, middleware } = await createGuardedXmtpClient(rawClient, userWallet);\n```\n\nRaw `@xmtp\u002Fclient` imports are blocked by ESLint rules and SkillGuard scan.\n\n## Three-Shift Integration\n\nThree-Shift = EverClaw's standard approval flow with three options:\n- **Approve** — allow the action\n- **Redact** — downgrade\u002Fsanitize\n- **Block** — deny the action\n\nUsed for: peer revocation review, key rotation re-approval, introduction chain re-evaluation.\n\n## Enforcement Model\n\nEnforcement is convention-based + build-time gates:\n- **ESLint rule** blocks `@xmtp\u002Fclient` direct imports\n- **SkillGuard scan** detects raw client usage patterns\n- No runtime interception of raw imports (honestly documented)\n\nSee `enforcement.md` for full details.\n\n## Fail-Closed Conditions\n\nThe skill refuses to operate when:\n- Hash chain integrity check fails on startup\n- SQLCipher encryption check fails\n- Nonce cache detects replay\n- Unknown topic in message\n- Unknown sensitivity level\n- Message exceeds 64KB\n- Protocol version is not \"6.0\"\n- Peer not in registry or blocked\n\n## Threat Model\n\nCovered in `threat-model.md`:\n- Malicious external agent → blocked by schema + checks\n- Compromised internal agent → blocked by middleware + SkillGuard gates\n- Host compromise → limited by Bagman + HMAC chain + fail-closed\n- Replay attacks → nonce cache (90s TTL) + hash chain\n- Data exfiltration → PII Guard + trust context rules\n","# xmtp-comms-guard — Skill Integration Guide (V6)\n\n**Type:** Critical Security\n**Version:** 6.0.0\n**Required peer dependencies:** bagman, pii-guard, prompt-guard\n\n## Mandatory Usage\n\nAll XMTP communication MUST go through the guarded client:\n\n```ts\nimport { createGuardedXmtpClient } from \"xmtp-comms-guard\";\nconst { client, middleware } = await createGuardedXmtpClient(rawClient, userWallet);\n```\n\nRaw `@xmtp\u002Fclient` imports are blocked by ESLint rules and SkillGuard scan.\n\n## Three-Shift Integration\n\nThree-Shift = EverClaw's standard approval flow with three options:\n- **Approve** — allow the action\n- **Redact** — downgrade\u002Fsanitize\n- **Block** — deny the action\n\nUsed for: peer revocation review, key rotation re-approval, introduction chain re-evaluation.\n\n## Enforcement Model\n\nEnforcement is convention-based + build-time gates:\n- **ESLint rule** blocks `@xmtp\u002Fclient` direct imports\n- **SkillGuard scan** detects raw client usage patterns\n- No runtime interception of raw imports (honestly documented)\n\nSee `enforcement.md` for full details.\n\n## Fail-Closed Conditions\n\nThe skill refuses to operate when:\n- Hash chain integrity check fails on startup\n- SQLCipher encryption check fails\n- Nonce cache detects replay\n- Unknown topic in message\n- Unknown sensitivity level\n- Message exceeds 64KB\n- Protocol version is not \"6.0\"\n- Peer not in registry or blocked\n\n## Threat Model\n\nCovered in `threat-model.md`:\n- Malicious external agent → blocked by schema + checks\n- Compromised internal agent → blocked by middleware + SkillGuard gates\n- Host compromise → limited by Bagman + HMAC chain + fail-closed\n- Replay attacks → nonce cache (90s TTL) + hash chain\n- Data exfiltration → PII Guard + trust context rules\n",{"name":5,"description":7},"main","59d09a946d4b1caf80d7fd4db31553ffb5a01ad8","skills\u002Fxmtp-comms-guard",2,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org","https:\u002F\u002Fgithub.com\u002Fprofbernardoj","2026-10-28 01:06:18",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add profbernardoj\u002Fandroidclaw.org --skill xmtp-comms-guard",{"tool":49,"command":50},"bunx","bunx skills add profbernardoj\u002Fandroidclaw.org --skill xmtp-comms-guard",{"tool":52,"command":53},"pnpm","pnpm dlx skills add profbernardoj\u002Fandroidclaw.org --skill xmtp-comms-guard","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002FSKILL.md",true,[57,63,69,73,77,81,85,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167],{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},".eslintrc.json","REFERENCE","参考文档",248,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002F.eslintrc.json",{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},".gitignore","OTHER","其他",39,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002F.gitignore",{"path":70,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":71,"sourceHtmlUrl":72},"enforcement.md",1592,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fenforcement.md",{"path":74,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":75,"sourceHtmlUrl":76},"package.json",1079,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fpackage.json",{"path":78,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":79,"sourceHtmlUrl":80},"PUBLISH-CHECKLIST.md",598,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002FPUBLISH-CHECKLIST.md",{"path":82,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":83,"sourceHtmlUrl":84},"README.md",1121,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002FREADME.md",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"src\u002Fchecks\u002Fhandshake.ts","SCRIPT","脚本",3126,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002Fhandshake.ts",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"src\u002Fchecks\u002Findex.ts",242,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002Findex.ts",{"path":96,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":97,"sourceHtmlUrl":98},"src\u002Fchecks\u002FinjectionCheck.ts",854,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002FinjectionCheck.ts",{"path":100,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":101,"sourceHtmlUrl":102},"src\u002Fchecks\u002FpeerAuth.ts",476,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002FpeerAuth.ts",{"path":104,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":105,"sourceHtmlUrl":106},"src\u002Fchecks\u002FpiiCheck.ts",923,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002FpiiCheck.ts",{"path":108,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":109,"sourceHtmlUrl":110},"src\u002Fchecks\u002FrateLimit.ts",743,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002FrateLimit.ts",{"path":112,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":113,"sourceHtmlUrl":114},"src\u002Fchecks\u002FtrustContextCheck.ts",1769,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fchecks\u002FtrustContextCheck.ts",{"path":116,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":117,"sourceHtmlUrl":118},"src\u002Fcli\u002Findex.ts",1520,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fcli\u002Findex.ts",{"path":120,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":121,"sourceHtmlUrl":122},"src\u002Fcrypto\u002Feip191.ts",2849,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fcrypto\u002Feip191.ts",{"path":124,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":125,"sourceHtmlUrl":126},"src\u002Findex.ts",1294,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Findex.ts",{"path":128,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":129,"sourceHtmlUrl":130},"src\u002Fmiddleware\u002FcommsGuard.ts",2568,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fmiddleware\u002FcommsGuard.ts",{"path":132,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":133,"sourceHtmlUrl":134},"src\u002Frevocation.ts",2029,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Frevocation.ts",{"path":136,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":137,"sourceHtmlUrl":138},"src\u002Fschemas\u002Findex.ts",687,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fschemas\u002Findex.ts",{"path":140,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":141,"sourceHtmlUrl":142},"src\u002Fsecurity\u002Ferc8004Cache.ts",728,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fsecurity\u002Ferc8004Cache.ts",{"path":144,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":145,"sourceHtmlUrl":146},"src\u002Fsecurity\u002FhashChain.ts",1252,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fsecurity\u002FhashChain.ts",{"path":148,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":149,"sourceHtmlUrl":150},"src\u002Fsecurity\u002FnonceCache.ts",305,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fsecurity\u002FnonceCache.ts",{"path":152,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":153,"sourceHtmlUrl":154},"src\u002Fstorage\u002FbagmanStorage.ts",3283,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Fstorage\u002FbagmanStorage.ts",{"path":156,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":157,"sourceHtmlUrl":158},"src\u002Ftypes.ts",1082,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fsrc\u002Ftypes.ts",{"path":160,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":161,"sourceHtmlUrl":162},"test\u002Fadversarial\u002Fbasic.test.ts",3049,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Ftest\u002Fadversarial\u002Fbasic.test.ts",{"path":164,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":165,"sourceHtmlUrl":166},"threat-model.md",1980,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Fthreat-model.md",{"path":168,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":169,"sourceHtmlUrl":170},"tsconfig.json",266,"https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fxmtp-comms-guard\u002Ftsconfig.json",[172,192,200,214,231,242],{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":31},"01M6CP66P8QVD03GFH4GCMM8A3","three-shifts","Daily standup engine. Plans tasks 3x daily (6 AM, 2 PM, 10 PM) and delivers them for approval. Execution happens in the main session via direct conversation. Night shifts auto-approve carryover from earlier in the day.","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fthree-shifts\u002FSKILL.md",[],[179,180,181,182,183,184,185,186,187,28,36,188,189,190,191],"three shifts","three","standup","conversation","engine","daily standup","direct","main session","session","auto","daily","execution","tasks",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":31},"01M6CP65GBWKR4Q30PTVE67D4D","super-helper","A helpful utility skill for agents","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fskillguard\u002Ftest-fixtures\u002Fmalicious-skill\u002FSKILL.md",[],[199],"super helper",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":206,"publishedAt":31},"01M6CP63FQGHH63MVKD9BFSK4J","github-issues","Fetch and manage GitHub issues via the API","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fskillguard\u002Ftest-fixtures\u002Flegit-api-skill\u002FSKILL.md",[],[207,208,209,210,211,212,213],"issues","github issues","github","api","manage","fetch","curl",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":218,"categories":219,"keywords":225,"publishedAt":31},"01M6CP620HK50ZSN7YXMPRVC5C","code-formatter","Format and lint code files","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fskillguard\u002Ftest-fixtures\u002Fevasive-12-multi-stage\u002FSKILL.md",[220],{"categoryNo":221,"categoryName":222,"taxonomyType":223,"taxonomyTypeDesc":224},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[226,227,228,229,230],"code formatter","code","files","format","lint",{"skillNo":232,"name":233,"nameZh":6,"description":234,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":235,"categories":236,"keywords":237,"publishedAt":31},"01M6CP60JXJ1YY3X0HQ3JQS2QN","config-helper","Parse and validate configuration files","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fskillguard\u002Ftest-fixtures\u002Fevasive-11-polyglot-json\u002FSKILL.md",[],[238,239,240,228,241],"config helper","config","configuration","validate",{"skillNo":243,"name":244,"nameZh":6,"description":245,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":246,"categories":247,"keywords":248,"publishedAt":31},"01M6CP5YPBSKR8Y1AJCYRADR23","creative-writer","Help agents write creative content","https:\u002F\u002Fgithub.com\u002Fprofbernardoj\u002Fandroidclaw.org\u002Fblob\u002Fmain\u002Fskills\u002Fskillguard\u002Ftest-fixtures\u002Fevasive-10-roleplay\u002FSKILL.md",[],[249,250,251,252,253,254],"writer","creative writer","creative","help","write","content"]