بنقرة واحدة
update-agent-infra
更新项目 AI 协作配置。 当需要把项目 AI 协作配置更新到最新模板时使用。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
更新项目 AI 协作配置。 当需要把项目 AI 协作配置更新到最新模板时使用。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
标记任务为阻塞状态并记录原因。 当任务因外部阻塞无法推进、需要挂起并记录原因时使用。
取消不再需要的任务并转移。 当某个任务不再需要、应从 active 工作中撤下时使用。
关闭 Code Scanning 告警并记录理由。 当某条 Code Scanning 告警已处理或需按理由关闭时使用。
关闭 Dependabot 安全告警并记录理由。 当某条 Dependabot 安全告警已处理或需按理由关闭时使用。
标记任务完成并归档。 当任务工作已完成并验证、需要收尾归档时使用。
从平台 Issue 评论还原本地任务文件。 当本地任务文件缺失、需要从平台 Issue 评论还原时使用。
| name | update-agent-infra |
| description | 更新项目 AI 协作配置。 当需要把项目 AI 协作配置更新到最新模板时使用。 |
确定性步骤脚本化:managed / ejected 文件处理、注册表同步、配置更新
全部由 sync-templates.js 脚本执行,不得逐文件手工处理。
脚本保证原子性和幂等性。
禁止委托子代理:阶段 B(merged 文件智能合并)必须在主会话中直接执行, 不得委托给子代理。子代理上下文有限,容易误判文件内容。
执行以下命令,一次性处理所有确定性步骤:
node .agents/skills/update-agent-infra/scripts/sync-templates.js
脚本读取 .agents/.airc.json,并通过 npm 自动定位已安装的 @fitlab-ai/agent-infra/templates/ 目录。同步前会合并 templates.sources 中配置的外部模板源;相同文件以内置模板为准,多个外部源之间后者覆盖前者,冲突会写入报告。然后自动完成:
defaults.json → .agents/.airc.json).agents/.airc.json(templateVersion、文件列表)脚本输出 JSON 到 stdout,解析并记录报告内容。
关键字段:
error:错误信息(如非空则停止并报告)templateVersion:模板源包的精确 v 前缀 SemVer(可包含 prerelease 或 build metadata)templateRoot:模板文件根目录绝对路径templateSources.conflicts:外部模板源冲突列表;报告中必须显式展示,说明哪些文件因内置模板或后续外部源获胜而被忽略managed.written / managed.created:已更新/新建的 managed 文件managed.protected:检测到用户单边修改或删除、因此保留本地状态的 guarded managed 文件managed.conflicts:来源未知、双边修改或平台切换时无法证明官方所有权的 guarded managed 冲突;必须逐项展示 target、reason 与三方哈希managed.removed:被删除的 managed 文件(包括模板迁移时移除的旧路径)managed.skippedPlatform:因归属其他平台而被跳过的 managed / merged 条目managed.skippedTUI:因 tuis 中未启用对应内建 TUI 而被跳过的 managed / merged 条目(落在同一路径前缀下的 customTUI 命令文件会被保留)merged.pending:需要 AI 处理的 merged 文件列表
target(项目中的目标路径)和 template(模板根目录下的相对路径)registryAdded:新增的文件注册条目configUpdated:.agents/.airc.json 是否已更新如果 managed.conflicts 非空,输出全部冲突并立即停止,不进入阶段 B;禁止覆盖冲突文件或推进其 files.managedBaselines。
根据报告中 merged.pending 列表,逐个文件处理。对于每个条目:
<templateRoot>/<template> 读取模板文件project 和 org 占位符替换为 .agents/.airc.json 中的实际值<项目根>/<target>)如果本地文件不存在(首次安装),直接写入渲染后的模板,跳过合并。
如果本地文件存在,执行以下合并算法:
使用渲染后的新模板作为输出的基底。模板代表最佳实践,其结构和内容具有权威性。
扫描本地文件,找出比模板内容"多"的部分(用户增量):
将萃取的增量合入新模板的适当位置:
整体检查合并后文件的逻辑完整性,确保:
当本地文件修改过的内容与模板新内容冲突时:
合并完成后,如果仍有模板 TODO 未被本地文件的内容填充,在报告中提示用户。
方向检查:用 git diff 抽查变更方向是否正确。
正确方向:模板新内容 → 本地;错误方向:将已渲染内容退化回占位符。
如果发现错误方向的变更,暂停并排查原因。
检查 git diff 中是否包含 .agents/skills/update-agent-infra/SKILL.md 的变更。
如果该文件在本次更新中被修改,在报告末尾输出以下警告:
⚠ update-agent-infra 技能自身已更新。
建议再次执行 /update-agent-infra 以确保所有新逻辑生效。
原因:本次执行使用的是旧版技能逻辑,新版技能可能包含额外的处理步骤。 再次执行可确保新逻辑完整应用。 用户也可以在执行前先运行
ai update来预先更新技能文件,避免需要两次执行。
基于脚本报告和 merged 合并结果,输出完整的更新报告,包括:
templateSources.conflicts 非空,必须逐项列出)如有变更需要提交,追加:
重要:以下「下一步」中列出的所有 TUI 命令格式必须完整输出,不要只展示当前 AI 代理对应的格式。如果
.agents/.airc.json中配置了自定义 TUI(customTUIs),读取每个工具的name和invoke,按同样格式补充对应命令行(${skillName}替换为技能名,${projectName}替换为项目名)。
下一步 - 提交代码:
- Claude Code / OpenCode:/commit
- Gemini CLI:/agent-infra:commit
- Codex CLI:$commit
输出报告后停止,不要对项目做其他更改。