ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何把技能打包成zip加SHA-256?Garden Skills pack-skill.mjs全解析

如何把技能打包成zip加SHA-256?Garden Skills pack-skill.mjs全解析 如何把技能打包成zip加SHA-256Garden Skills pack-skill.mjs全解析【免费下载链接】garden-skillsConardLis open-source Skills collection, featuring web design, knowledge retrieval, image generation, and more.项目地址: https://gitcode.com/GitHub_Trending/we/garden-skills在 Garden Skills 这个开源 Agent 技能仓库中发布流程的核心是 pack-skill.mjs一条命令就能把skills/目录下的任意技能打包成规范的zip 发布包并自动生成配套的SHA-256 校验文件保证用户下载后可以验证完整性。本文将用零代码门槛的方式带你完整读懂这个打包脚本的每一步。一、先搞懂一个技能是怎么住在仓库里的Garden Skills 采用统一的技能目录结构每个技能都是一个独立文件夹例如 skills/web-design-engineer/里面至少包含两样东西SKILL.md技能的说明书带 YAML 头信息声明name和descriptionmanifest.json技能的身份证记录 name、version、category、compat 等字段打包脚本就是围绕这些约定工作的——它读取 manifest 里的版本号决定产出的 zip 叫什么名字。二、打包三步走最常用的 3 条命令 打包入口文件是 scripts/release/pack-skill.mjs仓库在 package.json 中已经预置了快捷脚本三种玩法覆盖 99% 的场景想做什么命令打包单个技能node scripts/release/pack-skill.mjs --skill kb-retriever按指定版本号打包--skill web-design-engineer --version 1.2.0一次性打包全部技能node scripts/release/pack-skill.mjs --all即npm run pack:all自定义输出目录追加--out 目录名默认输出到dist/release/跑完以后你得到的产物固定在dist/release/下每个技能都是三件套技能名-版本.zip—— 技能发布包技能名-版本.zip.sha256—— SHA-256 校验文件index.json—— 本次构建的汇总清单三、打包背后发生了什么6 步流程全解析脚本内部是一条严谨的流水线任何一步出问题都会立刻停下并报错。1️⃣ 双重校验manifest 目录结构打包前先体检。校验逻辑集中在共享库 lib/skills.mjs 中检查内容包括manifest.json 是否包含必填字段name / version / description / category / compat版本号是否符合SemVer规范如1.2.0技能名是否为小写连字符格式且与文件夹名一致SKILL.md 的 YAML 头信息中name是否与文件夹名匹配任何一条不通过打包直接失败——这是坏包流出仓库前的第一道闸。2️⃣ 版本漂移检查防止标签与版本打架如果你通过--version指定了版本号而它与 manifest 中写的版本不一致脚本会抛出Version drift错误提示你先去修改skills/技能名/manifest.json的 version 字段。先改清单、再打包这是本仓库铁律确保 zip 文件名、git tag、manifest 三者永远一致。3️⃣ 干净打包自动排除脏文件脚本调用系统zip命令并按 EXCLUDE 排除清单 自动剔除不该发布的内容node_modules、.DS_Store、Thumbs.db、*.log、.idea、.vscode等。还有一个细节zip 的顶层目录固定是技能名/意味着用户解压后可以直接把整个文件夹丢进.claude/skills/或.agents/skills/无需手动整理路径。4️⃣ SHA-256 摘要为 zip 盖上防伪章 打包完成后脚本用流式读取方式计算 zip 的 SHA-256 值并写入旁边的.sha256文件格式是标准的 sha256sum 文本摘要值 文件名。这有什么用用户下载后执行sha256sum -c 文件.zip.sha256一条命令就能确认你下载到的字节和官方发布的完全一致任何传输损坏或篡改都会校验失败。5️⃣ 5 MB 软门槛体积超标只提醒、不拦截如果 zip 超过 5 MB脚本会打印 WARNING建议你精简捆绑的资源文件。注意这是软门槛——它只警告不失败给你留出手动权衡的空间。6️⃣ 生成 index.json机器可读的构建清单全部打包完成后脚本在输出目录写入index.json记录构建时间戳builtAt以及每个产物的名称、版本、文件名、SHA-256 值和字节数。这份清单是后续 CI 流程和 README 下载链接同步见下一节的数据来源。四、放在更大的发布链条里看 pack-skill.mjs 只是打包工人仓库用一组脚本搭起完整流水线全部位于 scripts/release/ 目录脚本角色cut-release.mjs交互式一键发版检查分支、提升版本号、打 git tag 并推送pack-skill.mjs本文主角打 zip SHA-256通常由 CI 在 tag 触发时执行list-skills.mjs体检报告列出所有技能及其 manifest/结构校验状态update-readme.mjs按最新 git tag 重写 README 中的下载链接保证链接不 404典型节奏是维护者跑npm run release触发 cut-release 打 tag → 远端 CI 执行 pack-skill 构建 zip 与校验文件 → update-readme 把 README 的下载区块指向新版本。一条命令启动全程无人工干预。五、新手常见疑问 FAQQ为什么不用 npm 库压缩而是调用系统zip命令为了可移植性和尽量稳定的输出zip -X会省略额外文件属性让同内容在不同机器上打包出的结果更接近一致SHA-256 因此更可预期。Qzip 解压出来是散文件还是一个目录始终是一个顶层目录 全部内容目录名就是技能名解压后整目录拷贝即可用。Q遇到Validation failed报错怎么办先运行npm run list即 list-skills.mjs查看是哪个字段不合规按提示修正 manifest 或 SKILL.md 后再打包。六、总结Garden Skills 的 pack-skill.mjs 把打包这件容易踩坑的事变成了一条确定性流水线先校验、后压缩、再哈希、末汇总。它产出的 zip SHA-256 index.json 三件套让用户既能一键安装技能又能一行命令验证完整性——这正是开源发布工具该有的样子。【免费下载链接】garden-skillsConardLis open-source Skills collection, featuring web design, knowledge retrieval, image generation, and more.项目地址: https://gitcode.com/GitHub_Trending/we/garden-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表