用途
本技能用于在项目中刷新 ai-dev-kit 的规则。ai-dev-kit 的开发者规则(rules/*.md)存放在 SatanLittleHelper/ai-dev-kit 仓库中,并以 git 子模块的形式拉取到项目的 .claude/ai-dev-kit 目录,再通过 @import 接入 CLAUDE.md。源仓库发生变更后,已安装的项目不会自动获得这些改动,必须有人在该项目中更新子模块。本技能把这一系列操作封装起来,使其在收到请求时可以安全、可预期地执行。
对于更新已安装技能本身(npx skills update),请参见另一个独立技能 update-project-skills——两者被有意分开,不合并到本技能中。
主要能力与执行步骤
-
范围检查:确认当前项目中 .claude/ai-dev-kit 作为子模块存在(git submodule status .claude/ai-dev-kit 成功,或 [ -d .claude/ai-dev-kit ])。如果不存在,告知用户该项目没有 ai-dev-kit 规则子模块并停止,不执行任何操作。
-
将子模块更新到其跟踪分支上的最新提交:
git submodule update --remote .claude/ai-dev-kit
CLAUDE.md 对 rules/RULES.md 的 @import 会在下次加载时自动获取新内容,Claude Code 本身无需进一步操作。
- 仅在项目已选择启用 Codex 支持时,重新生成 AGENTS.md。判断依据是 AGENTS.md 中是否包含标记 <!-- ai-dev-kit:rules:start——该标记的存在即表示“已选择启用”(由 ai-dev-kit 的 setup.sh 提示设置,或手动运行生成器产生),此处不再重复询问。如果存在该标记:
bash .claude/ai-dev-kit/rules/build-agents-md.sh
如果标记不存在,则静默跳过此步骤——不要因为一次无关的“更新规则”请求而顺带询问用户是否启用 Codex 支持;该问题属于 ai-dev-kit 的 setup.sh,在设置时询问一次即可。
-
展示变更内容:运行 git status --short 和 git diff --stat,向用户报告变更的文件(通常是 .claude/ai-dev-kit 的子模块指针,以及第 3 步运行时的 AGENTS.md)。
-
提交前询问:根据 rules/base/git-and-commits.md,git commit 仅在用户明确要求时运行,此处绝不自动提交。展示 diff 并询问是否提交。如果用户同意,按照 rules/base/git-and-commits.md 的要求处理提交信息格式(过去时、单行、如项目跟踪工单则使用 .claude/dev-conventions.json 中的工单前缀),并执行同一文件中的提交前分支检查。
-
无操作情况:如果子模块更新报告无变更(已是最新提交),且第 3 步未运行或未产生 diff,则如实说明,跳过 diff 和提交询问。
-
失败情况:如果任何命令出错(网络、子模块未初始化等),向用户展示其实际输出,而不是吞掉错误或静默重试。
常见错误
- 因为技能来自同一仓库,就顺带运行 npx skills update:那是 update-project-skills 的职责,两者应保持分离,不要把技能更新逻辑并入本技能。
- 在项目从未选择启用 Codex 支持时重新生成 AGENTS.md:仅当 AGENTS.md 中已存在 ai-dev-kit:rules:start 标记时才运行生成器,不要在此再次询问或添加该标记。
- 更新后自动提交子模块指针/AGENTS.md 变更:根据 rules/base/git-and-commits.md,应先询问,仅在明确请求后、经过分支检查和提交信息确认再提交。
- 在没有 .claude/ai-dev-kit 子模块的项目中运行本技能:应停止并告知用户该项目不使用 ai-dev-kit 规则子模块。
- 在 git submodule update 出错时静默重试:应向用户展示实际错误。
适用场景
适用于已通过 git 子模块方式接入 ai-dev-kit 规则、并希望将规则同步到源仓库最新版本的项目。
限制
本技能不负责更新已安装的技能本身;不自动提交变更;在项目未选择启用 Codex 支持时不会生成 AGENTS.md;在缺少 .claude/ai-dev-kit 子模块的项目中不执行任何操作。