skill 的依赖管理,停在了"前包管理时代"
skill(指令 + 脚本的打包单元)决定 agent 行为。AGENTS.md 告诉 agent 怎么行为,SKILL.mod 声明 agent 需要什么能力。skillmod 把 go mod 的同构方案搬到 skill 上:SKILL.mod 声明,SKILL.lock 用 dirhash 内容寻址锁定,skillmod sync 幂等对齐;share 把同一套安装分发给任意 agent,verify 在漂移时让构建失败。
- ✗ 手工复制、git submodule、平台市场,同团队不同机器的 agent 行为不一致
- ✗ 出了故障,回答不了"当时用的是哪个版本"
- ✓ SKILL.lock 内容寻址,任何篡改在 verify 时无所遁形
三个场景,对号入座
skillmod 不为"一台机器、一个 skill"存在。下面任一场景成立,声明加锁就物有所值。
01
全局底座,项目选装
个人常用技能声明在全局清单,全机器可用;项目依赖声明在项目根的 SKILL.mod / SKILL.lock,随仓库提交。项目只装自己需要的 skill,换项目不串味。两个清单互不合并,命令带 --global 才动全局。
02
项目分发,一条 sync 到位
SKILL.mod 与 SKILL.lock 提交进仓库,.agents/skills/ 加进 .gitignore。新同事 clone、你换新机器、CI 跑构建,都是同一条 skillmod sync:按锁文件装出逐字节一致的 skill 集合,share 记录的 agent 链接也在每台机器自动重建。
03
更新,或钉死版本
skillmod update 把每个远端 skill 挪到最新的不可变版本——最高 tag 优先,无 tag 仓库才跟 HEAD。要钉住某个版本,在 SKILL.mod 的 version 字段写死 tag 或 commit,分支名直接拒绝。SKILL.lock 记下 version、commit、dirhash,"当时用的哪个版本"永远有答案。
每个场景的完整步骤、接管存量、卸载清理,见 场景指南。
装好之后,你得到什么
不是又一个安装脚本,而是一套可提交、可复现、可校验的 skill 声明。
每台机器,逐字节一致
clone、换机、CI 跑构建,同一条 skillmod sync 装出同一套 skill。
版本问题有答案
SKILL.lock 记录 version、commit、dirhash,"当时用的哪个版本"随时可查。
篡改与漂移现形
内容寻址锁定,skillmod verify 在漂移时退出码 2,可直接当构建门槛。
本地修改不被硬覆盖
冲突目标保留并报告,exit 3 把决定权交还给人。
十一条命令、地址与版本规则、存储与配置——完整参考见 skillmod 文档。
让 Agent 引导安装推荐
npx skills add huija/skillmod --skill skillmod --global
这条命令只是把引导技能装给 Agent;再对它说一句"安装 skillmod,并确保它可以从 PATH 调用",平台识别、SHA-256 校验、装入 PATH 都由它完成。
手动安装 · 一条命令直达
go install github.com/huija/skillmod@v0.0.5
需 Go 1.26.6+;不用 Go 也可以从 Releases 下载压缩包,对照 checksums.txt 校验后放进 PATH。