{"id":"ea19b533-0836-4690-a4a4-0fda16e4195c","shortId":"4dXqBA","kind":"skill","title":"forge-deliver","tagline":"端到端交付纯编排层。自身不实现任何业务逻辑，通过调用 forge-* 子 Skill 完成交付：\nforge-brainstorm → forge-prd → forge-design → forge-design-impl → forge-eng →\nforge-qa → forge-review → forge-ship → forge-doc-release。\n管理 .deliver/ 状态目录、state.json 检查点、子 Skill 间的文档传递。\n两种模式：--auto（前置沟通后全自动）、交互模式（关键节点暂停确认）。\n支持 --res","description":"> **文档落地路径**：遵循 forge-doc-policy 规范。完整白名单 + frontmatter schema 见\n> `~/claudecode_workspace/工具/forge-cookbook/skills/forge-doc-policy/doc-paths.md`。\n\n# /forge-deliver v2：端到端交付编排层\n\n一句话描述你的想法，拿到完整交付。\n\n---\n\n## 三条铁律\n\n1. **编排不实现** — deliver 不写任何业务逻辑、不做设计、不写代码。所有领域工作由对应 forge-* 子 Skill 完成。deliver 只负责：调度顺序、传递输入输出、管理状态。\n2. **状态必持久** — 每个 Phase 完成必须更新 state.json + 保存检查点。崩溃后 `--resume` 能从任意 Phase 恢复。\n3. **证据先于断言** — 每个 Phase 完成必须有可验证的产出文件。不接受\"已完成\"的口头声明，必须检查文件存在且非空。\n\n---\n\n## 前置脚本（每次先运行）\n\n```bash\n_BRANCH=$(git branch --show-current 2>/dev/null || echo \"unknown\")\n_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)\necho \"当前分支: $_BRANCH\"\necho \"项目根目录: $_ROOT\"\n\n# 检测项目环境\n[ -f \"$_ROOT/package.json\" ] && echo \"检测到: Node.js 项目\" && head -5 \"$_ROOT/package.json\"\n[ -f \"$_ROOT/requirements.txt\" ] && echo \"检测到: Python 项目\"\n[ -f \"$_ROOT/go.mod\" ] && echo \"检测到: Go 项目\"\n[ -f \"$_ROOT/Cargo.toml\" ] && echo \"检测到: Rust 项目\"\n[ -f \"$_ROOT/Makefile\" ] && echo \"检测到: Makefile\"\n\n# 检查 .deliver 状态\nif [ -f \"$_ROOT/.deliver/state.json\" ]; then\n  echo \"====== 发现未完成的交付流水线 ======\"\n  cat \"$_ROOT/.deliver/state.json\"\n  echo \"\"\n  echo \"提示：使用 --resume 从检查点恢复\"\nfi\n```\n\n---\n\n## 参数解析\n\n从用户输入中解析：\n\n| 参数 | 默认值 | 示例 |\n|------|--------|------|\n| 模式 | 交互 | `--auto`（全自动） |\n| 需求 | 用户输入的文字 | `\"给信息雷达加 RSS 订阅\"` |\n| 恢复 | 否 | `--resume`（从检查点恢复） |\n\n---\n\n## 模式说明\n\n### 交互模式（默认）\n\n在 3 个硬卡点暂停等待用户确认：\n1. **Phase 0 完成后** — 需求方案确认\n2. **Phase 2 完成后** — 工程实现确认\n3. **Phase 7** — 验收报告交付\n\n其他 Phase 自动推进，遇到不确定问题时用 AskUserQuestion 询问。\n\n### 自动模式（`--auto`）\n\n**前置沟通（1-2 轮，必须）：**\n\n执行任何阶段之前，先完成前置沟通。这不是可选的。\n\n**第 1 轮（必选）— 需求对齐：**\n通过 AskUserQuestion 确认：\n- \"我理解你要做的是 [复述需求]，对吗？\"\n- \"项目类型判断：[frontend / backend / fullstack]\"（决定是否跳过 Phase 1 的设计部分）\n- \"我的方案大纲是：[1-3 句话概括方案方向]\"\n- \"预计影响 [N 个文件 / 新建 N 个文件]\"\n\n**第 2 轮（按需）— 依赖确认：**\n只在以下情况触发：\n- 检测到需要外部依赖（API key、数据库、第三方服务）\n- 需求存在歧义\n- 项目结构复杂（多个入口、微服务架构）\n\n**前置沟通完毕后：** 全自动执行 Phase 0-7，不再暂停。\n\n**自动模式特殊规则：**\n- **不 git commit** — 代码改动只存在于工作区\n- **每个阶段结束保存检查点** — `git diff > .deliver/checkpoints/phase-N-done.patch`\n- **文档产出实时写入** `.deliver/` 目录\n- **遇到阻塞不死等** — 记录阻塞原因，跳到下一个可执行阶段，在验收报告中标注\n\n---\n\n## 恢复模式（`--resume`）\n\n读取 `.deliver/state.json`，从上次中断的阶段继续：\n\n```bash\ncat .deliver/state.json\n```\n\n1. 显示当前进度摘要\n2. 通过 AskUserQuestion 确认：\"上次停在 Phase X，要从这里继续吗？\"\n3. 选项：\n   - A) 从 Phase X 继续\n   - B) 从 Phase Y 重新开始（选择具体阶段）\n   - C) 全部重来\n\n---\n\n## 状态管理\n\n### .deliver/ 目录结构\n\n```\n.deliver/\n├── state.json                    # 流水线状态（持久化）\n├── requirement.md                # Phase 0 产出（forge-prd）\n├── visual-decision.md            # UI/设计任务的视觉决策索引（可选）\n├── design.md                     # Phase 1 产出（forge-design，可能不存在）\n├── design-impl-report.md         # Phase 1 产出（forge-design-impl，可能不存在）\n├── eng-report.md                 # Phase 2 产出（forge-eng）\n├── qa-report.md                  # Phase 3 产出（forge-qa）\n├── review-report.md              # Phase 4 产出（forge-review）\n├── ship-report.md                # Phase 5 产出（forge-ship）\n├── doc-release-report.md         # Phase 6 产出（forge-doc-release）\n├── acceptance-report.md          # Phase 7 最终验收报告\n└── checkpoints/\n    ├── phase-0-done.patch\n    ├── phase-1-done.patch\n    ├── phase-2-done.patch\n    ├── phase-3-done.patch\n    ├── phase-4-done.patch\n    ├── phase-5-done.patch\n    └── phase-6-done.patch\n```\n\n### state.json 格式\n\n```json\n{\n  \"task\": \"需求描述\",\n  \"mode\": \"auto|interactive\",\n  \"type\": \"frontend|backend|fullstack\",\n  \"branch\": \"分支名\",\n  \"started_at\": \"ISO 8601 时间\",\n  \"current_phase\": 0,\n  \"qa_loop_count\": 0,\n  \"phases\": {\n    \"0\": { \"name\": \"需求理解\",  \"skill\": \"forge-brainstorm + forge-prd\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"1\": { \"name\": \"设计\",      \"skill\": \"forge-design + forge-design-impl\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"2\": { \"name\": \"工程\",      \"skill\": \"forge-eng\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"3\": { \"name\": \"QA\",        \"skill\": \"forge-qa\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"4\": { \"name\": \"审查\",      \"skill\": \"forge-review\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"5\": { \"name\": \"发布\",      \"skill\": \"forge-ship\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"6\": { \"name\": \"文档\",      \"skill\": \"forge-doc-release\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" },\n    \"7\": { \"name\": \"验收\",      \"skill\": \"（deliver 自身汇总）\", \"status\": \"pending\", \"output\": \"\", \"note\": \"\" }\n  }\n}\n```\n\n### 状态流转规则\n\n**进入阶段时：**\n1. 将该阶段标记为 `in_progress`\n2. 更新 `current_phase`\n3. 写入 state.json\n\n**完成阶段时：**\n1. 验证产出文件存在且非空（铁律 3）\n2. 将该阶段标记为 `done`，记录产出文件路径到 `output`\n3. 写入 state.json\n4. 保存检查点\n\n### 检查点保存\n\n每个 Phase 完成后保存检查点：\n\n```bash\nmkdir -p .deliver/checkpoints\ngit diff > .deliver/checkpoints/phase-N-done.patch\necho \"Phase N checkpoint saved at $(date -u +%Y-%m-%dT%H:%M:%SZ)\" > .deliver/checkpoints/phase-N-done.patch.summary\ngit diff --stat >> .deliver/checkpoints/phase-N-done.patch.summary\n```\n\n**回退方法（供用户手动使用）：**\n```bash\ngit checkout -- .                              # 清除当前工作区\ngit apply .deliver/checkpoints/phase-N-done.patch  # 恢复到阶段 N\n```\n\n---\n\n## AskUserQuestion 格式规范\n\n每次提问结构：\n1. **重新聚焦**：当前项目、分支、流水线阶段、在做什么\n2. **通俗解释**：高中生能懂的语言描述问题\n3. **给出建议**：推荐选项 + 一句话原因\n4. **列出选项**：`A) B) C)` + 工作量估算（如适用）\n\n---\n\n# ========================================\n# 流水线阶段定义（8 个 Phase）\n# ========================================\n\n## Phase 0：需求理解\n\n**调用子 Skill：** `forge-brainstorm`（可选）→ `forge-prd`\n\n**编排逻辑：**\n\n1. **判断是否需要头脑风暴**\n   - 用户需求模糊、方向不明确 → 先调用 `forge-brainstorm` 讨论，产出思考文档\n   - 用户需求清晰 → 跳过 brainstorm，直接进入 forge-prd\n\n2. **调用 forge-prd**\n   - 输入：用户需求描述（+ brainstorm 产出，如有）\n   - 指令：让 forge-prd 产出/更新 PRD 和 CHANGELOG\n   - 期望产出：项目中的 PRD.md（或等效文档）已更新\n\n3. **收集 forge-prd 产出，写入 .deliver/**\n   - 将 PRD 核心内容（目标、用户故事、功能点、约束条件、项目类型）摘要到 `.deliver/requirement.md`\n   - 确定项目类型：`frontend / backend / fullstack`\n\n4. **产出验证**\n   - 检查 `.deliver/requirement.md` 存在且非空\n   - 检查项目类型已确定\n\n5. **[交互模式] 硬卡点暂停**\n   通过 AskUserQuestion：\n   - \"需求理解完成。项目类型：[type]。核心目标：[一句话]。继续进入设计/工程阶段？\"\n   - A) 继续\n   - B) 调整需求后继续\n   - C) 重新讨论（回到 brainstorm）\n\n6. 更新 state.json，进入 Phase 1（或 Phase 2，如果 `type == \"backend\"`）\n\n---\n\n## Phase 1：设计\n\n**跳过条件：** `type == \"backend\"` 时跳过，在 state.json 中标记为 `skipped`。\n\n**调用子 Skill：** `forge-design` → `forge-design-impl`\n\n**编排逻辑：**\n\n1. **调用 forge-design**\n   - 输入：指向项目中的 PRD.md\n   - 指令：让 forge-design 产出/更新 DESIGN.md；如涉及前端页面、组件、状态或布局，必须执行 Image 2 视觉稿门禁（见 `../_shared/visual-decision-layer.md`）\n   - 期望产出：项目中的 DESIGN.md 已更新\n\n2. **调用 forge-design-impl**\n   - 输入：指向项目中的 DESIGN.md\n   - 指令：让 forge-design-impl 将设计规范转化为样式代码；若有 Image 2 视觉稿，作为观感参考，最终用真实截图验证\n   - 期望产出：样式/布局代码已实现\n\n3. **收集产出**\n   - 将设计摘要写入 `.deliver/design.md`\n   - 将实现报告写入 `.deliver/design-impl-report.md`\n   - 如有视觉稿/真实截图，将路径、prompt、确认结论汇总写入 `.deliver/visual-decision.md`\n\n4. **产出验证**\n   - 检查项目中 DESIGN.md 存在\n   - 检查设计代码已写入\n\n5. 更新 state.json + 保存检查点，进入 Phase 2\n\n---\n\n## Phase 2：工程\n\n**调用子 Skill：** `forge-eng`\n\nforge-eng 是一个重量级 Skill，内部自行完成：文档管理、Worktree 隔离、任务拆分、TDD、Wave 执行、Verification Gate。deliver 只需要启动它并收集结果。\n\n**编排逻辑：**\n\n1. **调用 forge-eng**\n   - 输入：指向项目中的 PRD.md、DESIGN.md（如有）、ENGINEERING.md（如有）\n   - 指令：让 forge-eng 完成工程方案设计和代码实现\n   - 模式提示：如果是 deliver 自动模式，建议 forge-eng 使用轻量模式（跳过文档直接实现），除非是新项目\n   - 期望产出：ENGINEERING.md 已更新 + 代码已实现 + 测试通过\n\n2. **收集产出**\n   - 将工程摘要（架构、实现清单、测试结果）写入 `.deliver/eng-report.md`\n\n3. **产出验证**\n   - 检查 `.deliver/eng-report.md` 存在且非空\n   - 检查 forge-eng 报告中测试是否通过\n\n4. **[交互模式] 硬卡点暂停**\n   通过 AskUserQuestion：\n   - \"工程实现完成。共修改/新增 X 个文件。测试 [通过/失败]。要继续 QA 还是先看看代码？\"\n   - A) 继续进入 QA\n   - B) 让我先看看代码（暂停）\n   - C) 有问题需要调整\n\n5. 更新 state.json + 保存检查点，进入 Phase 3\n\n---\n\n## Phase 3：QA\n\n**调用子 Skill：** `forge-qa`\n\nforge-qa 是纯验收模式：只测不修。发现的 Bug 回 forge-eng 修复。\n\n**编排逻辑：**\n\n1. **调用 forge-qa**\n   - 输入：指向项目中的 PRD.md、ENGINEERING.md\n   - 指令：让 forge-qa 执行测试计划并产出 QA 报告\n   - 期望产出：QA.md 或测试报告\n\n2. **检查 QA 结果**\n   - 读取 forge-qa 的报告\n   - 如果发现 Bug：\n\n3. **QA-Eng 修复循环**（最多 2 轮）\n   ```\n   forge-qa 发现 Bug\n     → 调用 forge-eng 修复（传入 Bug 清单）\n     → 再次调用 forge-qa 验证\n     → 如果还有 Bug 且循环次数 < 2，重复\n     → 如果循环次数 >= 2，记录遗留 Bug 到报告，继续\n   ```\n   - 每轮循环更新 `state.json` 中的 `qa_loop_count`\n\n4. **收集产出**\n   - 将 QA 摘要（测试方式、Bug 统计、健康评分）写入 `.deliver/qa-report.md`\n\n5. **产出验证**\n   - 检查 `.deliver/qa-report.md` 存在且非空\n\n6. 更新 state.json + 保存检查点，进入 Phase 4\n\n---\n\n## Phase 4：审查\n\n**调用子 Skill：** `forge-review`\n\n**编排逻辑：**\n\n1. **调用 forge-review**\n   - 输入：当前分支的 diff（forge-review 会自行收集）\n   - 指令：让 forge-review 执行代码审查，发现问题直接修复\n   - 期望产出：审查完成，问题已修复\n\n2. **收集产出**\n   - 将审查摘要（发现问题数、修复数、安全问题）写入 `.deliver/review-report.md`\n\n3. **产出验证**\n   - 检查 `.deliver/review-report.md` 存在且非空\n\n4. 更新 state.json + 保存检查点，进入 Phase 5\n\n---\n\n## Phase 5：发布\n\n**调用子 Skill：** `forge-ship`\n\n**编排逻辑：**\n\n### 自动模式\n\n跳过 git commit/push/PR。在 state.json 中标记为 `done`，附注：\"自动模式不创建 PR，代码在工作区中，用户验收后决定。\"\n\n将跳过说明写入 `.deliver/ship-report.md`。\n\n### 交互模式\n\n1. **调用 forge-ship**\n   - 输入：forge-ship 会自行检测未提交更改、远程分支状态\n   - 指令：让 forge-ship 完成提交、推送、创建 PR\n   - 期望产出：PR 已创建（或代码已推送）\n\n2. **收集产出**\n   - 将发布摘要（PR URL、提交数、CHANGELOG 更新）写入 `.deliver/ship-report.md`\n\n3. **产出验证**\n   - 检查 `.deliver/ship-report.md` 存在且非空\n\n4. 更新 state.json + 保存检查点，进入 Phase 6\n\n---\n\n## Phase 6：文档\n\n**调用子 Skill：** `forge-doc-release`\n\n**编排逻辑：**\n\n1. **调用 forge-doc-release**\n   - 输入：forge-doc-release 会自行扫描项目文档和 diff\n   - 指令：让 forge-doc-release 更新项目文档使之匹配已发布内容\n   - 期望产出：项目文档已更新\n\n2. **收集产出**\n   - 将文档更新摘要写入 `.deliver/doc-release-report.md`\n\n3. **产出验证**\n   - 检查 `.deliver/doc-release-report.md` 存在且非空\n\n4. 更新 state.json + 保存检查点，进入 Phase 7\n\n---\n\n## Phase 7：验收\n\n**调用子 Skill：** 无（deliver 自身汇总所有子 Skill 产出）\n\n这是唯一一个 deliver 自己执行的阶段——但它只做汇总，不做领域工作。\n\n**编排逻辑：**\n\n1. **读取所有前序产出**\n   ```bash\n   ls -la .deliver/*.md .deliver/checkpoints/ 2>/dev/null\n   cat .deliver/state.json\n   ```\n\n2. **产出 `.deliver/acceptance-report.md`**\n\n```markdown\n# 验收报告\n\n## 基本信息\n| 字段 | 值 |\n|------|---|\n| **任务** | {从 state.json 读取} |\n| **模式** | {auto / interactive} |\n| **项目类型** | {frontend / backend / fullstack} |\n| **开始时间** | {从 state.json 读取} |\n| **完成时间** | {当前时间} |\n| **分支** | {从 state.json 读取} |\n\n## 流水线执行摘要\n| Phase | 名称 | 子 Skill | 状态 | 产出文件 | 备注 |\n|-------|------|----------|------|----------|------|\n| 0 | 需求理解 | forge-prd | {status} | {output} | {note} |\n| 1 | 设计 | forge-design + forge-design-impl | {status} | {output} | {note} |\n| 2 | 工程 | forge-eng | {status} | {output} | {note} |\n| 3 | QA | forge-qa | {status} | {output} | {note} |\n| 4 | 审查 | forge-review | {status} | {output} | {note} |\n| 5 | 发布 | forge-ship | {status} | {output} | {note} |\n| 6 | 文档 | forge-doc-release | {status} | {output} | {note} |\n| 7 | 验收 | deliver | done | acceptance-report.md | — |\n\n## 需求回顾\n{从 .deliver/requirement.md 提取核心目标}\n\n## 工程摘要\n{从 .deliver/eng-report.md 提取：架构、实现文件数、测试结果}\n\n## QA 结果\n{从 .deliver/qa-report.md 提取}\n- 测试方式：{浏览器 / 纯代码 / 自动化测试}\n- Bug 统计：发现 X，修复 Y，遗留 Z\n- QA 循环次数：{qa_loop_count}\n\n## 代码审查结果\n{从 .deliver/review-report.md 提取}\n- 发现问题：X 个，修复 Y 个\n- 安全问题：{有/无}\n\n## 发布状态\n{从 .deliver/ship-report.md 提取}\n- [自动模式] 代码在工作区中，未提交。检查点可用。\n- [交互模式] PR：{URL}\n\n## 文档更新\n{从 .deliver/doc-release-report.md 提取}\n\n## 已知遗留\n{汇总各阶段的遗留问题：未修复的 Bug、跳过的 Phase、阻塞项}\n\n## 检查点清单\n| 阶段 | 检查点文件 | 大小 |\n|------|-----------|------|\n{列出 .deliver/checkpoints/ 中所有文件}\n\n## 下一步建议\n{基于遗留问题和项目状态，建议 1-3 个后续动作}\n```\n\n3. **输出总结给用户**\n\n```\n+================================================================+\n|                        交付完成                                  |\n+================================================================+\n| 任务：{一句话}                                                   |\n| 阶段：8/8 完成（跳过 X 个）                                      |\n| QA：发现 X / 修复 Y / 遗留 Z                                    |\n| 发布状态：{PR URL / 代码在工作区}                                  |\n| 验收报告：.deliver/acceptance-report.md                           |\n+================================================================+\n```\n\n4. 更新 state.json，所有阶段标记为 `done`\n\n---\n\n## 重要规则\n\n### 编排规则（最高优先级）\n- **deliver 不写代码** — 所有代码由 forge-eng / forge-design-impl 完成\n- **deliver 不做设计** — 所有设计由 forge-design 完成\n- **deliver 不做测试** — 所有测试由 forge-qa 完成\n- **deliver 不做审查** — 所有审查由 forge-review 完成\n- **deliver 只做三件事** — 调度子 Skill、传递文档、管理状态\n\n### 子 Skill 调用规则\n- **输入明确** — 调用子 Skill 时，明确告知它需要读取哪些文件\n- **产出收集** — 子 Skill 完成后，将关键信息摘要到 .deliver/ 对应文件\n- **失败处理** — 子 Skill 报告失败时，记录原因到 state.json 的 note 字段，决定是重试、跳过还是终止\n\n### 自动模式规则\n- **前置沟通不可省略** — \"自动\"是沟通完毕后的执行自动，不是跳过沟通\n- **绝不 git commit** — 代码改动只在工作区，检查点用 patch 保存\n- **遇阻不死等** — 记录阻塞原因，跳到可执行阶段，在报告中标注\n\n### 交互模式规则\n- **3 个硬卡点必须暂停** — Phase 0 后、Phase 2 后、Phase 7\n- **其他阶段有问题才问** — 不要每一步都暂停确认\n\n### 质量规则\n- **一个想法，一个交付** — 不在一次流水线中塞入多个不相关功能\n- **每个阶段的产出是下个阶段的输入** — 严格按顺序执行\n- **状态文件实时更新** — 每次阶段状态变更都写 state.json","tags":["forge","deliver","skills","yike-gunshi","agent-skills","ai-development","claude-code","skill-md","skillsmp"],"capabilities":["skill","source-yike-gunshi","skill-forge-deliver","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-deliver","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 (12,364 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.343Z","embedding":null,"createdAt":"2026-04-24T07:03:37.962Z","updatedAt":"2026-05-18T19:07:33.343Z","lastSeenAt":"2026-05-18T19:07:33.343Z","tsv":"'-2':241 '-3':268,1469 '-5':150 '-7':295 '/_shared/visual-decision-layer.md':807 '/claudecode_workspace':66 '/dev/null':122,134,1284 '/forge-cookbook/skills/forge-doc-policy/doc-paths.md':68 '/forge-deliver':69 '0':219,294,355,450,454,456,648,1324,1587 '1':75,217,240,248,264,267,321,366,374,470,553,565,623,660,755,763,783,888,992,1098,1165,1221,1275,1332,1468 '2':91,121,133,222,224,277,323,383,485,557,569,629,677,758,804,812,830,861,863,922,1012,1029,1052,1055,1120,1189,1243,1283,1287,1344,1590 '3':103,215,227,331,390,496,561,568,574,632,702,837,930,970,972,1023,1128,1199,1247,1352,1471,1584 '4':397,507,577,636,724,849,940,1066,1088,1090,1133,1204,1252,1360,1495 '5':404,518,730,855,964,1077,1139,1141,1368 '6':411,529,750,1082,1210,1212,1376 '7':229,419,541,1258,1260,1385,1593 '8':644 '8/8':1477 '8601':446 'acceptance-report.md':417,1389 'api':283 'appli':616 'askuserquest':235,253,325,620,734,944 'auto':49,200,238,435,1300 'b':338,639,744,959 'backend':260,439,722,761,767,1304 'bash':114,318,583,611,1277 'brainstorm':13,462,654,667,672,684,749 'branch':115,117,138,441 'bug':985,1022,1035,1042,1050,1057,1072,1410,1454 'c':344,640,746,962 'cat':184,319,1285 'changelog':696,1195 'checkout':613 'checkpoint':421,593 'commit':300,1574 'commit/push/pr':1152 'count':453,1065,1422 'current':120,448,559 'date':596 'deliv':3,41,77,86,176,307,347,349,545,709,885,908,1265,1270,1280,1387,1503,1514,1521,1528,1535,1554 'deliver/acceptance-report.md':1289,1494 'deliver/checkpoints':586,1282,1463 'deliver/checkpoints/phase-n-done.patch':305,589,617 'deliver/checkpoints/phase-n-done.patch.summary':604,608 'deliver/design-impl-report.md':842 'deliver/design.md':840 'deliver/doc-release-report.md':1246,1250,1449 'deliver/eng-report.md':929,933,1396 'deliver/qa-report.md':1076,1080,1404 'deliver/requirement.md':719,727,1392 'deliver/review-report.md':1127,1131,1425 'deliver/ship-report.md':1163,1198,1202,1438 'deliver/state.json':316,320,1286 'deliver/visual-decision.md':848 'design':19,22,370,378,476,479,777,780,787,795,816,825,1336,1339,1511,1519 'design-impl-report.md':372 'design.md':364,798,810,820,852,896 'diff':304,588,606,1105,1233 'doc':38,59,415,535,1218,1225,1230,1238,1380 'doc-release-report.md':409 'done':571,1156,1388,1499 'dt':600 'echo':123,136,139,145,154,160,166,172,182,186,187,590 'eng':26,387,491,869,872,892,904,913,938,989,1026,1039,1348,1508 'eng-report.md':381 'engineering.md':898,918,1000 'f':143,152,158,164,170,179 'fi':192 'forg':2,7,12,15,18,21,25,28,31,34,37,58,82,358,369,377,386,393,400,407,414,461,464,475,478,490,501,512,523,534,653,657,666,675,680,690,705,776,779,786,794,815,824,868,871,891,903,912,937,977,980,988,995,1004,1018,1032,1038,1046,1095,1101,1107,1113,1146,1168,1172,1179,1217,1224,1229,1237,1327,1335,1338,1347,1355,1363,1371,1379,1507,1510,1518,1525,1532 'forge-brainstorm':11,460,652,665 'forge-deliv':1 'forge-design':17,368,474,775,785,793,1334,1517 'forge-design-impl':20,376,477,778,814,823,1337,1509 'forge-doc-polici':57 'forge-doc-releas':36,413,533,1216,1223,1228,1236,1378 'forge-eng':24,385,489,867,870,890,902,911,936,987,1037,1346,1506 'forge-prd':14,357,463,656,674,679,689,704,1326 'forge-qa':27,392,500,976,979,994,1003,1017,1031,1045,1354,1524 'forge-review':30,399,511,1094,1100,1106,1112,1362,1531 'forge-ship':33,406,522,1145,1167,1171,1178,1370 'frontend':259,438,721,1303 'frontmatt':63 'fullstack':261,440,723,1305 'gate':884 'git':116,126,299,303,587,605,612,615,1151,1573 'go':162 'h':601 'head':149 'imag':803,829 'impl':23,379,480,781,817,826,1340,1512 'interact':436,1301 'iso':445 'json':431 'key':284 'la':1279 'loop':452,1064,1421 'ls':1278 'm':599,602 'makefil':174 'markdown':1290 'md':1281 'mkdir':584 'mode':434 'n':271,274,592,619 'name':457,471,486,497,508,519,530,542 'node.js':147 'note':469,484,495,506,517,528,540,550,1331,1343,1351,1359,1367,1375,1384,1563 'output':468,483,494,505,516,527,539,549,573,1330,1342,1350,1358,1366,1374,1383 'p':585 'pars':129 'patch':1577 'pend':467,482,493,504,515,526,538,548 'phase':94,101,106,218,223,228,232,263,293,328,335,340,354,365,373,382,389,396,403,410,418,449,455,560,581,591,646,647,754,757,762,860,862,969,971,1087,1089,1138,1140,1209,1211,1257,1259,1317,1456,1586,1589,1592 'phase-0-done.patch':422 'phase-1-done.patch':423 'phase-2-done.patch':424 'phase-3-done.patch':425 'phase-4-done.patch':426 'phase-5-done.patch':427 'phase-6-done.patch':428 'polici':60 'pr':1159,1184,1186,1192,1445,1490 'prd':16,359,465,658,676,681,691,694,706,711,1328 'prd.md':699,790,895,999 'progress':556 'prompt':846 'pwd':135 'python':156 'qa':29,394,451,498,502,954,958,973,978,981,996,1005,1007,1014,1019,1025,1033,1047,1063,1069,1353,1356,1401,1418,1420,1482,1526 'qa-eng':1024 'qa-report.md':388 'qa.md':1010 'releas':39,416,536,1219,1226,1231,1239,1381 'requirement.md':353 'res':54 'resum':99,190,209,314 'rev':128 'rev-pars':127 'review':32,401,513,1096,1102,1108,1114,1364,1533 'review-report.md':395 'root':125,141 'root/.deliver/state.json':180,185 'root/cargo.toml':165 'root/go.mod':159 'root/makefile':171 'root/package.json':144,151 'root/requirements.txt':153 'rss':205 'rust':168 'save':594 'schema':64 'ship':35,408,524,1147,1169,1173,1180,1372 'ship-report.md':402 'show':119,131 'show-curr':118 'show-toplevel':130 'skill':9,46,84,459,473,488,499,510,521,532,544,651,774,866,874,975,1093,1144,1215,1263,1267,1320,1538,1542,1546,1551,1558 'skill-forge-deliver' 'skip':772 'source-yike-gunshi' 'start':443 'stat':607 'state.json':43,96,350,429,563,576,752,770,857,966,1061,1084,1135,1154,1206,1254,1297,1308,1314,1497,1561,1604 'status':466,481,492,503,514,525,537,547,1329,1341,1349,1357,1365,1373,1382 'sz':603 'task':432 'tdd':880 'topic-agent-skills' 'topic-ai-development' 'topic-claude-code' 'topic-forge' 'topic-skill-md' 'topic-skillsmp' 'toplevel':132 'type':437,737,760,766 'u':597 'ui':361 'unknown':124 'url':1193,1446,1491 'v2':70 'verif':883 'visual-decision.md':360 'wave':881 'worktre':877 'x':329,336,948,1413,1428,1480,1484 'y':341,598,1415,1431,1486 'z':1417,1488 '一个交付':1598 '一个想法':1597 '一句话':739,1475 '一句话原因':635 '一句话描述你的想法':72 '三条铁律':74 '上次停在':327 '下一步建议':1465 '不':298 '不做审查':1529 '不做测试':1522 '不做设计':79,1515 '不做领域工作':1273 '不再暂停':296 '不写代码':80,1504 '不写任何业务逻辑':78 '不在一次流水线中塞入多个不相关功能':1599 '不接受':108 '不是跳过沟通':1571 '不要每一步都暂停确认':1595 '且循环次数':1051 '两种模式':48 '严格按顺序执行':1601 '个':645,1429,1432,1481 '个后续动作':1470 '个文件':272,275,949 '个硬卡点必须暂停':1585 '个硬卡点暂停等待用户确认':216 '中所有文件':1464 '中标记为':771,1155 '中的':1062 '交互':199 '交互模式':51,212,731,941,1164,1444 '交互模式规则':1583 '交付完成':1473 '产出':356,367,375,384,391,398,405,412,685,692,707,796,1268,1288 '产出思考文档':669 '产出收集':1549 '产出文件':1322 '产出验证':725,850,931,1078,1129,1200,1248 '从':334,339,1296,1307,1313,1391,1395,1403,1424,1437,1448 '从上次中断的阶段继续':317 '从检查点恢复':191,210 '从用户输入中解析':194 '代码在工作区':1492 '代码在工作区中':1160,1441 '代码审查结果':1423 '代码已实现':920 '代码改动只在工作区':1575 '代码改动只存在于工作区':301 '任务':1295,1474 '任务拆分':879 '会自行扫描项目文档和':1232 '会自行收集':1109 '会自行检测未提交更改':1174 '传入':1041 '传递文档':1539 '传递输入输出':89 '但它只做汇总':1272 '作为观感参考':832 '使用':189 '使用轻量模式':914 '供用户手动使用':610 '依赖确认':280 '保存':1578 '保存检查点':97,578,858,967,1085,1136,1207,1255 '修复':990,1040,1414,1430,1485 '修复循环':1027 '修复数':1124 '值':1294 '健康评分':1074 '先完成前置沟通':245 '先调用':664 '全自动':201 '全自动执行':292 '全部重来':345 '共修改':946 '关键节点暂停确认':52 '其他':231 '其他阶段有问题才问':1594 '内部自行完成':875 '再次调用':1044 '写入':562,575,708,928,1075,1126,1197 '决定是否跳过':262 '决定是重试':1565 '分支':626,1312 '分支名':442 '列出':1462 '列出选项':637 '创建':1183 '判断是否需要头脑风暴':661 '到报告':1058 '前置沟通':239 '前置沟通不可省略':1568 '前置沟通后全自动':50 '前置沟通完毕后':291 '前置脚本':112 '功能点':715 '参数':195 '参数解析':193 '发布':520,1142,1369 '发布状态':1436,1489 '发现':1034,1412,1483 '发现未完成的交付流水线':183 '发现的':984 '发现问题':1427 '发现问题数':1123 '发现问题直接修复':1116 '句话概括方案方向':269 '只做三件事':1536 '只在以下情况触发':281 '只测不修':983 '只负责':87 '只需要启动它并收集结果':886 '可能不存在':371,380 '可选':363,655 '名称':1318 '后':1588,1591 '否':208 '和':695 '回':986 '回到':748 '回退方法':609 '在':214,769,1153 '在做什么':628 '在报告中标注':1582 '在验收报告中标注':312 '基于遗留问题和项目状态':1466 '基本信息':1292 '备注':1323 '复述需求':256 '多个入口':289 '大小':1461 '失败':952 '失败处理':1556 '如有':686,897,899 '如有视觉稿':843 '如果':759 '如果发现':1021 '如果循环次数':1054 '如果是':907 '如果还有':1049 '如涉及前端页面':799 '如适用':642 '子':8,45,83,1319,1541,1550,1557 '字段':1293,1564 '存在':853 '存在且非空':728,934,1081,1132,1203,1251 '安全问题':1125,1433 '完成':85,1478,1513,1520,1527,1534 '完成交付':10 '完成后':220,225,1552 '完成后保存检查点':582 '完成工程方案设计和代码实现':905 '完成必须更新':95 '完成必须有可验证的产出文件':107 '完成提交':1181 '完成时间':1310 '完成阶段时':564 '完整白名单':62 '实现文件数':1399 '实现清单':926 '审查':509,1091,1361 '审查完成':1118 '对吗':257 '对应文件':1555 '将':710,1068 '将关键信息摘要到':1553 '将发布摘要':1191 '将实现报告写入':841 '将审查摘要':1122 '将工程摘要':924 '将文档更新摘要写入':1245 '将设计摘要写入':839 '将设计规范转化为样式代码':827 '将该阶段标记为':554,570 '将路径':845 '将跳过说明写入':1162 '崩溃后':98 '工作量估算':641 '工具':67 '工程':487,864,1345 '工程实现完成':945 '工程实现确认':226 '工程摘要':1394 '工程阶段':741 '已创建':1187 '已完成':109 '已更新':701,811,919 '已知遗留':1451 '布局代码已实现':836 '建议':910,1467 '开始时间':1306 '当前分支':137 '当前分支的':1104 '当前时间':1311 '当前项目':625 '循环次数':1419 '微服务架构':290 '必选':250 '必须':243 '必须执行':802 '必须检查文件存在且非空':111 '恢复':102,207 '恢复到阶段':618 '恢复模式':313 '我理解你要做的是':255 '我的方案大纲是':266 '或':756 '或代码已推送':1188 '或测试报告':1011 '或等效文档':700 '所有代码由':1505 '所有审查由':1530 '所有测试由':1523 '所有设计由':1516 '所有阶段标记为':1498 '所有领域工作由对应':81 '执行':882 '执行代码审查':1115 '执行任何阶段之前':244 '执行测试计划并产出':1006 '报告':1008 '报告中测试是否通过':939 '报告失败时':1559 '拿到完整交付':73 '持久化':352 '指令':687,791,821,900,1001,1110,1176,1234 '指向项目中的':789,819,894,998 '按需':279 '推荐选项':634 '推送':1182 '提交数':1194 '提取':1397,1405,1426,1439,1450 '提取核心目标':1393 '提示':188 '摘要':1070 '摘要到':718 '支持':53 '收集':703 '收集产出':838,923,1067,1121,1190,1244 '数据库':285 '文档':531,1213,1377 '文档产出实时写入':306 '文档更新':1447 '文档管理':876 '文档落地路径':55 '新增':947 '新建':273 '方向不明确':663 '无':1264,1435 '时':1547 '时跳过':768 '时间':447 '明确告知它需要读取哪些文件':1548 '是一个重量级':873 '是沟通完毕后的执行自动':1570 '是纯验收模式':982 '显示当前进度摘要':322 '暂停':961 '更新':558,693,751,797,856,965,1083,1134,1196,1205,1253,1496 '更新项目文档使之匹配已发布内容':1240 '最多':1028 '最终用真实截图验证':833 '最终验收报告':420 '最高优先级':1502 '有':1434 '有问题需要调整':963 '期望产出':697,808,834,917,1009,1117,1185,1241 '未修复的':1453 '未提交':1442 '架构':925,1398 '样式':835 '核心内容':712 '核心目标':738 '格式':430 '格式规范':621 '检查':175,726,932,935,1013,1079,1130,1201,1249 '检查点':44 '检查点保存':579 '检查点可用':1443 '检查点文件':1460 '检查点清单':1458 '检查点用':1576 '检查设计代码已写入':854 '检查项目中':851 '检查项目类型已确定':729 '检测到':146,155,161,167,173 '检测到需要外部依赖':282 '检测项目环境':142 '模式':198,1299 '模式提示':906 '模式说明':211 '每个':93,105,580 '每个阶段的产出是下个阶段的输入':1600 '每个阶段结束保存检查点':302 '每次先运行':113 '每次提问结构':622 '每次阶段状态变更都写':1603 '每轮循环更新':1060 '汇总各阶段的遗留问题':1452 '流水线执行摘要':1316 '流水线状态':351 '流水线阶段':627 '流水线阶段定义':643 '测试':950 '测试方式':1071,1406 '测试结果':927,1400 '测试通过':921 '浏览器':1407 '清单':1043 '清除当前工作区':614 '状态':177,1321 '状态必持久':92 '状态或布局':801 '状态文件实时更新':1602 '状态流转规则':551 '状态目录':42 '状态管理':346 '用户故事':714 '用户输入的文字':203 '用户需求描述':683 '用户需求模糊':662 '用户需求清晰':670 '用户验收后决定':1161 '的':1562 '的口头声明':110 '的报告':1020 '的设计部分':265 '目录':308 '目录结构':348 '目标':713 '直接进入':673 '真实截图':844 '硬卡点暂停':732,942 '确定项目类型':720 '确认':254,326 '确认结论汇总写入':847 '示例':197 '端到端交付纯编排层':4 '端到端交付编排层':71 '第':247,276 '第三方服务':286 '管理':40 '管理状态':90,1540 '约束条件':716 '纯代码':1408 '组件':800 '结果':1015,1402 '给信息雷达加':204 '给出建议':633 '绝不':1572 '统计':1073,1411 '继续':337,743,1059 '继续进入':957 '继续进入设计':740 '编排不实现':76 '编排规则':1501 '编排逻辑':659,782,887,991,1097,1148,1220,1274 '能从任意':100 '自动':1569 '自动化测试':1409 '自动推进':233 '自动模式':237,909,1149,1440 '自动模式不创建':1158 '自动模式特殊规则':297 '自动模式规则':1567 '自己执行的阶段':1271 '自身不实现任何业务逻辑':5 '自身汇总':546 '自身汇总所有子':1266 '若有':828 '要从这里继续吗':330 '要继续':953 '见':65,806 '规范':61 '视觉稿':831 '视觉稿门禁':805 '订阅':206 '讨论':668 '让':688,792,822,901,1002,1111,1177,1235 '让我先看看代码':960 '记录产出文件路径到':572 '记录原因到':1560 '记录遗留':1056 '记录阻塞原因':310,1580 '设计':472,764,1333 '设计任务的视觉决策索引':362 '证据先于断言':104 '询问':236 '读取':315,1016,1298,1309,1315 '读取所有前序产出':1276 '调度子':1537 '调度顺序':88 '调整需求后继续':745 '调用':678,784,813,889,993,1036,1099,1166,1222 '调用子':650,773,865,974,1092,1143,1214,1262,1545 '调用规则':1543 '质量规则':1596 '跳到下一个可执行阶段':311 '跳到可执行阶段':1581 '跳过':671,1150,1479 '跳过文档直接实现':915 '跳过条件':765 '跳过的':1455 '跳过还是终止':1566 '轮':242,249,278,1030 '输入':682,788,818,893,997,1103,1170,1227 '输入明确':1544 '输出总结给用户':1472 '还是先看看代码':955 '这不是可选的':246 '这是唯一一个':1269 '进入':753,859,968,1086,1137,1208,1256 '进入阶段时':552 '远程分支状态':1175 '选择具体阶段':343 '选项':332 '通俗解释':630 '通过':252,324,733,943,951 '通过调用':6 '遇到不确定问题时用':234 '遇到阻塞不死等':309 '遇阻不死等':1579 '遗留':1416,1487 '遵循':56 '重复':1053 '重新开始':342 '重新聚焦':624 '重新讨论':747 '重要规则':1500 '铁律':567 '问题已修复':1119 '间的文档传递':47 '阶段':1459,1476 '阻塞项':1457 '附注':1157 '除非是新项目':916 '隔离':878 '需求':202 '需求回顾':1390 '需求存在歧义':287 '需求对齐':251 '需求描述':433 '需求方案确认':221 '需求理解':458,649,1325 '需求理解完成':735 '项目':148,157,163,169 '项目中的':698,809 '项目文档已更新':1242 '项目根目录':140 '项目类型':717,736,1302 '项目类型判断':258 '项目结构复杂':288 '预计影响':270 '验收':543,1261,1386 '验收报告':1291,1493 '验收报告交付':230 '验证':1048 '验证产出文件存在且非空':566 '高中生能懂的语言描述问题':631 '默认':213 '默认值':196","prices":[{"id":"5c2f0364-5369-444d-816c-6e9908fabaed","listingId":"ea19b533-0836-4690-a4a4-0fda16e4195c","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:37.962Z"}],"sources":[{"listingId":"ea19b533-0836-4690-a4a4-0fda16e4195c","source":"github","sourceId":"yike-gunshi/forge-skills/forge-deliver","sourceUrl":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-deliver","isPrimary":false,"firstSeenAt":"2026-04-24T07:03:37.962Z","lastSeenAt":"2026-05-18T19:07:33.343Z"}],"details":{"listingId":"ea19b533-0836-4690-a4a4-0fda16e4195c","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"yike-gunshi","slug":"forge-deliver","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":"e5590a38d81849aaf8858b053dbabd1b7b721e4a","skill_md_path":"skills/forge-deliver/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-deliver"},"layout":"multi","source":"github","category":"forge-skills","frontmatter":{"name":"forge-deliver","description":"端到端交付纯编排层。自身不实现任何业务逻辑，通过调用 forge-* 子 Skill 完成交付：\nforge-brainstorm → forge-prd → forge-design → forge-design-impl → forge-eng →\nforge-qa → forge-review → forge-ship → forge-doc-release。\n管理 .deliver/ 状态目录、state.json 检查点、子 Skill 间的文档传递。\n两种模式：--auto（前置沟通后全自动）、交互模式（关键节点暂停确认）。\n支持 --resume 从检查点恢复。"},"skills_sh_url":"https://skills.sh/yike-gunshi/forge-skills/forge-deliver"},"updatedAt":"2026-05-18T19:07:33.343Z"}}