关于 openwiki-update
用于根据仓库变更更新现有 OpenWiki 文档的技能。它依据 Git 信息定位过时页面,并优先进行范围有限的针对性修改,避免大范围重写。
主要功能
- 01检测上次更新后的变更
- 02映射源代码变更与受影响页面
- 03针对性修改文档
- 04检查根目录 Agent 指令
- 05记录更新元数据
适用场景
- 01使 Wiki 页面与代码变更保持一致
- 02避免不必要的文档重写
- 03更新受影响的快速入门链接
- 04检查 Wiki 是否已是最新
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kinensake/ openwiki-skills --skill openwiki-update安装后在 Claude Code 中输入/openwiki-update确认已加载。
附带文件references/core.md
详细介绍
Wiki 更新
刷新现有的 openwiki/ 文档,使其在仓库近期变更后仍保持准确。更新必须精准:只修改因源代码变更而过时的内容。
首先,阅读此技能目录中的 references/core.md——其中定义了所有输出必须遵循的质量规则、结构要求、安全规则,以及 AGENTS.md/CLAUDE.md 引用模板。
如果 openwiki/quickstart.md 不存在,请停止并告知用户先运行 /openwiki-init。如果用户在调用时提供了其他指示,请跳过无操作检查,并以该指示为更新依据。
工作流程
-
无操作检查。 读取
openwiki/.last-update.json。当以下条件全部满足时,跳过整个运行流程——报告自上次更新以来未检测到仓库变更,然后停止,不做任何编辑:- 元数据记录了
gitHead; git status --short --untracked-files=all为空(忽略openwiki/.last-update.json本身);git rev-parse HEAD与记录的gitHead相同,或者git diff --name-only <gitHead>..HEAD中的每个路径都位于openwiki/内(且该列表非空)。
- 元数据记录了
-
收集 Git 证据。 运行
git status --short、git rev-parse HEAD和git diff --name-status HEAD。检查上次成功运行后新增的提交:优先使用git log <lastGitHead>..HEAD --name-status --oneline;如果没有记录gitHead,则回退使用git log --since <updatedAt>;如果完全没有元数据,则检查最近 20 个提交。使用git show查看高信号提交,以了解实际变更内容。 -
制定文档影响计划,根据变更的源文件确定:源代码变更 → 受影响的文档 → 所需编辑 → 原因。编辑前先阅读受影响的
openwiki/页面。如果某个页面无法关联到相关源代码、工作流、产品或现有文档变更,就不要编辑该页面。 -
精准编辑,遵循以下约束:
- 保留仍然准确的现有结构和措辞。优先替换过时的句子,而不是添加新段落。
- 只编辑那些因近期变更而变得不准确、不完整或有误导性的页面。不要刷新每个页面。
- 每个概念只放在一个规范页面中;其他页面仅简要提及或提供链接。
- 不做纯格式调整:不要重新排版表格、统一空行、调整源文件列表顺序,或为润色措辞而编辑,除非周边内容本身正因准确性问题而被修改。
- 除非源代码变更导致其内容实质性错误,否则不要更新 Source Map 章节、Git 证据列表或通用的“注意事项”章节。
- 除非某个特定提交解释了重要的历史决策,否则不要包含或刷新持久化的提交哈希列表。
- 软性差异预算: 如果变更的源文件少于约 5 个,最多更新 1-2 个 Wiki 页面。除非产品顶层行为、设置或导航发生变化,否则不要改动 quickstart。如果认为需要编辑 3 个以上的 Wiki 页面,请认真思考原因,避免大范围修改。
- 仅在影响计划要求时,才更新过时页面、添加缺失页面、删除过时声明并修复 quickstart 链接。
- 更新可以合理地不做任何修改:如果 Wiki 已经准确,就不要编辑文件,并说明 Wiki 已是最新状态。
-
检查根目录 Agent 指令文件。 检查顶层
AGENTS.md/CLAUDE.md中的 OpenWiki 引用章节,仅在缺失或语义上过时的情况下刷新(确切模板见 core.md)。即使 Wiki 本身已是最新状态,也必须进行此项检查。 -
记录运行元数据。 只有在修改了
openwiki/内容时,才重写openwiki/.last-update.json并设置"command": "update"(格式见 core.md)。
最后总结修改了哪些页面以及原因,或者说明 Wiki 已是最新状态。