SuperAPI AI 工具集

dym-scientific-agent-skills-pin-va-cap-nhat

智能体与模型

查看项目

更新于 10-18 01:22

技能介绍

用途:该技能面向科学智能体技能(skill)的版本治理。其核心主张是:skill 是 agent 遵循的指令,静默的更新会在两次运行之间改变 agent 行为,在需要可复现的分析中并不可取。该技能通过固定版本,把升级变成有意识的动作。

安装器写入的追踪元数据:gh skill install 会把来源写入已安装版本的 frontmatter。以 depmap 安装后的 frontmatter 为例,相比仓库中的版本,metadata 增加了 3 个 github-* 键:github-path、github-ref(如 refs/tags/v2.66.0)、github-repo 和 github-tree-sha,以及 skill-author 与 version。需要注意两个不同的版本:metadata.version 是 skill 自身版本(如 "1.0"),由作者按仓库规则递增;github-ref / github-tree-sha 是集合的版本,gh skill update 用它检测变更。快速检查当前安装版本的命令为:grep -A6 'metadata:' .claude/skills/*/SKILL.md | grep -E 'github-ref|version|^\S+SKILL'。

固定版本:可按 release tag 固定(gh skill install K-Dense-AI/scientific-agent-skills depmap --pin v2.66.0),也可按 commit SHA 固定(--pin 1e5eeffbdad3749125afe7ab48a39694e27f181c),或在技能名后直接写 @VERSION(depmap@v2.66.0)。VERSION 解析为 git tag 或 commit SHA;未固定时,解析顺序为最新 release tag,然后是默认分支的 HEAD。使用 npx skills 时,锁定记录在项目的 skills-lock.json 中,可用 npx -y skills experimental_install 恢复;原文提示该文件在源仓库的 .gitignore 中,但在自己的项目里应当提交,它是复现的锁定点。

更新:常用命令包括 gh skill update --dry-run(预览、不改文件)、gh skill update depmap paper-lookup(更新指定技能并请求确认)、gh skill update --all(全部更新不询问)、gh skill update --force(即使已最新也重新下载,覆盖本地修改)、gh skill update --unpin depmap(先取消固定再更新)。根据 gh skill update --help,其行为是:比较本地 frontmatter 中的 tree SHA 与远端,而非比较日期;自动扫描所有宿主目录(Copilot、Claude、Cursor、Codex、Gemini、Antigravity)的项目与用户作用域;已固定的技能会被跳过并给出提示,因此 update --all 并不意味着一切都已最新;--force 会覆盖被本地修改的技能文件,但不会删除你新增的文件,若曾手工打补丁,结果可能是不完整的混合状态。npx skills 的更新方式:npx -y skills update(交互)、npx -y skills update -g -y(仅全局、不询问)、npx -y skills update -p -y(仅项目)。

推荐的升级流程:先用 cp -R .claude/skills .claude/skills.bak 保留当前版本作对照;用 gh skill update --dry-run 查看将发生的变更;执行 gh skill update --all;最后用 diff -ru .claude/skills.bak .claude/skills | head -200 阅读指令差异。原文强调第四步最容易被跳过:对 SKILL.md 的 diff 就是行为差异,不读它相当于未经审查就合并陌生代码。

卸载:npx skills 可执行 npx -y skills remove -s "depmap,paper-lookup" -y,或用 npx -y skills remove --all 全部卸载(已隐含 -y)。手动安装或 gh skill 则删除目录:rm -rf .claude/skills/depmap 与 rm -rf .agents/skills/depmap。gh skill 没有 remove 子命令,删除目录是正确做法。

常见陷阱:在项目与用户两个作用域重复安装同一技能会存在两份,宿主通常采用项目版,应同时检查 ls .claude/skills 与 ls ~/.claude/skills;.agents/skills 被多个宿主共用,在那里删除会影响所有指向它的宿主;skill 的 metadata.version 可能内容已变而版本号未动(作者忘记递增),不应把它作为复现基准,而应使用 github-tree-sha;固定版本在安全性上也会老化,冻结了尚未修复的安全发现,应定期复查,而非固定后遗忘。