SuperAPI AI 工具集

update-docs

写作与研究

查看项目

更新于 10-16 04:13

技能介绍

用途

update-docs 用于研究当前代码状态,然后更新对应文档,确保文档与代码保持同步。

触发方式

关键词触发:update docs、sync docs、docs out of date、update-docs。

自动触发:在 precommit 通过后自动触发,仅当变更映射到 docs/features/ 下的功能时(参见 @rules/auto-loop.md § Tiers, gate sequence)。也可手动调用。

不适用场景

  • 文档审查:使用 /codex-review-doc
  • 创建新文档:使用 /tech-spec 或 /create-request
  • 文档重构:使用 /doc-refactor

主要流程

第 1 步:定位文档与相关代码(五级级联)

关键原则:找不到目标时输出 ## Gate: ⚠️ Need Human,不要猜测或创建新文档。

使用共享的功能上下文解析算法(参见 @skills/create-request/references/feature-context-resolution.md)。

关于 scan_error 门控:scan_error !== false 表示源集合未知而非为空,应报告并走 ⚠️ Need Human 退出,而不是对一个无法枚举的语料库进行同步。门控条件是 !== false,而不是 === true:来自 shell 回退的 {} 载荷根本不携带该字段,而非空键并不能证明集合完整。

置信度与动作:

置信度 动作
high/medium 按检测到的功能继续
low 带警告继续
null(未找到) 输出 ## Gate: ⚠️ Need Human,不要猜测

第 1.5 步:对每个目标分类——同步权威、冻结记录

本技能重写当前权威文档,不重写记录。

scripts/lib/doc-metadata.js 中的 resolveDocRole(path, source, taxonomy) 判断文件属于哪种角色,owesCodeAlignment(path, source, taxonomy) 以布尔值给出同一答案——当文档角色为回退(当前权威)角色时,该文档才需要与代码对齐。

两个函数都以仓库路径作为第一个参数,绝不接受角色标签。

四种角色如下(来自该文件中的 BUILTIN_ROLE_CONFIG.closed_set):

角色 匹配(path_defaults) 本技能的动作
当前权威——需要与代码对齐 4-implementation*;首段为 skills/rules/agents/commands 的任何内容;以及回退项(README.md 即通过回退解析) 重写代码变更所涉及的章节
设计记录——陈述决策 惯例上为 0-feasibility-study*、1-requirements*、2-tech-spec*、3-architecture*——但模式是 ^[0-3]-(feasibility requirements
工作记录——陈述被要求做什么 requests/ 段下的任何内容 不重写——本技能完全不碰。/create-request --update 只能覆盖恰好四个字段(Status、Progress 表、AC 复选框、Progress.Note);工单中其余内容冻结,已关闭工单完全冻结。这是普通更新的全部可变集合。唯一例外是已报告的事实更正——非生命周期记录的既成事实(如路径或日期),或从未作为工单陈述的未填模板占位符——也可适用于已关闭工单,仅授权该更正,绝不涉及无关的删减或清理;必须在 Progress.Note 中说明。它绝不能更改 Status、Progress 阶段状态或 AC 复选框状态:这些生命周期字段仍受冻结和普通转换规则约束
历史记录 review-log-、adr- 不重写。仅追加

owesCodeAlignment(path, source, taxonomy) 等价于 resolveDocRole(path, source, taxonomy) === FALLBACK_ROLE——仅当前权威角色,因此三个记录行是一个决策,而非三个。按角色命名,而非按位置命名。

四个规范配对——0-feasibility-study、1-requirements、2-tech-spec、3-architecture——是命名惯例(@rules/docs-numbering.md),而非分类器测试的内容。实测 2026-08-21:1-tech-spec.md、3-requirements.md、0-architecture.md 和 2-feasibility-study.md 都解析为设计记录,因为前缀和词干是独立匹配的。分类器比惯例更宽,这是有意为之,因此编号错误的规范仍受保护免于重写。停止之处在于前缀:4-tech-spec.md 越过 [0-3] 落入回退,解析为当前权威,即可重写。编号超出范围的规范会失去其名称所暗示的保护,因此应修正编号而非依赖词干。

与今日代码不一致的记录并非过时——这种不一致正是记录本身。编辑它使其一致会销毁所决定内容的唯一副本,且毫无收益:审查者按记录差异配置文件阅读记录,该配置文件不承担代码对齐义务(skills/doc-review/SKILL.md § Review Profiles)。

对被指向的记录应报告而非静默跳过——“不在重写范围内”是调用者需要的事实,沉默会被读作“已同步”。

第 2 步:研究当前代码状态

关键研究项:

  • 是否新增了脚本 / 技能 / 命令?
  • 现有文件是否有逻辑修改?
  • 是否新增了配置或规则?
  • 是否有 API 或接口变更?

第 3 步:对比文档与代码差异

项目 文档描述 当前代码 状态

第 4 步:更新文档

根据差异更新文档内容:

  • 架构图(Mermaid sequenceDiagram / flowchart)
  • 核心服务表
  • API 描述
  • 数据模型

第 5 步:验证

更新后:

  • 重新阅读已更新的文档章节
  • 验证所有新增模块均已记录
  • 验证所有已移除模块均已清理

安全阀

文档同步后,将代码差异与同步前基线对比。如果存在新的代码变更(例如 lint:fix 修改了代码),返回审查循环。

输出

Doc Update Report

Document Sections Updated Status

Changes Made

  • <summary of each update>

Verification

  • [ ] New modules documented
  • [ ] Removed modules cleaned
  • [ ] Diagrams updated