{"id":"0ed183ac-d85e-4533-b7c3-f4f726cbc9b5","shortId":"NV6s45","kind":"skill","title":"forge-doc-release","tagline":"发布后文档更新。读取所有项目文档，与 diff 交叉对照，\n更新 README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md 使之匹配已发布内容，\n润色 CHANGELOG 语气，清理 TODOS，可选地更新 VERSION。","description":"> **文档落地路径**：遵循 forge-doc-policy 规范。完整白名单 + frontmatter schema 见\n> `~/claudecode_workspace/工具/forge-cookbook/skills/forge-doc-policy/doc-paths.md`。\n\n# /forge-doc-release：发布后文档更新\n\n## 前置脚本（每次先运行）\n\n```bash\n_BRANCH=$(git branch --show-current 2>/dev/null || echo \"unknown\")\necho \"当前分支: $_BRANCH\"\n```\n\n---\n\n## AskUserQuestion 格式规范\n\n每次提问结构：\n1. **重新聚焦**：当前项目、分支、正在审查的文档\n2. **通俗解释**：高中生能懂的语言描述问题\n3. **给出建议**：推荐选项 + 完整度评分\n4. **列出选项**：`A) B) C)` + 工作量估算\n\n---\n\n## 第0步：检测基础分支\n\n确定此 PR 的目标分支。后续所有步骤以此为\"基础分支\"。\n\n1. 检查是否已有 PR：\n   `gh pr view --json baseRefName -q .baseRefName`\n   如果成功，使用打印的分支名。\n\n2. 如果没有 PR（命令失败），检测仓库默认分支：\n   `gh repo view --json defaultBranchRef -q .defaultBranchRef.name`\n\n3. 如果都失败，回退到 `main`。\n\n---\n\n## 角色定义\n\n你在运行 `/forge-doc-release` 工作流。这在 `/forge-ship`（代码已提交，PR 已存在或即将创建）**之后**、PR 合并 **之前** 运行。你的任务：确保项目中的每个文档文件都准确、最新、用友好且面向用户的语气书写。\n\n你主要是自动化的。明显的事实性更新直接做。只在风险或主观决策时停下来问。\n\n**只在以下情况停下来问：**\n- 风险/可疑的文档变更（叙事、理念、安全、删除、大规模重写）\n- VERSION 更新决策（如果尚未更新）\n- 要添加的新 TODOS 项\n- 叙事性的跨文档矛盾\n\n**绝不因以下原因停下来：**\n- 从 diff 明确可得的事实性更正\n- 向表格/列表添加条目\n- 更新路径、数量、版本号\n- 修复过期的交叉引用\n- CHANGELOG 语气润色（小幅措辞调整）\n- 标记 TODOS 已完成\n- 跨文档事实性不一致（如版本号不匹配）\n\n**绝不做：**\n- 覆盖、替换或重新生成 CHANGELOG 条目——只润色措辞，保留所有内容\n- 不经询问就更新 VERSION——始终用 AskUserQuestion 确认版本变更\n- 对 CHANGELOG.md 使用 `Write` 工具——始终用 `Edit` 精确匹配 `old_string`\n\n---\n\n## 第1步：预检与 Diff 分析\n\n1. 检查当前分支。如果在基础分支上，**中止**：\"你在基础分支上。请从功能分支运行。\"\n\n2. 收集变更上下文：\n\n```bash\ngit diff <base>...HEAD --stat\n```\n\n```bash\ngit log <base>..HEAD --oneline\n```\n\n```bash\ngit diff <base>...HEAD --name-only\n```\n\n3. 发现仓库中所有文档文件：\n\n```bash\nfind . -maxdepth 2 -name \"*.md\" -not -path \"./.git/*\" -not -path \"./node_modules/*\" -not -path \"./.gstack/*\" -not -path \"./.context/*\" | sort\n```\n\n4. 将变更分类为与文档相关的类别：\n   - **新功能** — 新文件、新命令、新技能、新能力\n   - **行为变更** — 修改的服务、更新的 API、配置变更\n   - **移除的功能** — 删除的文件、移除的命令\n   - **基础设施** — 构建系统、测试基础设施、CI\n\n5. 输出简要摘要：\"分析了 N 个文件的变更，跨 M 次提交。找到 K 个文档文件待审查。\"\n\n---\n\n## 第2步：逐文件文档审计\n\n读取每个文档文件，与 diff 交叉对照。使用以下通用启发式方法（适用于任何项目）：\n\n**README.md：**\n- 是否描述了 diff 中可见的所有功能和能力？\n- 安装/设置说明与变更一致吗？\n- 示例、演示和使用描述仍然有效吗？\n- 故障排除步骤仍然准确吗？\n\n**ARCHITECTURE.md：**\n- ASCII 图和组件描述与当前代码匹配吗？\n- 设计决策和\"为什么\"的解释仍然准确吗？\n- 保守处理——只更新被 diff 明确矛盾的内容。\n\n**CONTRIBUTING.md — 新贡献者冒烟测试：**\n- 以全新贡献者的身份走一遍设置说明。\n- 列出的命令准确吗？每一步都会成功吗？\n- 测试层级描述与当前测试基础设施匹配吗？\n- 工作流描述是最新的吗？\n- 标记任何会失败或让首次贡献者困惑的内容。\n\n**CLAUDE.md / 项目说明：**\n- 项目结构部分与实际文件树匹配吗？\n- 列出的命令和脚本准确吗？\n- 构建/测试说明与 package.json（或等效文件）匹配吗？\n\n**其他 .md 文件：**\n- 读取文件，确定其目的和受众。\n- 与 diff 交叉对照，检查是否与文件所述内容矛盾。\n\n对每个文件，将所需更新分类为：\n\n- **自动更新** — 从 diff 明确可得的事实性更正：向表格添加条目、更新文件路径、修正数量、更新项目结构树。\n- **询问用户** — 叙事变更、删除段落、安全模型变更、大规模重写（单个段落超过约 10 行）、相关性不明确、添加全新段落。\n\n---\n\n## 第3步：应用自动更新\n\n用 Edit 工具直接做所有明确的事实性更新。\n\n对每个修改的文件，输出一行摘要描述 **具体改了什么** —— 不只是\"更新了 README.md\"，而是\"README.md：在技能表中添加了 /new-skill，技能计数从 9 更新为 10。\"\n\n**绝不自动更新：**\n- README 的简介或项目定位\n- ARCHITECTURE 的理念或设计理由\n- 安全模型描述\n- 不从任何文档中删除整个段落\n\n---\n\n## 第4步：询问风险/可疑变更\n\n对第2步识别的每个风险或可疑更新，用 AskUserQuestion 确认：\n- 上下文：项目名、分支、哪个文档文件、正在审查什么\n- 具体的文档决策\n- `建议：选择 [X] 因为 [一句话原因]`\n- 选项包括 C) 跳过——保持原样\n\n每个回答后立即应用已批准的变更。\n\n---\n\n## 第5步：CHANGELOG 语气润色\n\n**关键——绝不覆盖 CHANGELOG 条目。**\n\n此步骤润色语气。它 **不** 重写、替换或重新生成 CHANGELOG 内容。\n\n**规则：**\n1. 先完整读取 CHANGELOG.md。理解已有内容。\n2. 只修改现有条目的措辞。绝不删除、重排或替换条目。\n3. 绝不从头重新生成 CHANGELOG 条目。条目由 `/forge-ship` 从实际 diff 和提交历史写成。它是事实来源。你只是润色措辞。\n4. 如果条目看起来有误或不完整，用 AskUserQuestion——**不要** 默默修复。\n5. 用 Edit 工具精确匹配 `old_string`——绝不用 Write 覆盖 CHANGELOG.md。\n\n**如果此分支未修改 CHANGELOG：** 跳过此步骤。\n\n**如果此分支修改了 CHANGELOG**，审查条目语气：\n\n- **推销测试：** 用户读每个条目时会想\"不错，我想试试\"吗？如果不会，改写措辞（不改内容）。\n- 以用户现在能 **做什么** 开头——不是实现细节。\n- \"你现在可以...\" 而非\"重构了...\"\n- 标记并改写读起来像 commit 消息的条目。\n- 内部/贡献者变更归入单独的\"### 贡献者相关\"子段落。\n- 小幅语气调整自动做。用 AskUserQuestion 确认会改变含义的重写。\n\n---\n\n## 第6步：跨文档一致性与可发现性检查\n\n逐文件审计后，做跨文档一致性检查：\n\n1. README 的功能/能力列表与 CLAUDE.md（或项目说明）描述的一致吗？\n2. ARCHITECTURE 的组件列表与 CONTRIBUTING 的项目结构描述一致吗？\n3. CHANGELOG 的最新版本与 VERSION 文件一致吗？\n4. **可发现性：** 每个文档文件都能从 README.md 或 CLAUDE.md 到达吗？如果 ARCHITECTURE.md 存在但两者都没链接到它，标记出来。每个文档都应该从两个入口文件之一可发现。\n5. 标记文档间的矛盾。事实性不一致自动修复（如版本号不匹配）。叙事矛盾用 AskUserQuestion。\n\n---\n\n## 第7步：TODOS.md 清理\n\n如果 TODOS.md 不存在，跳过此步骤。\n\n1. **已完成但未标记的项目：** 将 diff 与未完成的 TODO 项交叉对照。如果 TODO 明确被此分支的变更完成了，移到已完成部分并标注 `**已完成：** vX.Y.Z.W (YYYY-MM-DD)`。保守处理——只标记在 diff 中有明确证据的项目。\n\n2. **需要更新描述的项目：** 如果 TODO 引用的文件或组件有重大变更，其描述可能过期。用 AskUserQuestion 确认该 TODO 应该更新、完成还是保持原样。\n\n3. **新的延迟工作：** 检查 diff 中的 `TODO`、`FIXME`、`HACK` 和 `XXX` 注释。对每个代表有意义延迟工作的注释（不是琐碎的内联备注），用 AskUserQuestion 询问是否应纳入 TODOS.md。\n\n---\n\n## 第8步：VERSION 更新问题\n\n**关键——绝不在不询问的情况下更新 VERSION。**\n\n1. **如果 VERSION 不存在：** 静默跳过。\n\n2. 检查此分支是否已修改 VERSION：\n\n```bash\ngit diff <base>...HEAD -- VERSION\n```\n\n3. **如果 VERSION 未更新：** 用 AskUserQuestion：\n   - 建议：选择 C（跳过）因为纯文档变更很少需要版本更新\n   - A) PATCH 更新（X.Y.Z+1）— 如果文档变更随代码变更一起发布\n   - B) MINOR 更新（X.Y+1.0）— 如果这是一次重要的独立发布\n   - C) 跳过 — 不需要版本更新\n\n4. **如果 VERSION 已更新：** 不要静默跳过。检查更新是否覆盖了此分支所有变更的完整范围：\n\n   a. 读取当前 VERSION 的 CHANGELOG 条目。它描述了什么功能？\n   b. 读取完整 diff。有没有重要变更（新功能、新技能、新命令、大重构）没有在当前版本的 CHANGELOG 条目中提及？\n   c. **如果 CHANGELOG 条目覆盖了一切：** 跳过——输出\"VERSION: 已更新到 vX.Y.Z，覆盖所有变更。\"\n   d. **如果有重要的未覆盖变更：** 用 AskUserQuestion 解释当前版本覆盖了什么 vs 什么是新的，并询问：\n      - 建议：选择 A 因为新变更值得自己的版本\n      - A) 更新到下一个 patch（X.Y.Z+1）— 给新变更自己的版本\n      - B) 保持当前版本 — 将新变更添加到现有 CHANGELOG 条目\n      - C) 跳过 — 保持原样，稍后处理\n\n---\n\n## 第9步：提交与输出\n\n**先检查是否为空：** 运行 `git status`（不用 `-uall`）。如果前面的步骤没有修改任何文档文件，输出\"所有文档都是最新的。\"并退出，不提交。\n\n**提交：**\n\n1. 按文件名暂存修改的文档文件（绝不用 `git add -A` 或 `git add .`）。\n2. 创建单次提交：\n\n```bash\ngit commit -m \"$(cat <<'EOF'\ndocs: 更新项目文档\n\nCo-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>\nEOF\n)\"\n```\n\n3. 推送到当前分支：\n\n```bash\ngit push\n```\n\n**PR body 更新（幂等、竞态安全）：**\n\n1. 将现有 PR body 读入临时文件：\n\n```bash\ngh pr view --json body -q .body > /tmp/doc-release-pr-body-$$.md\n```\n\n2. 如果临时文件已包含 `## 文档` 段落，替换该段落。如果没有，在末尾追加 `## 文档` 段落。\n\n3. 文档段落应包含 **文档 diff 预览** —— 每个修改的文件描述具体改了什么。\n\n4. 写回更新的 body：\n\n```bash\ngh pr edit --body-file /tmp/doc-release-pr-body-$$.md\n```\n\n5. 清理临时文件：\n\n```bash\nrm -f /tmp/doc-release-pr-body-$$.md\n```\n\n6. 如果 `gh pr view` 失败（没有 PR）：跳过并提示\"未找到 PR——跳过 body 更新。\"\n7. 如果 `gh pr edit` 失败：警告\"无法更新 PR body——文档变更在提交中。\"并继续。\n\n**结构化文档健康摘要（最终输出）：**\n\n```\n文档健康:\n  README.md       [状态] ([详情])\n  ARCHITECTURE.md [状态] ([详情])\n  CONTRIBUTING.md [状态] ([详情])\n  CHANGELOG.md    [状态] ([详情])\n  TODOS.md        [状态] ([详情])\n  VERSION         [状态] ([详情])\n```\n\n其中状态为：\n- 已更新 — 附变更描述\n- 最新 — 无需变更\n- 语气润色 — 措辞调整\n- 未更新 — 用户选择跳过\n- 已更新 — 版本已由 /forge-ship 设置\n- 跳过 — 文件不存在\n\n---\n\n## 重要规则\n\n- **编辑前先读。** 修改文件前始终完整读取其内容。\n- **绝不覆盖 CHANGELOG。** 只润色措辞。绝不删除、替换或重新生成条目。\n- **绝不静默更新 VERSION。** 始终询问。即使已更新，也检查是否覆盖了完整变更范围。\n- **明确说明改了什么。** 每次编辑附一行摘要。\n- **通用启发式，非项目特定。** 审计检查适用于任何仓库。\n- **可发现性很重要。** 每个文档文件都应从 README 或 CLAUDE.md 可达。\n- **语气：友好、面向用户、不晦涩。** 像给一个没看过代码的聪明人解释一样写。","tags":["forge","doc","release","skills","yike-gunshi","agent-skills","ai-development","claude-code","skill-md","skillsmp"],"capabilities":["skill","source-yike-gunshi","skill-forge-doc-release","topic-agent-skills","topic-ai-development","topic-claude-code","topic-forge","topic-skill-md","topic-skillsmp"],"categories":["forge-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/yike-gunshi/forge-skills/forge-doc-release","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add yike-gunshi/forge-skills","source_repo":"https://github.com/yike-gunshi/forge-skills","install_from":"skills.sh"}},"qualityScore":"0.455","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 11 github stars · SKILL.md body (6,478 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:07:33.825Z","embedding":null,"createdAt":"2026-04-24T07:03:38.342Z","updatedAt":"2026-05-18T19:07:33.825Z","lastSeenAt":"2026-05-18T19:07:33.825Z","tsv":"'+1':598,659 '+1.0':604 '/.context':232 '/.git':223 '/.gstack':229 '/claudecode_workspace':31 '/dev/null':46 '/forge-cookbook/skills/forge-doc-policy/doc-paths.md':33 '/forge-doc-release':34,110 '/forge-ship':113,414,829 '/new-skill':351 '/node_modules':226 '/tmp/doc-release-pr-body-':735,762,769 '1':55,80,188,401,472,514,570,684,722 '10':333,355 '2':45,60,92,194,218,405,479,535,575,693,737 '3':63,104,213,409,484,547,583,712,746 '4':67,234,420,489,609,752 '4.6':709 '5':253,426,501,764 '6':771 '7':785 '9':353 'add':688,692 'api':244 'architectur':359,480 'architecture.md':281,497,803 'ascii':282 'askuserquest':52,172,368,423,466,506,542,561,588,646 'author':705 'b':70,600,622,661 'baserefnam':87,89 'bash':38,196,201,206,215,578,695,714,727,755,766 'bodi':718,725,732,734,754,760,783,794 'body-fil':759 'branch':39,41,51 'c':71,382,591,606,633,666 'cat':699 'changelog':14,154,165,387,391,398,411,437,440,485,619,631,635,664,837 'changelog.md':175,403,435,809 'ci':252 'claud':707 'claude.md':299,476,494,855 'co':704 'co-authored-bi':703 'commit':458,697 'contribut':482 'contributing.md':291,806 'current':44 'd':643 'dd':530 'defaultbranchref':101 'defaultbranchref.name':103 'diff':8,146,186,198,208,268,274,289,314,321,416,517,533,550,580,624,749 'doc':3,24,701 'echo':47,49 'edit':180,340,428,758,789 'eof':700,711 'f':768 'file':761 'find':216 'fixm':553 'forg':2,23 'forge-doc-polici':22 'forge-doc-releas':1 'frontmatt':28 'gh':83,97,728,756,773,787 'git':40,197,202,207,579,674,687,691,696,715 'hack':554 'head':199,204,209,581 'json':86,100,731 'k':262 'log':203 'm':259,698 'main':107 'maxdepth':217 'md':220,309,736,763,770 'minor':601 'mm':529 'n':256 'name':211,219 'name-on':210 'noreply@anthropic.com':710 'old':182,430 'onelin':205 'opus':708 'package.json':305 'patch':595,657 'path':222,225,228,231 'polici':25 'pr':76,82,84,94,115,118,717,724,729,757,774,778,781,788,793 'push':716 'q':88,102,733 'readm':357,473,853 'readme.md':272,347,349,492,800 'readme/architecture/contributing/claude.md':11 'releas':4 'repo':98 'rm':767 'schema':29 'show':43 'show-curr':42 'skill' 'skill-forge-doc-release' 'sort':233 'source-yike-gunshi' 'stat':200 'status':675 'string':183,431 'todo':17,141,158,519,522,538,544,552 'todos.md':508,511,563,812 'topic-agent-skills' 'topic-ai-development' 'topic-claude-code' 'topic-forge' 'topic-skill-md' 'topic-skillsmp' 'uall':677 'unknown':48 'version':19,137,170,487,565,569,572,577,582,585,611,617,639,815,842 'view':85,99,730,775 'vs':648 'vx.y.z':641 'vx.y.z.w':526 'write':177,433 'x':378 'x.y':603 'x.y.z':597,658 'xxx':556 'yyyi':528 'yyyy-mm-dd':527 '一句话原因':380 '上下文':370 '不':395 '不从任何文档中删除整个段落':362 '不只是':345 '不存在':512,573 '不提交':682 '不改内容':449 '不是实现细节':453 '不是琐碎的内联备注':559 '不晦涩':860 '不用':676 '不经询问就更新':169 '不要':424 '不要静默跳过':613 '不错':444 '不需要版本更新':608 '与':7,267,313 '与未完成的':518 '个文件的变更':257 '个文档文件待审查':263 '中可见的所有功能和能力':275 '中有明确证据的项目':534 '中止':191 '中的':551 '为什么':285 '之前':120 '之后':117 '也检查是否覆盖了完整变更范围':845 '事实性不一致自动修复':503 '交叉对照':9,269,315 '什么是新的':649 '从':145,320 '从实际':415 '代码已提交':114 '以全新贡献者的身份走一遍设置说明':293 '以用户现在能':450 '你主要是自动化的':126 '你只是润色措辞':419 '你在基础分支上':192 '你在运行':109 '你现在可以':454 '你的任务':122 '使之匹配已发布内容':12 '使用':176 '使用以下通用启发式方法':270 '使用打印的分支名':91 '保守处理':287,531 '保持原样':384,668 '保持当前版本':662 '保留所有内容':168 '修复过期的交叉引用':153 '修改文件前始终完整读取其内容':835 '修改的服务':242 '修正数量':325 '做什么':451 '做跨文档一致性检查':471 '像给一个没看过代码的聪明人解释一样写':861 '先完整读取':402 '先检查是否为空':672 '关键':389,567 '其中状态为':818 '其他':308 '其描述可能过期':540 '具体改了什么':344 '具体的文档决策':375 '内容':399 '内部':460 '写回更新的':753 '分支':58,372 '分析':187 '分析了':255 '列出的命令准确吗':294 '列出的命令和脚本准确吗':302 '列出选项':68 '列表添加条目':149 '创建单次提交':694 '删除':135 '删除段落':329 '删除的文件':247 '到达吗':495 '前置脚本':36 '匹配吗':307 '单个段落超过约':332 '即使已更新':844 '友好':858 '发布后文档更新':5,35 '发现仓库中所有文档文件':214 '叙事':132 '叙事变更':328 '叙事性的跨文档矛盾':143 '叙事矛盾用':505 '只修改现有条目的措辞':406 '只在以下情况停下来问':129 '只在风险或主观决策时停下来问':128 '只更新被':288 '只标记在':532 '只润色措辞':167,838 '可发现性':490 '可发现性很重要':851 '可疑变更':365 '可疑的文档变更':131 '可达':856 '可选地更新':18 '合并':119 '后续所有步骤以此为':78 '向表格':148 '向表格添加条目':323 '吗':446 '命令失败':95 '和':555 '和提交历史写成':417 '哪个文档文件':373 '回退到':106 '因为':379 '因为新变更值得自己的版本':654 '因为纯文档变更很少需要版本更新':593 '图和组件描述与当前代码匹配吗':283 '在技能表中添加了':350 '在末尾追加':743 '基础分支':79 '基础设施':249 '大规模重写':136,331 '大重构':629 '失败':776,790 '如果':496,510,521,537,571,584,610,634,772,786 '如果不会':447 '如果临时文件已包含':738 '如果前面的步骤没有修改任何文档文件':678 '如果在基础分支上':190 '如果尚未更新':139 '如果成功':90 '如果文档变更随代码变更一起发布':599 '如果有重要的未覆盖变更':644 '如果条目看起来有误或不完整':421 '如果此分支修改了':439 '如果此分支未修改':436 '如果没有':93,742 '如果这是一次重要的独立发布':605 '如果都失败':105 '如版本号不匹配':161,504 '始终用':171,179 '始终询问':843 '子段落':463 '存在但两者都没链接到它':498 '它':394 '它描述了什么功能':621 '它是事实来源':418 '安全':134 '安全模型变更':330 '安全模型描述':361 '安装':276 '完成还是保持原样':546 '完整度评分':66 '完整白名单':27 '审查条目语气':441 '审计检查适用于任何仓库':850 '对':174 '对每个代表有意义延迟工作的注释':558 '对每个修改的文件':342 '对每个文件':317 '对第2步识别的每个风险或可疑更新':366 '将':516 '将变更分类为与文档相关的类别':235 '将所需更新分类为':318 '将新变更添加到现有':663 '将现有':723 '小幅措辞调整':156 '小幅语气调整自动做':464 '工作流':111 '工作流描述是最新的吗':297 '工作量估算':72 '工具':32,178 '工具直接做所有明确的事实性更新':341 '工具精确匹配':429 '已存在或即将创建':116 '已完成':159,525 '已完成但未标记的项目':515 '已更新':612,819,827 '已更新到':640 '幂等':720 '并继续':796 '并询问':650 '并退出':681 '应用自动更新':338 '应该更新':545 '建议':376,589,651 '开头':452 '引用的文件或组件有重大变更':539 '当前分支':50 '当前项目':57 '我想试试':445 '或':493,690,854 '或等效文件':306 '或项目说明':477 '所有文档都是最新的':680 '找到':261 '技能计数从':352 '按文件名暂存修改的文档文件':685 '推荐选项':65 '推送到当前分支':713 '推销测试':442 '措辞调整':824 '描述的一致吗':478 '提交':683 '提交与输出':671 '收集变更上下文':195 '改写措辞':448 '故障排除步骤仍然准确吗':280 '数量':151 '文件':310 '文件一致吗':488 '文件不存在':832 '文档':739,744,748 '文档健康':799 '文档变更在提交中':795 '文档段落应包含':747 '文档落地路径':20 '新功能':236,626 '新命令':238,628 '新技能':239,627 '新文件':237 '新的延迟工作':548 '新能力':240 '新贡献者冒烟测试':292 '无法更新':792 '无需变更':822 '明显的事实性更新直接做':127 '明确可得的事实性更正':147,322 '明确矛盾的内容':290 '明确被此分支的变更完成了':523 '明确说明改了什么':846 '是否描述了':273 '更新':10,596,602,719,784 '更新为':354 '更新了':346 '更新决策':138 '更新到下一个':656 '更新文件路径':324 '更新的':243 '更新路径':150 '更新问题':566 '更新项目文档':702 '更新项目结构树':326 '替换或重新生成':164,397 '替换或重新生成条目':840 '替换该段落':741 '最新':124,821 '最终输出':798 '有没有重要变更':625 '未找到':780 '未更新':586,825 '条目':166,392,412,620,665 '条目中提及':632 '条目由':413 '条目覆盖了一切':636 '构建':303 '构建系统':250 '标记':157 '标记任何会失败或让首次贡献者困惑的内容':298 '标记出来':499 '标记并改写读起来像':457 '标记文档间的矛盾':502 '格式规范':53 '检查':549 '检查当前分支':189 '检查是否与文件所述内容矛盾':316 '检查是否已有':81 '检查更新是否覆盖了此分支所有变更的完整范围':614 '检查此分支是否已修改':576 '检测仓库默认分支':96 '检测基础分支':74 '次提交':260 '正在审查什么':374 '正在审查的文档':59 '此步骤润色语气':393 '段落':740,745 '每一步都会成功吗':295 '每个修改的文件描述具体改了什么':751 '每个回答后立即应用已批准的变更':385 '每个文档文件都应从':852 '每个文档文件都能从':491 '每个文档都应该从两个入口文件之一可发现':500 '每次先运行':37 '每次提问结构':54 '每次编辑附一行摘要':847 '没有':777 '没有在当前版本的':630 '注释':557 '测试基础设施':251 '测试层级描述与当前测试基础设施匹配吗':296 '测试说明与':304 '消息的条目':459 '润色':13 '添加全新段落':336 '清理':16,509 '清理临时文件':765 '演示和使用描述仍然有效吗':279 '版本号':152 '版本已由':828 '状态':801,804,807,810,813,816 '理念':133 '理解已有内容':404 '用':339,367,422,427,465,541,560,587,645 '用友好且面向用户的语气书写':125 '用户读每个条目时会想':443 '用户选择跳过':826 '的':618 '的功能':474 '的最新版本与':486 '的理念或设计理由':360 '的目标分支':77 '的简介或项目定位':358 '的组件列表与':481 '的解释仍然准确吗':286 '的项目结构描述一致吗':483 '相关性不明确':335 '确保项目中的每个文档文件都准确':123 '确定其目的和受众':312 '确定此':75 '确认':369 '确认会改变含义的重写':467 '确认版本变更':173 '确认该':543 '示例':278 '移到已完成部分并标注':524 '移除的功能':246 '移除的命令':248 '稍后处理':669 '竞态安全':721 '第0步':73 '第1步':184 '第2步':264 '第3步':337 '第4步':363 '第5步':386 '第6步':468 '第7步':507 '第8步':564 '第9步':670 '精确匹配':181 '结构化文档健康摘要':797 '给出建议':64 '给新变更自己的版本':660 '绝不从头重新生成':410 '绝不做':162 '绝不删除':407,839 '绝不因以下原因停下来':144 '绝不在不询问的情况下更新':568 '绝不用':432,686 '绝不自动更新':356 '绝不覆盖':390,836 '绝不静默更新':841 '编辑前先读':834 '而是':348 '而非':455 '能力列表与':475 '自动更新':319 '行':334 '行为变更':241 '要添加的新':140 '覆盖':163,434 '覆盖所有变更':642 '见':30 '规则':400 '规范':26 '角色定义':108 '解释当前版本覆盖了什么':647 '警告':791 '设置':830 '设置说明与变更一致吗':277 '设计决策和':284 '询问是否应纳入':562 '询问用户':327 '询问风险':364 '详情':802,805,808,811,814,817 '语气':15,857 '语气润色':155,388,823 '请从功能分支运行':193 '读入临时文件':726 '读取完整':623 '读取当前':616 '读取所有项目文档':6 '读取文件':311 '读取每个文档文件':266 '贡献者变更归入单独的':461 '贡献者相关':462 '跨':258 '跨文档一致性与可发现性检查':469 '跨文档事实性不一致':160 '跳过':383,592,607,637,667,782,831 '跳过并提示':779 '跳过此步骤':438,513 '输出':638,679 '输出一行摘要描述':343 '输出简要摘要':254 '运行':121,673 '这在':112 '适用于任何项目':271 '选择':377,590,652 '选项包括':381 '逐文件审计后':470 '逐文件文档审计':265 '通俗解释':61 '通用启发式':848 '遵循':21 '配置变更':245 '重写':396 '重排或替换条目':408 '重新聚焦':56 '重构了':456 '重要规则':833 '附变更描述':820 '需要更新描述的项目':536 '静默跳过':574 '非项目特定':849 '面向用户':859 '项':142 '项交叉对照':520 '项目名':371 '项目结构部分与实际文件树匹配吗':301 '项目说明':300 '预检与':185 '预览':750 '风险':130 '高中生能懂的语言描述问题':62 '默默修复':425","prices":[{"id":"c9fce20b-a626-47ce-a42a-6f123e32b5c6","listingId":"0ed183ac-d85e-4533-b7c3-f4f726cbc9b5","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"yike-gunshi","category":"forge-skills","install_from":"skills.sh"},"createdAt":"2026-04-24T07:03:38.342Z"}],"sources":[{"listingId":"0ed183ac-d85e-4533-b7c3-f4f726cbc9b5","source":"github","sourceId":"yike-gunshi/forge-skills/forge-doc-release","sourceUrl":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-doc-release","isPrimary":false,"firstSeenAt":"2026-04-24T07:03:38.342Z","lastSeenAt":"2026-05-18T19:07:33.825Z"}],"details":{"listingId":"0ed183ac-d85e-4533-b7c3-f4f726cbc9b5","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"yike-gunshi","slug":"forge-doc-release","github":{"repo":"yike-gunshi/forge-skills","stars":11,"topics":["agent-skills","ai-development","claude-code","forge","skill-md","skillsmp"],"license":"mit","html_url":"https://github.com/yike-gunshi/forge-skills","pushed_at":"2026-04-28T05:11:10Z","description":"Forge — 文档驱动的 AI 辅助开发框架 | Document-driven AI development framework with 14 Skills covering brainstorm → PRD → design → engineering → QA → review → ship → retrospective","skill_md_sha":"3eeade811f4a98c5550b36285f01fed2c8419fa1","skill_md_path":"skills/forge-doc-release/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-doc-release"},"layout":"multi","source":"github","category":"forge-skills","frontmatter":{"name":"forge-doc-release","description":"发布后文档更新。读取所有项目文档，与 diff 交叉对照，\n更新 README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md 使之匹配已发布内容，\n润色 CHANGELOG 语气，清理 TODOS，可选地更新 VERSION。"},"skills_sh_url":"https://skills.sh/yike-gunshi/forge-skills/forge-doc-release"},"updatedAt":"2026-05-18T19:07:33.825Z"}}