$ go mod for Agent Skills

skillmod

声明依赖、锁定内容、一键对齐。任何机器,得到完全一致的 skill 集合

zsh
$ skillmod init
扫描现有 skills,生成 SKILL.mod
$ skillmod get github.com/anthropics/skills//skills/pdf
pdf 已加入 SKILL.mod,锁定伪版本
$ skillmod sync
按 SKILL.lock 对齐,幂等完成
$ skillmod verify
drift: none

skill 的依赖管理,停在了"前包管理时代"

skill(指令 + 脚本的打包单元)决定 agent 行为。AGENTS.md 告诉 agent 怎么行为,SKILL.mod 声明 agent 需要什么能力。skillmod 把 go mod 的同构方案搬到 skill 上:SKILL.mod 声明,SKILL.lock 用 dirhash 内容寻址锁定,skillmod sync 幂等对齐。

  • 手工复制、git submodule、平台市场,同团队不同机器的 agent 行为不一致
  • 出了故障,回答不了"当时用的是哪个版本"
  • SKILL.lock 内容寻址,任何篡改在 verify 时无所遁形

能力

七个命令

  • init 扫描现有 skills 生成声明
  • get 添加依赖并锁定版本
  • sync 按 lock 幂等对齐
  • list 列出已声明依赖
  • update 并发检查并升级版本
  • prune 确认制清理多余文件
  • verify CI 校验漂移

源直接走 Git

对应 go 的 direct 模式:skill 是带 tag 的仓库,或 monorepo 子目录(<repo>//<subdir>)。打 tag 即发布,无服务端、无 registry。

三种版本形态

semver tag、commit SHA、伪版本。分支名直接拒绝,可变引用不可锁定。

内容寻址锁定

SKILL.lock 用 dirhash 锁定内容,纯函数生成,无时间戳,禁止手改。

共享持久存储

只读整仓快照存放于 ~/.agents/skillmod/pkg/mod,HTTPS 与 SSH 变体共享存储。

拷贝安装,字节级一致

Windows 兼容的字节级拷贝。sync 永不自动删除文件,清理走确认制 prune。

扁平 1:1 · 零遥测

无传递依赖解析,无约束求解器(requires 字段预留)。不收集任何数据。

两个文件,说清一切

SKILL.mod 由人维护、提交入库;SKILL.lock 由工具维护,确定性生成。

SKILL.mod
schemaversion = 1

[[skill]]
name = "code-review"
source = "github.com/example/agent-skills//code-review"
version = "code-review/v1.2.0"

[[skill]]
name = "legacy-notes"
local = true
SKILL.lock
[[skill]]
name = "code-review"
source = "github.com/example/agent-skills//code-review"
version = "code-review/v1.2.0"
commit = "7f3a9c1e00000000000000000000000000000000"
dirhash = "h1:4wYq0b..."

一条命令,开始使用

需要 Go 1.26.1 或更高版本;也可以从 Releases 下载对应平台的压缩包。

$ go install github.com/huija/skillmod@v0.0.1