[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CF8AYCNN57EHEBS60XTMXT":3,"skill-same:01M6CF8AYCNN57EHEBS60XTMXT":128},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6CF8AYCNN57EHEBS60XTMXT","verifying-modules",null,"Scans directory structure, detects missing documentation, and verifies code-doc synchronization. Use when checking module completeness, README presence, or DESIGN.md alignment. Automatically triggered after creating new modules.","telagod\u002Fcode-abyss","telagod","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F39987513?v=4","01M6CF4EH93PP5CWH3J34Z66DP","01M6CF4EN6W4QFXK3PRE9W29X8",245,"MIT","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-modules\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41],"modules","verifying modules","design","directory","documentation","code","doc","Bash","synchronization","node","README","read","use","alignment","2026-11-10 10:12:30",false,"---\nname: verifying-modules\ndescription: Scans directory structure, detects missing documentation, and verifies code-doc synchronization. Use when checking module completeness, README presence, or DESIGN.md alignment. Automatically triggered after creating new modules.\ncompatibility: node>=18\nuser-invocable: false\nallowed-tools: Bash, Read, Glob\nargument-hint: \u003C模块路径>\n---\n\n# 模块完整性校验关卡\n\n> 文档不齐不算交付。模块是否能被外人独立理解，是「完成」的最低门槛。\n\n## 何时使用\n\n| 场景 | 跑 | 理由 |\n|------|------|------|\n| 新建模块 | ✅ 必跑 | 阻断「无文档落地」 |\n| 模块重构（边界变化） | ✅ | 文档随边界更新 |\n| 接收他人模块 | ✅ | 检查可理解性 |\n| 提交前（涉及模块新增） | ✅ | 最后闸 |\n| 仅函数级修改 | ❌ | 走 [analyzing-changes](..\u002Fanalyzing-changes\u002FSKILL.md) 即可 |\n\n## 必备文件\n\n| 文件 | 缺失后果 | 备注 |\n|------|----------|------|\n| `README.md` | 阻断交付 | 用户视角 |\n| `DESIGN.md` | 阻断交付 | 维护者视角 |\n| `tests\u002F` | 警告 | 单文件模块或纯类型声明可豁免 |\n| `__init__.py` | 提示（仅 Python） | 视项目布局而定 |\n\n## 文档要求\n\n### README（外部视角，回答「这是什么、怎么用」）\n\n- 模块名与定位\n- 存在理由（解决什么问题，**不是**列功能清单）\n- 核心职责（一句话）\n- 依赖关系（上游：依赖什么；下游：被谁依赖）\n- 快速使用示例（5 分钟跑通）\n\n### DESIGN（内部视角，回答「为什么这样设计」）\n\n- 设计目标（含非目标）\n- 方案选择与理由（对比 ≥2 选项）\n- 关键决策（含权衡）\n- 已知限制\n- 变更历史（重大设计调整）\n\n## 何时豁免\n\n- **生成代码模块**（protobuf、OpenAPI client 等）→ 顶级 README 提一句即可，无需 DESIGN\n- **配置\u002F数据模块**（fixtures、seed data）→ README 说明用途与字段含义即可\n- **私有 utility**（`_internal\u002F`、`internal\u002F`）→ README 简化，DESIGN 可缺\n\n## 与其他 skill 联动\n\n- 缺文档 → 用 [generating-docs](..\u002Fgenerating-docs\u002FSKILL.md) 生成骨架，再人工填决策\n- 通过后 → 串 [analyzing-security](..\u002Fanalyzing-security\u002FSKILL.md) 扫新增攻击面\n- 大改后 → 串 [analyzing-changes](..\u002Fanalyzing-changes\u002FSKILL.md) 看辐射面\n\n## 使用\n\n```bash\nnode scripts\u002Fmodule_scanner.js \u003C模块路径>\nnode scripts\u002Fmodule_scanner.js \u003C模块路径> -v       # 详细\nnode scripts\u002Fmodule_scanner.js \u003C模块路径> --json   # CI 用\n```\n\n## 收口\n\n阻断项必修。警告项可在 DESIGN 留「不写测试的理由」（如纯接口声明、纯常量）。**「以后补」不算理由。**\n","# 模块完整性校验关卡\n\n> 文档不齐不算交付。模块是否能被外人独立理解，是「完成」的最低门槛。\n\n## 何时使用\n\n| 场景 | 跑 | 理由 |\n|------|------|------|\n| 新建模块 | ✅ 必跑 | 阻断「无文档落地」 |\n| 模块重构（边界变化） | ✅ | 文档随边界更新 |\n| 接收他人模块 | ✅ | 检查可理解性 |\n| 提交前（涉及模块新增） | ✅ | 最后闸 |\n| 仅函数级修改 | ❌ | 走 [analyzing-changes](..\u002Fanalyzing-changes\u002FSKILL.md) 即可 |\n\n## 必备文件\n\n| 文件 | 缺失后果 | 备注 |\n|------|----------|------|\n| `README.md` | 阻断交付 | 用户视角 |\n| `DESIGN.md` | 阻断交付 | 维护者视角 |\n| `tests\u002F` | 警告 | 单文件模块或纯类型声明可豁免 |\n| `__init__.py` | 提示（仅 Python） | 视项目布局而定 |\n\n## 文档要求\n\n### README（外部视角，回答「这是什么、怎么用」）\n\n- 模块名与定位\n- 存在理由（解决什么问题，**不是**列功能清单）\n- 核心职责（一句话）\n- 依赖关系（上游：依赖什么；下游：被谁依赖）\n- 快速使用示例（5 分钟跑通）\n\n### DESIGN（内部视角，回答「为什么这样设计」）\n\n- 设计目标（含非目标）\n- 方案选择与理由（对比 ≥2 选项）\n- 关键决策（含权衡）\n- 已知限制\n- 变更历史（重大设计调整）\n\n## 何时豁免\n\n- **生成代码模块**（protobuf、OpenAPI client 等）→ 顶级 README 提一句即可，无需 DESIGN\n- **配置\u002F数据模块**（fixtures、seed data）→ README 说明用途与字段含义即可\n- **私有 utility**（`_internal\u002F`、`internal\u002F`）→ README 简化，DESIGN 可缺\n\n## 与其他 skill 联动\n\n- 缺文档 → 用 [generating-docs](..\u002Fgenerating-docs\u002FSKILL.md) 生成骨架，再人工填决策\n- 通过后 → 串 [analyzing-security](..\u002Fanalyzing-security\u002FSKILL.md) 扫新增攻击面\n- 大改后 → 串 [analyzing-changes](..\u002Fanalyzing-changes\u002FSKILL.md) 看辐射面\n\n## 使用\n\n```bash\nnode scripts\u002Fmodule_scanner.js \u003C模块路径>\nnode scripts\u002Fmodule_scanner.js \u003C模块路径> -v       # 详细\nnode scripts\u002Fmodule_scanner.js \u003C模块路径> --json   # CI 用\n```\n\n## 收口\n\n阻断项必修。警告项可在 DESIGN 留「不写测试的理由」（如纯接口声明、纯常量）。**「以后补」不算理由。**\n",{"name":5,"description":7,"allowed-tools":47,"argument-hint":48,"compatibility":49,"user-invocable":43},"Bash, Read, Glob","\u003C模块路径>","node>=18","main","2544577cf03a67522466450000731e52c64a5184","skills\u002Fverifying-modules",35,"https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fcode-abyss","https:\u002F\u002Fgithub.com\u002Ftelagod","2026-07-19 23:15:32",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add telagod\u002Fcode-abyss --skill verifying-modules",{"tool":64,"command":65},"bunx","bunx skills add telagod\u002Fcode-abyss --skill verifying-modules",{"tool":67,"command":68},"pnpm","pnpm dlx skills add telagod\u002Fcode-abyss --skill verifying-modules","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-modules\u002FSKILL.md",true,[72,78,82,86,90,94,98,102,106,110,114,118,122],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"agents\u002Fopenai.yaml","REFERENCE","参考文档",240,"https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-modules\u002Fagents\u002Fopenai.yaml",{"path":79,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fimportant-rules.md",795,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fimportant-rules.md",{"path":83,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fphase1-context-gathering.md",1732,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase1-context-gathering.md",{"path":87,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fphase2.5-landscape-and-premises.md",8256,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase2.5-landscape-and-premises.md",{"path":91,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fphase2a-startup-mode.md",12614,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase2a-startup-mode.md",{"path":95,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fphase2b-builder-mode.md",2445,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase2b-builder-mode.md",{"path":99,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fphase4-alternatives-and-sketch.md",4933,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase4-alternatives-and-sketch.md",{"path":103,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":104,"sourceHtmlUrl":105},"references\u002Fphase4.5-signals-and-design-doc.md",9812,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase4.5-signals-and-design-doc.md",{"path":107,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":108,"sourceHtmlUrl":109},"references\u002Fphase6-handoff.md",4975,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fphase6-handoff.md",{"path":111,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":112,"sourceHtmlUrl":113},"references\u002Fpreamble.md",4326,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fpreamble.md",{"path":115,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":116,"sourceHtmlUrl":117},"references\u002Fproduct-lens-modes.md",3552,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fproduct-lens-modes.md",{"path":119,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":120,"sourceHtmlUrl":121},"references\u002Fshared-protocols.md",12726,"https:\u002F\u002Fgithub.com\u002Fngocsangyem\u002FMeowKit\u002Fblob\u002Fmain\u002Fpackages\u002Fmewkit\u002Fsrc\u002Fmigrate\u002Fmodules\u002Fcursor\u002Froot\u002F.cursor\u002Fskills\u002Fmk-office-hours\u002Freferences\u002Fshared-protocols.md",{"path":123,"resourceType":124,"resourceTypeDesc":125,"sizeBytes":126,"sourceHtmlUrl":127},"scripts\u002Fmodule_scanner.js","SCRIPT","脚本",6258,"https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Fskills\u002Fverifying-modules\u002Fscripts\u002Fmodule_scanner.js",[129,136,144,151,161,173],{"skillNo":130,"name":131,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":42},"01M6CF94Y2R0JYCS270NC9BKM5","parse-error","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-contract\u002Fparse-error\u002Ftools\u002Fparse-error\u002FSKILL.md",[],[135],"parse error",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":42},"01M6CF925B128W5YAHWVYSJQTG","multi-script","too many scripts","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-contract\u002Fmulti-script\u002Ftools\u002Fmulti-script\u002FSKILL.md",[],[143],"multi script",{"skillNo":145,"name":146,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":42},"01M6CF8ZYT3KZ4ZZAATFJH0DV4","missing-description","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-contract\u002Fmissing-description\u002Ftools\u002Fmissing-description\u002FSKILL.md",[],[150],"missing description",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":42},"01M6CF8XB2Z8NAPYW3W7S7KW1S","invalid-tools","invalid tool name","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-contract\u002Finvalid-tools\u002Ftools\u002Finvalid-tools\u002FSKILL.md",[],[158,159,35,160],"Tools","invalid tools","tool",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":170,"publishedAt":42},"01M6CF8TTPYFV83HSF057F95QM","clash-skill","first duplicate","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-contract\u002Fduplicate\u002Ftools\u002Falpha\u002FSKILL.md",[167],{"categoryNo":168,"categoryName":169,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[171,172],"clash skill","first",{"skillNo":174,"name":163,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":179,"publishedAt":42},"01M6CF8RAHFEPXNB6SWBR2T49M","second duplicate","https:\u002F\u002Fgithub.com\u002Ftelagod\u002Fcode-abyss\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fskill-contract\u002Fduplicate\u002Fdomains\u002Falpha\u002FSKILL.md",[178],{"categoryNo":168,"categoryName":169,"taxonomyType":20,"taxonomyTypeDesc":21},[171]]