尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Garden Skills CI完整拆解:validate-skills与release-skill双工作流设计指南
Garden Skills CI完整拆解validate-skills与release-skill双工作流设计指南【免费下载链接】garden-skillsConardLis open-source Skills collection, featuring web design, knowledge retrieval, image generation, and more.项目地址: https://gitcode.com/GitHub_Trending/we/garden-skillsGarden Skills是 ConardLi 开源的 AI Agent 技能Skills精选合集内置 Web 设计、知识检索、AI 绘图、视频演示等 5 个可直接安装的技能。它的 CI 体系由 validate-skills.yml 和 release-skill.yml 两条工作流组成一套负责把守质量一套负责发布交付。本文将用通俗的方式完整拆解这套 GitHub Actions 双工作流的设计思路帮助新手理解一个多技能仓库是如何做到改一处、全库校验、一键发版的。项目概览一个技能一个独立版本Garden Skills 的目录结构非常清晰每个技能都是 skills/ 下的一个独立文件夹各自带有SKILL.md技能说明和manifest.json名称、版本号、适用 Agent 等元数据。例如skills/web-design-engineer/ — Web 设计工程师技能skills/gpt-image-2/ — AI 绘图提示词技能skills/kb-retriever/ — PDF/Excel 知识检索技能skills/beautiful-article/ — 精美长文生成技能skills/web-video-presentation/ — Web 视频演示技能关键点在于版本号不在仓库根部的 package.json 里而是分散在每个技能的manifest.json中。每个技能独立发版、独立打 tag互不干扰——这是整套 CI 设计的出发点。双工作流为什么这样拆工作流触发时机权限职责副作用validate-skills每个 PR / 推送到 maincontents: read只读校验 冒烟打包 README 同步检查无纯检查release-skill推送*-v*格式 tagcontents: write打包 zip、生成 Release、回写 README 链接创建 Release、向 main 推送提交拆分成两条工作流的好处一目了然高频的 PR 校验保持便宜、快速、无副作用源文件注释原话是 Cheap, fast, no side effects而低频的发布流程才拿到写权限遵循了 CI 安全设计中的最小权限原则。validate-skills 拆解PR 阶段的三道关卡validate-skills.yml 的触发条件限定在路径白名单只有改动skills/**、scripts/release/**或三个语言的 README 时才会运行避免无关 PR 浪费 CI 资源。核心只有一步npm run validate。查看根 package.json 可以发现它其实是三条检查的串联npm run validate # 等价于npm run list npm run pack:all npm run readme:check三道关卡分别是清单与结构校验list-skills.mjs遍历 skills/ 下所有技能检查manifest.json必填字段、名称是否为 kebab-case、版本号是否符合 SemVer、compat里的 Agent 是否在允许列表内以及SKILL.md等必备文件是否存在。校验逻辑集中在 lib/skills.mjs零运行时依赖跑起来飞快。冒烟打包pack-skill.mjs 的--all模式把每个技能真实打包一次成 zip 并计算 SHA-256确保能声明、就能打包把打包失败的问题拦在合并之前。README 同步检查update-readme.mjs 的--check模式README 中每个技能的下载 v1.x.x .zip链接是由机器维护的版本号来源于该技能最新的 git tag而不是 manifest因为 manifest 代表开发中版本tag 才是用户真正能下载到的版本。检查模式只做 diff不产生任何改动。一个容易被忽略的细节checkout 时显式设置了fetch-tags: true。如果忘记拉取 tagCI 会认为所有技能都从未发布过导致 README 检查误报——注释里把这个坑写得明明白白是新手读 CI 源码时很好的范例。release-skill 拆解tag 驱动的自动发版release-skill.yml 由推送 tag 触发约定格式为技能名-v语义化版本例如git tag web-design-engineer-v1.2.0 git push origin web-design-engineer-v1.2.0整个发布流水线共 6 步解析 tag用正则严格匹配skill-vsemver并拆出技能名和版本号格式不合法直接报错退出。工作流层面先用宽松的*-v*触发再由这一步做精确校验——这是 tag 过滤不可靠时的稳健做法。确认技能存在检查skills/skill/目录和manifest.json是否真的存在防止打错 tag 空转。打包调用npm run pack生成dist/release/skill-version.zip与.sha256。zip 的顶层目录固定为skill/用户解压到.claude/skills/等目录即可直接用。生成 Release Notes自动寻找该技能的上一个 tag用git log生成自上个版本以来的改动列表首次发布则回退到展示全部历史并附上安装命令和 SHA-256 校验值。创建 Release用gh release create把 zip 和校验文件挂到 Release 上用户获得一个版本被 pin 死、可复现的下载链接。回写 README 并推回 main先切回默认分支tag 触发时 HEAD 处于 detached 状态注释里特别解释了原因运行npm run readme:sync刷新三个语言 README 的下载链接有 diff 才提交推送保证幂等——连跑两次不会产生多余提交。维护者视角一键发版脚本对贡献者来说打 tag 这一步也被自动化了。cut-release.mjs 是维护者侧的一键发版入口npm run release # 交互式选择要发版的技能 npm run release:dry # 只预览计划不实际执行它先做安全检查在默认分支、工作区干净、与远端同步再列出各技能自上次发版以来的提交让你逐个选择 patch/minor/major 升级最后把版本号 bump README 同步合并为一个提交并与所有 tag一次性原子推送让 CI 看到的始终是自洽的状态。推送完成后打印 Actions 链接剩下的工作就交给 release-skill 工作流。这套设计最值得借鉴的 5 个点职责分离 最小权限检查工作流只读发布工作流可写权限按风险分级。路径触发只在相关文件变化时运行省钱省时。tag 即事实来源README 广告版本以 tag 为准开发版本与发布版本解耦杜绝 404 下载链接。幂等脚本README 同步脚本跑两次不产生 diff可安全地在 CI 和手工场景复用。零依赖工具链发布脚本是纯 Node ESM 脚本scripts/release/不装任何 npm 包CI 冷启动极快。新手快速上手如果你想本地复现这套校验流程克隆仓库如需克隆可使用镜像地址https://gitcode.com/GitHub_Trending/we/garden-skills安装依赖后运行npm run validate体验与 CI 完全相同的三道关卡运行npm run list查看全库技能的版本与健康状态阅读 CONTRIBUTING.md 了解完整的发版约定。小结Garden Skills 用两条轻量工作流就搭出了一条完整的技能发布流水线validate-skills 在 PR 阶段把关能不能合release-skill 在 tag 阶段自动完成怎么发出去。对管理多版本、多组件的开源仓库来说这套校验与发布分离、tag 驱动、脚本幂等的模式非常值得直接抄作业。【免费下载链接】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),仅供参考
RELATED

