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