文档同步检查 update-docs

文档同步检查技能用于在源代码变更后,自动检查公开文档和内部代码规范的一致性。它通过映射代码路径到相关文档,识别并更新过时的内容,确保CLI命令、文件格式、默认值等描述准确。同时,它验证项目内部的代码规范,如Godoc风格、谓词命名和文件组织,防止代码与文档的漂移。适用于软件开发中的DevOps流程,是代码提交前的重要质量保证步骤。关键词:文档同步,代码规范,DevOps,质量保证,自动化检查,CLI文档,内部规范。

DevOps 0 次安装 0 次浏览 更新于 2/27/2026

name: update-docs description: “检查文档和代码规范在更改后是否一致。在修改源代码后、提交前,或当用户要求同步文档时使用。”

当源代码发生变化时,检查公开文档和内部代码规范的一致性。

何时使用

  • 修改了具有用户可见行为的源代码后
  • 在提交涉及CLI标志、文件格式或默认值的更改之前
  • 当用户要求将文档与代码同步时
  • 添加或删除命令、子命令或标志后

何时不使用

  • 更改纯粹是内部的,不影响文档时(例如,重命名私有变量)
  • 仅更改了文档时(没有代码可偏离)
  • 当用户明确表示不需要更新文档时

使用示例

/update-docs
/update-docs (在向ctx代理添加--session标志后)

工作流程

  1. Diff 分支:git diff main --stat(或相关基准)
  2. 验证 映射是否最新(见下文“自我维护”)
  3. 映射 已更改的包到受影响的文档(见表格)
  4. 阅读 每个受影响的文档;标记与新代码矛盾的部分
  5. 更新 或为用户标记
  6. 验证:在文档站点中运行 mkdocs build(如果可用)

代码到文档映射表

源路径 可能受影响的文档
cmd/ctx/, internal/cli/ docs/cli-reference.md
internal/config/ docs/context-files.md
internal/context/ docs/context-files.md, docs/prompting-guide.md
internal/drift/ docs/context-files.md(漂移部分)
internal/recall/ docs/session-journal.md
internal/bootstrap/ docs/index.md(入门指南)
internal/claude/, internal/rc/ docs/integrations.md
internal/assets/ docs/context-files.md(模板)
internal/assets/claude/skills/ .claude/skills/(实时版本)
SECURITY.md docs/security.md
.context/ 模式更改 docs/context-files.md

检查内容

  • 新的CLI标志/命令:是否在 docs/cli-reference.md 中?
  • 更改的文件格式docs/context-files.md 是否匹配?
  • 新的上下文文件:是否已添加到读取顺序文档和 docs/context-files.md 中?
  • 移除的功能:文档中是否仍有引用?
  • 更改的默认值:文档中的示例是否使用了旧的默认值?
  • 技能模板更改.claude/skills/ 中的实时版本是否与 internal/assets/claude/skills/ 匹配?
  • 架构漂移:当添加、移除或重命名包,或依赖关系发生变化时,更新 .context/ARCHITECTURE.md(组件映射、依赖关系图和文件布局部分)。ctx drift 会扫描 ARCHITECTURE.md 中的死反引号路径引用。

自我维护

此映射表会漂移。在依赖它之前:

  1. ls internal/:是否有任何包不在表中?添加它们。
  2. ls docs/*.md:是否有任何文档页面不在表中?映射它们。
  3. 如果更新了表格,请直接编辑此技能文件。

此技能是其自身的第一个测试用例:如果映射表已过时,那么该技能在其职责上已经失败。

内部代码规范

同时检查更改的代码是否遵循项目模式(而非Go默认模式):

Godoc 风格

项目使用显式的 参数/返回 部分,而非标准godoc。

// 良好(项目风格):
// FunctionName 执行X。
//
// 参数:
//   - param1: 描述
//
// 返回:
//   - 类型: 描述
func FunctionName(param1 string) error

// 不良(标准godoc;代理语料库漂移):
// FunctionName 使用 param1 执行 X。
func FunctionName(param1 string) error

验证godoc注释是否与实际参数和行为匹配。

谓词命名

项目使用 不带 Is/Has/Can 前缀的谓词:

  • Completed() 而非 IsCompleted()
  • Empty() 而非 IsEmpty()
  • Exists() 而非 DoesExist()

文件组织

公共API在主文件中,私有辅助函数在 独立的逻辑文件 中:

  • loader.go(公共 Load())+ process.go(私有)
  • 非:所有内容都在一个文件中,未导出的函数在底部

魔术字符串

字面量应放在 internal/config/ 中。如果看到硬编码字符串在2个或更多文件中使用,则需要一个常量。在引入新字面量之前,检查 internal/config/ 中是否已有现有常量。

与 ctx drift 的关系

ctx drift 检查 .context/ 文件健康度(死路径、陈旧性)。此技能检查文档与源代码的对齐以及内部规范。它们是互补的。

质量检查清单

在报告结果之前,请验证:

  • [ ] 所有更改的包都已映射到其受影响的文档
  • [ ] 每个标记的文档部分都已实际阅读(非假设)
  • [ ] 如果触及了 internal/assets/,则检查了技能模板/实时漂移
  • [ ] 已执行自我维护(映射表是最新的)