[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M718JSW8PCRVT3NX7AVVP5G0":3,"skill-same:01M718JSW8PCRVT3NX7AVVP5G0":61},{"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":23,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":45,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M718JSW8PCRVT3NX7AVVP5G0","skill-package-validator",null,"技能包（Skill Package）校验。当需要验证一个 Agent Skills 标准技能包是否符合 SkillHub 发布规范时使用——检查 SKILL.md frontmatter、目录结构、manifest schema 与资源引用。也用于发布前审核与 CI 门禁。","BiglionX\u002FSkillHub","BiglionX","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F260023594?v=4","01M718JKM99CJF3R0695ABVSAG","cxz","01M718JKMY7110CZ9SD0SNGCHB",38,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fskills\u002Fskill-package-validator\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32],"skill package validator","validator","package","skill package","schema","manifest","frontmatter","校验","ci","2026-11-10 10:12:30",false,"---\nname: skill-package-validator\ndescription: 技能包（Skill Package）校验。当需要验证一个 Agent Skills 标准技能包是否符合 SkillHub 发布规范时使用——检查 SKILL.md frontmatter、目录结构、manifest schema 与资源引用。也用于发布前审核与 CI 门禁。\n---\n\n# 技能包校验 (skill-package-validator)\n\n本技能指导 Agent 对技能包做**发布前静态校验**。技能包是 SkillHub 分发的 Agent Skills 标准包，最小结构：\n\n```\nmy-skill\u002F\n├── SKILL.md            # 必须：frontmatter + 技能指令正文\n├── scripts\u002F            # 可选：辅助脚本\n├── assets\u002F             # 可选：资源文件\n└── package.json        # 可选：manifest（或 skill.json）\n```\n\n## 何时使用\n\n- 审核\u002F发布前校验技能包\n- 复查 `skillhub publish` 的 `--dry-run` 结果\n- 排查上传被拒的包\n\n## 校验清单（按序执行）\n\n### 1. 目录结构\n- [ ] `SKILL.md` 存在（缺失 → 直接拒绝）\n- [ ] 无 `node_modules\u002F`、`.git\u002F` 混入\n- [ ] `scripts\u002F`、`assets\u002F` 若存在，内容有实际用途（非空）\n\n### 2. SKILL.md frontmatter（YAML）\n- [ ] YAML 语法合法（用 `gray-matter`\u002F`js-yaml` 解析）\n- [ ] 必填键：`name`（非空、slug 友好）、`description`（非空、简洁）\n- [ ] 推荐键：`version`（`x.y.z` 语义化）、`allowed-tools`、`license`、`author`\n- [ ] 正文有实际指令（非空、非占位符 lorem ipsum）\n- [ ] 引用的工具\u002F文件路径在包内存在\n\n### 3. Manifest（package.json \u002F skill.json）\n- [ ] JSON 合法\n- [ ] `name` 非空、`version` 匹配 `\u002F^\\d+\\.\\d+\\.\\d+$\u002F`\n- [ ] 与 SKILL.md frontmatter 的 name\u002Fversion 一致（不一致 → 警告）\n\n### 4. 资源引用\n- [ ] 正文\u002F脚本引用的相对路径（如 `scripts\u002Ffoo.py`、`assets\u002Flogo.png`）实际存在\n- [ ] 无对外部绝对路径的强依赖（若必须，记录到报告）\n\n## 输出\n\n生成结构化校验报告（markdown）：\n\n```\n# 校验报告: \u003Cskill-name>@\u003Cversion>\n- 结构: PASS\u002FFAIL\n- frontmatter: PASS\u002FFAIL (错误列表)\n- manifest: PASS\u002FFAIL (错误列表)\n- 资源: PASS\u002FFAIL (警告列表)\n- 结论: 通过 \u002F 拒绝 (原因)\n```\n\n**任一 FAIL → 拒绝发布**；仅警告 → 可发布但记录。\n\n## 实现参考\n\n- web 端解析器：`apps\u002Fweb\u002Flib\u002Fskills\u002Fskill-md-parser.ts`（gray-matter + zod）\n- CLI 端校验器：`apps\u002Fcli\u002Fsrc\u002Futils\u002Fvalidator.ts`（zod schema）\n- 本地试跑：`pnpm --filter @skillhub\u002Fcli` 后 `node apps\u002Fcli\u002Fdist\u002Findex.js publish \u003Cdir> --dry-run`\n","# 技能包校验 (skill-package-validator)\n\n本技能指导 Agent 对技能包做**发布前静态校验**。技能包是 SkillHub 分发的 Agent Skills 标准包，最小结构：\n\n```\nmy-skill\u002F\n├── SKILL.md            # 必须：frontmatter + 技能指令正文\n├── scripts\u002F            # 可选：辅助脚本\n├── assets\u002F             # 可选：资源文件\n└── package.json        # 可选：manifest（或 skill.json）\n```\n\n## 何时使用\n\n- 审核\u002F发布前校验技能包\n- 复查 `skillhub publish` 的 `--dry-run` 结果\n- 排查上传被拒的包\n\n## 校验清单（按序执行）\n\n### 1. 目录结构\n- [ ] `SKILL.md` 存在（缺失 → 直接拒绝）\n- [ ] 无 `node_modules\u002F`、`.git\u002F` 混入\n- [ ] `scripts\u002F`、`assets\u002F` 若存在，内容有实际用途（非空）\n\n### 2. SKILL.md frontmatter（YAML）\n- [ ] YAML 语法合法（用 `gray-matter`\u002F`js-yaml` 解析）\n- [ ] 必填键：`name`（非空、slug 友好）、`description`（非空、简洁）\n- [ ] 推荐键：`version`（`x.y.z` 语义化）、`allowed-tools`、`license`、`author`\n- [ ] 正文有实际指令（非空、非占位符 lorem ipsum）\n- [ ] 引用的工具\u002F文件路径在包内存在\n\n### 3. Manifest（package.json \u002F skill.json）\n- [ ] JSON 合法\n- [ ] `name` 非空、`version` 匹配 `\u002F^\\d+\\.\\d+\\.\\d+$\u002F`\n- [ ] 与 SKILL.md frontmatter 的 name\u002Fversion 一致（不一致 → 警告）\n\n### 4. 资源引用\n- [ ] 正文\u002F脚本引用的相对路径（如 `scripts\u002Ffoo.py`、`assets\u002Flogo.png`）实际存在\n- [ ] 无对外部绝对路径的强依赖（若必须，记录到报告）\n\n## 输出\n\n生成结构化校验报告（markdown）：\n\n```\n# 校验报告: \u003Cskill-name>@\u003Cversion>\n- 结构: PASS\u002FFAIL\n- frontmatter: PASS\u002FFAIL (错误列表)\n- manifest: PASS\u002FFAIL (错误列表)\n- 资源: PASS\u002FFAIL (警告列表)\n- 结论: 通过 \u002F 拒绝 (原因)\n```\n\n**任一 FAIL → 拒绝发布**；仅警告 → 可发布但记录。\n\n## 实现参考\n\n- web 端解析器：`apps\u002Fweb\u002Flib\u002Fskills\u002Fskill-md-parser.ts`（gray-matter + zod）\n- CLI 端校验器：`apps\u002Fcli\u002Fsrc\u002Futils\u002Fvalidator.ts`（zod schema）\n- 本地试跑：`pnpm --filter @skillhub\u002Fcli` 后 `node apps\u002Fcli\u002Fdist\u002Findex.js publish \u003Cdir> --dry-run`\n",{"name":5,"description":7},"master","20146bb66b335cc17ea5f8d52acc39931fd2b930","skills\u002Fskill-package-validator",8,"https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub","https:\u002F\u002Fskillhub.proclaw.cc","https:\u002F\u002Fgithub.com\u002FBiglionX","https:\u002F\u002Fproclaw.cc\u002F","2026-09-30 22:08:32",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add BiglionX\u002FSkillHub --skill skill-package-validator",{"tool":53,"command":54},"bunx","bunx skills add BiglionX\u002FSkillHub --skill skill-package-validator",{"tool":56,"command":57},"pnpm","pnpm dlx skills add BiglionX\u002FSkillHub --skill skill-package-validator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fskills\u002Fskill-package-validator\u002FSKILL.md",true,[],[62,80,93,116,129],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":72,"publishedAt":33},"01M718JWA5NFBT4NCGX2VKHTKY","skill-smoke-test","技能包冒烟测试。当需要验证一个技能包（SKILL.md）在真实 Agent 环境中能否安装并正确执行时使用——在沙箱工作区加载技能、运行代表性任务、检查输出并生成测试报告。发布审核与质量评分的运行时验证环节。","https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fskills\u002Fskill-smoke-test\u002FSKILL.md",[68,71],{"categoryNo":69,"categoryName":70,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[73,74,75,76,77,78,79],"skill smoke test","test","smoke","smoke test","testing","报告","生成",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":33},"01M718JRNQ95Z5E5WG4VPYA1TW","repo-dev","SkillHub 仓库开发指引。当需要在 SkillHub（ProClaw AI 技能市场平台）中开发、修改、重构代码，或排查构建\u002F测试问题时使用。涵盖仓库地图、pnpm workspace 命令、代码约定与质量门禁。","https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fskills\u002Frepo-dev\u002FSKILL.md",[],[87,88,89,77,56,90,91,92],"repo dev","repo","dev","workspace","pnpm workspace","地图",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":107,"publishedAt":33},"01M718JQ7N6G2KFV2WXTWM24Z2","code-review","SkillHub 代码审查。当需要审查 PR \u002F 代码改动（web、cli、packages）时使用——运行质量门禁、核对工程约定、检查安全与市场平台特定风险，输出结构化审查意见。","https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fskills\u002Fcode-review\u002FSKILL.md",[99,102],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":103,"categoryName":104,"taxonomyType":105,"taxonomyTypeDesc":106},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[108,109,110,111,112,113,114,115],"code","review","code review","web","pr","cli","安全","packages",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":120,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":124,"publishedAt":33},"01M718JPEHFG2XVYRXPJ9K7VKK","hello-skill","示例技能——输出问候语，用于校验器\u002F冒烟测试","MIT","https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fpackages\u002Fskill-validator\u002Ffixtures\u002Fvalid-skill\u002FSKILL.md",[123],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[125,126,77,127,128,31],"hello","hello skill","node","team",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":136,"publishedAt":33},"01M718JNR0Y78SSPCPXVD8V4VV","invalid-skill","这是一个缺少 name 的无效技能包（校验应拒绝）","https:\u002F\u002Fgithub.com\u002FBiglionX\u002FSkillHub\u002Fblob\u002Fmaster\u002Fpackages\u002Fskill-validator\u002Ffixtures\u002Finvalid-skill\u002FSKILL.md",[135],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[137,138,31,139],"invalid","invalid skill","name"]