用途
该技能用于在当前项目中,将已安装的技能刷新到其最新发布版本。它面向使用 npx skills 管理技能的项目,帮助开发者安全、可预测地完成技能更新。
主要能力
- 检查当前项目根目录是否存在 skills-lock.json,以确认项目是否通过 npx skills 管理技能。
- 以项目范围、非交互方式运行更新命令:npx skills update -p -y。其中 -p 将更新限制在项目技能,不会触碰全局 ~/.claude/skills;-y 跳过 CLI 的范围提示,避免等待输入而挂起。
- 展示更新后的变更:运行 git status --short 和 git diff --stat,向用户报告变更的文件(通常包括 skills-lock.json,以及任何同步的技能文件)。
- 在提交前询问用户:根据 rules/base/git-and-commits.md,git commit 仅在用户明确要求时运行,不会自动提交。如果用户同意,则按照该规则生成提交信息(过去时、单行、如项目跟踪工单则使用 .claude/dev-conventions.json 中的工单前缀)。
- 处理无变更情况:如果 npx skills update 报告没有变化,则直接说明,跳过 diff 和提交询问。
- 处理失败情况:如果命令出错(网络、注册表等),向用户展示 CLI 的 stderr,而不是吞掉错误或静默重试。
使用方式
- 范围检查:确认当前项目根目录存在 skills-lock.json。如果不存在,告知用户该项目不通过 npx skills 管理技能并停止,不执行任何操作。
- 运行更新:执行 npx skills update -p -y。
- 展示变更:运行 git status --short 和 git diff --stat,报告变更文件。
- 提交前询问:展示 diff 并询问是否提交。仅在用户明确同意后,按照 rules/base/git-and-commits.md 提交。
- 无变更:直接说明没有变化。
- 失败:展示 CLI 的 stderr。
适用场景
- 用户希望刷新当前项目中已安装的技能到最新发布版本。
- 需要避免影响全局技能(~/.claude/skills)的场景。
- 需要以非交互方式运行更新,避免 CLI 挂起。
- 需要先查看变更再决定是否提交的场景。
限制
- 仅适用于通过 npx skills 管理技能的项目(存在 skills-lock.json)。
- 不负责更新规则子模块(.claude/ai-dev-kit)或生成的 AGENTS.md,这些由 update-project-rules 技能处理,两者刻意分开。
- 不会自动提交,必须用户明确要求。
- 命令出错时不会静默重试,而是展示 stderr。
- 常见错误包括:运行不带标志的 npx skills update;自动提交 skills-lock.json 变更;在没有 skills-lock.json 的目录中运行;静默重试 CLI 错误;以及在此技能中同时更新 .claude/ai-dev-kit/AGENTS.md。