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