相关推荐

云南旅游数据分析实战:从数据清洗到可视化

云南旅游数据分析实战:从数据清洗到可视化

1. 项目概述:云南旅游景点数据背后的价值挖掘去年夏天我接手了一个云南旅游数据可视化项目,客户只给了一份包含37万条记录的景区游客数据CSV文件。当我用Python的pandas加载数据时,发现这份原始数据就像云南的野生菌——看似杂乱无章&#xf…

📅 2026/9/15 15:05:07
Proteus仿真HC-05蓝牙串口调光全流程解析

Proteus仿真HC-05蓝牙串口调光全流程解析

简介:本资源是一套基于Proteus与Keil uVision4联合开发的蓝牙调光灯仿真项目,面向电子类专业学生、嵌入式初学者及单片机课程实践者,解决蓝牙串口通信与PWM调光功能在虚拟环境中快速验证的核心需求。压缩包共12个文件,含C源码&…

📅 2026/9/15 15:05:07
智能融合通信:AI赋能下的协议优化与场景落地

智能融合通信:AI赋能下的协议优化与场景落地

1. 项目概述:智能融合通信的年度实践与思考2025年对于通信技术领域而言是充满变革的一年。作为从业者,我们见证了传统通信方式与AI技术的深度整合,这种融合不仅改变了信息传递的效率,更重塑了人机交互的体验模式。本文将系统梳理我…

📅 2026/9/15 15:05:07
MORE NEWS

更多资讯

📰

Node.js原生模块实战:用内置API构建Markdown转HTML静态博客工具

用 Node.js 把 Markdown 批量转成 HTML,这件事本身不新鲜,但如果你全程只用 Node.js 内置的 path、fs、process、child_process、os、crypto、zlib 这些模块,不套任何重型框架,再把 ffmpeg 也塞进构建流程里,体验会完全…

📰

Escrcpy 完全指南:用图形化 scrcpy 把电脑变成 Android 多设备控制中心

Escrcpy 完全指南:用图形化 scrcpy 把电脑变成 Android 多设备控制中心 【免费下载链接】escrcpy 📱 Display and control your Android device graphically with scrcpy. 项目地址: https://gitcode.com/GitHub_Trending/es/escrcpy 项目速览 E…

📰

financial-services接入自有工作流引擎:Temporal与Airflow集成模式完整指南

financial-services接入自有工作流引擎:Temporal与Airflow集成模式完整指南 【免费下载链接】financial-services 项目地址: https://gitcode.com/GitHub_Trending/fi/financial-services financial-services 是 Anthropic 开源的金融服务 AI 智能体项目&am…

📰

如何用 ggml 将 GPT-2 模型从 F16 量化为 Q4_0 并运行量化模型推理

如何用 ggml 将 GPT-2 模型从 F16 量化为 Q4_0 并运行量化模型推理 【免费下载链接】ggml Tensor library for machine learning 项目地址: https://gitcode.com/GitHub_Trending/gg/ggml ggml 仓库的 examples/gpt-2 提供了在纯 CPU 上运行 GPT-2 推理的示例程序&#…

📰

C++实现经典2048小游戏:核心算法与避坑指南

如果让我选一个最适合用来练手 C 的经典小项目,2048 绝对排前三。棋盘就一个 44 二维数组,规则几句话能讲完,但真正实现起来却能踩出一堆 C 的细节坑:数组传参退化、随机数种子、控制台方向键读取、中文乱码、合并逻辑的边界条件……

📰

使用 Nx 构建 Bitwarden Monorepo:命令速查、项目配置与缓存机制实战指南

使用 Nx 构建 Bitwarden Monorepo:命令速查、项目配置与缓存机制实战指南 【免费下载链接】clients Bitwarden client apps (web, browser extension, desktop, and cli). 项目地址: https://gitcode.com/GitHub_Trending/cl/clients 本指南以 Bitwarden 客户…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