{"id":"76a00728-1a42-4e1f-84ef-f849b9fc23b1","shortId":"KnASH6","kind":"skill","title":"forge-prd","tagline":"产品诊断与 PRD 迭代管理器。用户描述遇到的问题或需求，skill 诊断根因（产品设计缺陷/实现偏离/PRD遗漏）、审查模块健康度、设计方案、挑战假设、必要时反驳需求，最终更新 PRD 和 CHANGELOG。支持从零创建 PRD、迭代已有 PRD，并记录前端/全栈需求的视觉决策需求（Image 2/Figma/真实截图）。触发方式：用户说\"更新PRD\"、\"调整需求\"、\"迭代PRD\"、\"forge-prd\"、描述产品问题、需要修改项目产品需求时使用。","description":"> **文档落地路径**：遵循 forge-doc-policy 规范。完整白名单 + frontmatter schema 见\n> `~/claudecode_workspace/工具/forge-cookbook/skills/forge-doc-policy/doc-paths.md`。\n\n# /forge-prd：产品诊断与 PRD 迭代管理器\n\n## 流程总览\n\n```\n用户报告症状/需求\n  → 第0步：定位项目、PRD、CHANGELOG\n  → 第1步：理解现状（读 PRD + CHANGELOG + 源码）\n  → 第2步：诊断与审查（自适应三层深度）\n  → 第3步：方案确认（多轮交互 → 用户最终确认变更清单）\n  → 第4步：写入文档（确认后才写 CHANGELOG + PRD 更新 + 迭代交付说明）\n```\n\n全程中文。每个步骤结束后暂停等待用户反馈。\n\n### 交互流程图\n\n```\n用户描述问题/需求\n       │\n       ▼\n┌─ 第0步：定位 ──────────────────────────┐\n│  Glob 搜索 PRD / CHANGELOG              │\n│  ├─ 找到 PRD → 迭代模式                 │\n│  ├─ 没找到 → [询问用户] 是否创建模式     │\n│  └─ 没找到 CHANGELOG → 标记第4步新建     │\n└──────────────────────────────────────────┘\n       │\n       ▼\n┌─ 第1步：理解现状 ─────────────────────────┐\n│  读 PRD + CHANGELOG + Agent(Explore)源码   │\n│  热点分析（模块修改频次）                   │\n│  → [询问用户] 总结现状，确认理解是否正确    │\n│  → [询问用户] 本次迭代需求是什么？          │\n└─────────────────────────────────────────────┘\n       │\n       ▼\n┌─ 第2步：诊断与审查 ──────────────────────────┐\n│  自动判定层级：轻量 / 标准 / 深度             │\n│  ┌─ 所有层级 ─────────────────────────┐      │\n│  │  ① 问题归因（设计缺陷/偏离/遗漏）  │      │\n│  │  ② 10星挑战（当前几星→10星差距）    │      │\n│  └─────────────────────────────────────┘      │\n│  ┌─ 标准+深度 ─────────────────────────┐     │\n│  │  ③ 模块健康度检查                   │      │\n│  └─────────────────────────────────────┘      │\n│  ┌─ 仅深度 ───────────────────────────┐      │\n│  │  ④ 假设审查  ⑤ 反驳机制            │      │\n│  └─────────────────────────────────────┘      │\n│  → [询问用户] 展示诊断结果，确认方向         │\n└───────────────────────────────────────────────┘\n       │\n       ▼\n┌─ 第3步：方案确认 ─────────────────────────────┐\n│  逐项讨论变更点（当前→目标→推荐→可选）        │\n│  → [多轮询问用户] 每个变更点确认               │\n│  → [询问用户] 汇总变更清单，最终确认           │\n│  ⚠️ 门禁：确认前不写任何文件                   │\n└────────────────────────────────────────────────┘\n       │ 用户确认 ✓\n       ▼\n┌─ 第4步：写入文档 ─────────────────────────────┐\n│  A. 更新/新建 CHANGELOG                       │\n│  B. 更新 PRD 正文（版本号+迭代摘要+功能章节）  │\n│  C. 产出迭代交付说明（面向下游 Agent）          │\n│  → 输出最终总结                                │\n└────────────────────────────────────────────────┘\n```\n\n---\n\n## 可视化规范\n\n**核心原则**：在向用户展示信息时，动态判断是否使用 widget 可视化。**不是所有内容都需要画图**——只在可视化明显优于纯文本时才使用。\n\n如判断需要可视化，先读取 `../_shared/visual-decision-layer.md`：\n- **Mermaid / show-widget** 用于流程、因果、矩阵、健康度、10 星挑战等结构化判断。\n- **Image 2** 用于前端观感、页面气质、复杂状态、用户需要“看见效果”才能确认的决策。\n- PRD 阶段不把 Image 2 当成设计定稿；只记录视觉决策需求、已有图链接和下游 `forge-design` 必须补齐的视觉稿。\n\n**判断标准**（满足任一即用 widget）：\n- 有**对比关系**：方案 A vs B、当前 vs 目标、版本间差异\n- 有**多维度数据**：≥3 个模块的评分/状态/频次需要并排展示\n- 有**流程/因果链**：多步骤流程、归因路径、决策树\n- 有**统计分布**：频次、占比、趋势等数值型数据\n- 信息量大且**结构化程度高**：变更清单 ≥5 项、多模块健康度评估\n\n**不需要 widget 的场景**：\n- 简单的 1-2 句确认性问题\n- 单个变更点的讨论（纯文字更直接）\n- 用户只需要 yes/no 的决策\n- 信息本身就是线性叙述，没有对比或结构\n\n**使用前**：首次生成 widget 前，调用 `mcp__codepilot-widget__codepilot_load_widget_guidelines` 加载设计规范。\n\n**推荐的 widget 类型参考**：\n\n| 信息类型 | 推荐 widget | 典型场景 |\n|----------|-------------|----------|\n| 多指标概览 | 指标卡片仪表盘 | 产品状态总结、迭代完成总结 |\n| 频次/分布数据 | Chart.js 柱状图 | CHANGELOG 热点分析、变更统计 |\n| 因果/流程 | SVG 流程图 | 问题归因路径、决策流程 |\n| 多维评估 | SVG 矩阵/评分卡 | 模块健康度、方案评分 |\n| A vs B | SVG 并排对比 | 当前 vs 目标、方案对比、10星挑战 |\n| 结构化清单 | 交互式 HTML | 变更清单（≥5项时） |\n\n**设计要求**（当决定使用 widget 时）：\n- 遵循 widget guidelines 的配色和布局规范（Indigo 主色，Slate 结构色）\n- 每个 widget ≤ 3000 字符，解释文字放在代码块外\n- SVG 使用 `width=\"100%\" viewBox=\"0 0 680 H\"`\n- Chart.js 图表必须 responsive，禁用 legend\n- 复杂信息拆成多个 widget，交替文字和可视化\n\n---\n\n## AskUserQuestion 格式规范\n\n每次提问遵循以下结构：\n\n1. **重新聚焦**：说明当前项目名称和正在讨论的变更。（1-2句）\n2. **通俗解释**：用简单语言说清楚要做什么、为什么。不用函数名、不用内部术语。\n3. **最佳方案**：作为 CEO 和专业 AI 产品经理寻找和思考最佳方案。\n4. **给出推荐**：`推荐：[方案X]，因为[一句话原因]`。标注完整度 X/10。\n5. **列出选项**：`A) ... B) ... C) ...`。\n6. **可视化辅助**（按需）：如果选项涉及 ≥3 个方案对比或复杂的流程差异，用 `show-widget` 渲染对比图辅助决策。简单的 A/B 选择不需要画图。\n\n假设用户已经20分钟没看窗口。如果你需要读源码才能理解自己的解释，说明解释太复杂了。\n\n---\n\n## 第0步：定位项目、PRD 与 CHANGELOG\n\n1. 根据用户提供的目录线索，用 Glob 搜索 PRD 文件：\n   ```\n   搜索模式（按优先级）：\n   - {项目目录}/docs/PRD.md\n   - {项目目录}/docs/prd.md\n   - {项目目录}/docs/*PRD*\n   - {项目目录}/docs/*需求*\n   - {项目目录}/PRD.md\n   - {项目目录}/**/PRD*.md\n   ```\n\n2. 搜索 CHANGELOG 文件（不写死文件名，模式匹配）：\n   ```\n   搜索模式：\n   - {项目目录}/docs/*changelog*（不区分大小写）\n   - {项目目录}/docs/*CHANGELOG*\n   - {项目目录}/docs/*变更*\n   - {项目目录}/**/CHANGELOG*\n   - {项目目录}/**/changelog*\n   ```\n\n3. 分支判断：\n   - 找到 PRD → 进入「迭代模式」（第1步）\n   - 找不到 PRD，和用户确认是否进入「创建模式」，用户确认后生成PRD（第1步-替代）\n   - 找不到 CHANGELOG → 标记需要在第4步新建（基于项目文档 + git history 回溯生成）\n\n---\n\n## 第1步：理解现状（迭代模式）\n\n1. 读取完整 PRD 文档\n2. 读取 CHANGELOG（如果存在），了解历史变更\n3. **CHANGELOG 热点分析**：\n   - 统计各模块被修改的频次\n   - 识别「反复修改但未根治」的模块（同一模块在多个版本中出现）\n   - 如果发现热点模块与用户本次需求相关，主动提示\n4. 用 Agent 工具深度分析项目源码：\n   - 使用 Explore 子代理扫描项目结构、关键文件、技术栈\n   - 重点关注：当前实现与 PRD 描述的差异、用户描述的问题\n5. 向用户总结当前产品状态（3-5句），确认理解是否正确\n   - 如果项目模块较多（≥4个）或存在热点模块数据，考虑用 widget 渲染指标卡片和热点柱状图\n   - 简单项目直接文字总结即可\n6. 询问用户本次迭代的需求或问题\n\n---\n\n## 第1步（替代）：从零创建 PRD\n\n当项目没有 PRD 文件时执行此流程。\n\n1. **全面阅读项目代码**：\n   - 用 Agent(Explore) 系统性扫描项目目录结构\n   - 读取 README、package.json/requirements.txt 等配置文件\n   - 读取核心源码文件，理解功能模块\n   - 读取数据库 schema（如有）\n   - 查看 git log 了解项目演进历史\n\n2. **与用户多轮确认**（每轮一个主题，通过 AskUserQuestion）：\n   - 第1轮：产品定位 — \"这个项目解决什么问题？给谁用？核心价值是什么？\"\n   - 第2轮：功能边界 — 列出从代码中识别到的功能模块，确认是否完整\n   - 第3轮：技术约束 — 确认技术限制、第三方依赖、性能要求\n   - 第4轮：已知问题 — 确认当前存在的 bug 或体验问题\n   - 第5轮：后续规划 — 确认近期计划做的功能\n\n3. **产出 PRD 初稿**：\n   - 参考 [references/prd-template.md](references/prd-template.md) 的标准章节结构\n   - 写入 `{项目目录}/docs/PRD.md`\n\n4. **新建 CHANGELOG**：\n   - 基于项目文档 + git history 回溯生成历史版本记录\n   - 记录 v1.0 初始版本\n   - 写入 `{项目目录}/docs/` 下\n\n5. 向用户展示 PRD 结构和各章节概要，逐节确认后写入文件\n\n---\n\n## 第2步：诊断与审查（自适应深度）\n\n### 审查深度自动判定\n\n| 层级 | 触发条件 | 做什么 |\n|------|----------|--------|\n| **轻量审查** | 单个小改动（改阈值、调文案、修参数） | 归因 → 10星挑战 → 确认方案 |\n| **标准审查** | 功能调整、多个小改动集中在同一区域 | 归因 + 模块健康度 + 10星挑战 + 方案对比 |\n| **深度审查** | 新模块、架构调整、或 CHANGELOG 显示某模块反复修改 | 假设审查 + 10星挑战 + 反驳机制 |\n\n**自动升级规则**：\n- 多个小需求集中在同一模块 → 从轻量升级到标准\n- CHANGELOG 中某模块在 ≥3 个版本中被修改 → 升级到深度，主动告知用户：\"这个模块已经在 vX.X、vX.X、vX.X 中反复修改，建议做一次彻底审查\"\n- 用户主动要求更深度的审查 → 升级\n\n### 诊断流程（所有层级通用）\n\n1. **问题归因**：\n   - **产品设计缺陷**：PRD 中对该场景的定义就不完整或不合理\n   - **实现偏离 PRD**：PRD 写得对但代码实现偏离了\n   - **PRD 遗漏场景**：PRD 根本没考虑到这个场景\n   - 明确告知用户属于哪种情况\n\n2. **10星挑战**（所有层级必做）：\n   - 当前方案几星？\n   - 10星版本是什么样的？\n   - 差距是\"小\"（可以做完）还是\"大\"（超出当前范围）？\n   - 轻量审查：简要挑战即可（1-2句）\n   - 标准/深度审查：展开讨论，用并排对比图展示当前 vs 10星方案\n\n3. **模块健康度检查**（标准/深度层级）：\n   - 该模块在 CHANGELOG 中的修改历史\n   - 该模块当前实现与 PRD 的一致性\n   - 是否存在关联模块需要同步调整\n\n### 深度审查额外步骤（借鉴 cn-plan-product）\n\n4. **假设审查**：\n   - PRD 中对该模块的隐含假设是什么？\n   - 这些假设是否仍然成立？\n   - 用户的新需求是否暴露了错误的假设？\n\n5. **反驳机制**：\n   - 如果认为用户提的需求放在这里不合适，直接说出来\n   - 给出替代方案或建议砍掉某些不需要的功能\n   - 从整体产品视角评估，而非只看单个需求点\n\n### 诊断输出\n\n向用户展示：\n- 问题归因结果\n- 模块健康度评估（如适用）\n- 建议的方向：新增功能 / 优化现有功能 / 砍掉不需要的功能 / 调整架构\n\n**可视化判断**：根据诊断复杂度决定是否用 widget：\n- 归因路径涉及多个因果环节 → 用 SVG 流程图展示归因链\n- 涉及多个模块的健康度评估 → 用 SVG 评分卡矩阵（Emerald=健康，Amber=需关注，Rose=需修复）\n- 10 星挑战（标准/深度层级） → 用并排对比图展示当前 vs 10星方案\n- 单一明确问题 → 直接文字说明即可\n\n等待用户确认方向后进入第3步。\n\n---\n\n## 第3步：方案确认\n\n通过 AskUserQuestion 逐项讨论每个变更点：\n\n1. **当前行为**：现在是什么样的\n2. **目标行为**：期望变成什么样的\n3. **推荐方案**：给出推荐并说明理由\n4. **可选方案**：列出替代方案（如有），标注完整度\n5. **做与不做**：明确确认什么做、什么不做、什么推迟，以及原因\n\n**可视化判断**：\n- 单个变更点的讨论 → 文字即可\n- 多个可选方案需要对比 → 用 SVG 并排对比图展示各方案优劣\n- 变更点涉及复杂的行为差异 → 用「当前 vs 目标」对比图\n\n讨论完成后，汇总变更清单：\n- 变更项 ≤3 个 → 文字清单\n- 变更项 ≥4 个 → 考虑用交互式 widget 汇总（含类型颜色编码和优先级标注）\n\n通过 AskUserQuestion 请用户最终确认。\n\n**⚠️ 关键门禁：在用户明确确认变更清单之前，不得写入任何文件（CHANGELOG、PRD）。** 第3步的产出仅在对话中展示，不写入磁盘。\n\n---\n\n## 第3.5步：生成 Feature Spec（用户确认门禁）\n\n**前提：第3步变更清单已确认。** 在写入任何文件之前，先生成 Feature Spec 给用户审阅。\n\n### 目的\n\nFeature Spec 是整个开发和 QA 的**行为契约**。它同时服务于：\n1. **向用户说明**：整体交互设计和界面结构（全局→细节），让用户判断方向是否正确\n2. **向 QA 提供**：可执行的验收检查表（Given/When/Then 场景），让测试有锚点\n\n### 生成流程\n\n1. **读取参考模板**：[references/feature-spec-template.md](references/feature-spec-template.md)\n2. **结合第3步的变更清单**，逐节生成 Feature Spec：\n   - **用户流程总览**：从全局视角画出用户在该功能中的完整流转路径（入口→步骤→出口），包含异常分支\n   - **页面/系统结构**：\n     - 前端项目：整体布局 → 各区块职责 → 具体组件（名称、职责、交互行为、CSS 约束）\n     - 后端项目：API 拓扑 → 模块职责 → 数据流\n     - 全栈项目：两者都写\n   - **视觉决策记录**（前端/全栈必填）：\n     - 已有 brainstorm / Image 2 / Figma / 真实截图链接\n     - 仍需 `forge-design` 生成的视觉稿清单（桌面端、移动端、关键空态/错态）\n     - 用户已经确认或明确否定的视觉方向\n   - **行为场景**：每个功能点 3 个 Given/When/Then 场景（正常 / 异常 / 边界），使用 SHALL/MUST 标记强制要求\n   - **验收检查表**：从行为场景自动提取，分为功能验证、视觉/设计合规（含具体 CSS 值）、流程完整性三类\n\n3. **措辞规范**（吸收 RFC 2119）：\n   - **SHALL / 必须** = 强制要求，违反即为 bug\n   - **SHOULD / 应该** = 推荐，有合理理由可偏离\n   - **MAY / 可以** = 可选\n\n4. **视觉合规项**：如果存在 DESIGN.md，从中提取具体的 CSS 约束（颜色、字号、间距、圆角等）写入验收检查表。不只描述视觉意图，SHALL 包含具体属性值。\n\n### 用户确认（⚠️ 关键门禁）\n\nFeature Spec 生成后，通过 AskUserQuestion 展示给用户：\n\n```\nFeature Spec 已生成，请审阅：\n\n一、用户流程：{流程概要，2-3 句话}\n二、页面结构：{区块数量} 个区块，{组件数量} 个组件\n三、行为场景：{功能点数量} 个功能点，共 {场景数量} 个场景\n四、验收检查表：{检查项数量} 项（功能 X 项 + 视觉 Y 项 + 流程 Z 项）\n\nA) 确认，进入文档写入和开发\nB) 整体方向需要调整（说明哪里不对）\nC) 细节需要修改（指出具体项）\nD) 需要看完整文档再决定\n```\n\n如果用户选 D，输出完整的 Feature Spec 文本。\n\n**⚠️ 铁律：用户未确认 Feature Spec 前，不得进入第4步，不得写入任何文件。**\n\n---\n\n## 第3.6步：生成/更新项目 CLAUDE.md\n\n**首次运行时**（项目根目录不存在 CLAUDE.md）：\n1. 读取 [references/project-claude-md-template.md](references/project-claude-md-template.md)\n2. 填充项目名称、文档路径等变量\n3. 写入 `{项目根目录}/CLAUDE.md`\n\n**已有 CLAUDE.md 时**：\n1. 读取现有内容\n2. 检查是否已包含 `## Forge 工作流` 章节\n3. 如果没有，在文件末尾追加 Forge 章节（不覆盖已有内容）\n4. 如果已有，跳过（不重复写入）\n\n---\n\n## 第4步：写入文档（用户确认后执行）\n\n**前提：用户已在第3步确认变更清单，且在第3.5步确认 Feature Spec。** 确认后一次性产出并写入以下内容：\n\n### A. 更新 CHANGELOG\n\n在 CHANGELOG 文件中追加本次变更记录（如果 CHANGELOG 不存在，新建并基于 git history 回溯生成历史记录）。\n\n参考格式见 [references/prd-template.md](references/prd-template.md) 的 CHANGELOG 格式部分。\n\n每条变更记录包含：\n- **时间戳**：精确到日期\n- **变更背景**：为什么要做这次变更\n- **用户原始需求**：用户的原话或需求描述\n- **设计方案**：采用的方案摘要\n- **关键决策表**：议题 / 决定 / 原因\n- **影响范围**：新增、修改、删除了什么\n\n### B. 更新 PRD 正文\n\n1. **更新头部元信息**：版本号递增、日期、状态\n2. **更新迭代摘要区**（PRD 头部，保留所有版本）：\n   - 新增本次版本的摘要条目\n   - 每个版本列：版本号、日期、核心变更点、对应 CHANGELOG 条目定位\n3. **更新功能章节**：\n   - 新增功能 → 加入对应章节，标记 `[vX.Y 新增]`\n   - 修改功能 → 原位更新，标记 `[vX.Y 修改]`\n   - 砍掉的功能 → 移除或标记为已废弃\n   - 需修复的问题 → 使用 `[需修复]`、`[需改进]`、`[需修改]` 标记\n4. **写入 Feature Spec 章节**：将第3.5步用户确认的 Feature Spec 写入对应功能章节之后\n5. **更新数据模型**：如涉及表结构或 API 变更\n6. **更新已知问题/改进计划**：移除已解决的、新增发现的\n7. **更新技术约束**：如有新约束\n8. **更新交互流程图**：如交互有变\n9. **更新附录修改清单**：按优先级列出所有需执行的修改\n10. **自洽性检查**：确保 PRD 内各章节之间不矛盾（包括 Feature Spec 与功能描述的一致性）\n\n### C. 产出迭代交付说明\n\n在 PRD 的「本次迭代摘要」中包含面向下游 Agent 的交付说明：\n\n- **变更摘要**（3-5行）\n- **关键流程变化**（如有流程图则更新）\n- **前端变更要点**：涉及哪些页面/组件、交互变化、视觉变化\n- **后端变更要点**：涉及哪些 API/数据模型、逻辑变化\n- **设计变更要点**：配色/布局/组件样式变化（如适用）\n- **测试验收标准**：每个变更点对应的验收条件\n- **Agent 补充信息**：\n  - 受影响的文件路径提示（基于源码分析）\n  - 数据库迁移注意事项（如涉及 schema 变更）\n  - 兼容性提醒（如涉及 API 变更对前端的影响）\n  - 关联变更提示（改 A 可能需要同步改 B）\n\n此部分内容在对话中与用户确认核心方向后，由 skill 补充 Agent 所需的技术细节，一并写入 PRD。\n\n---\n\n写入完成后，输出最终总结：\n- 如果本次迭代变更较多（≥4项）或涉及多个模块 → 用 widget 渲染完成仪表盘（指标卡片 + 变更统计图）\n- 简单迭代 → 文字总结即可，包含：项目名、版本变更、诊断层级、变更数、文件状态\n\n---\n\n## Feature 状态管理（.features/ 架构）\n\n### 核心原则\n\n**领域文档（PRD.md）只存内容，不存运行状态。** 运行状态写入独立的 `.features/` 目录，按 feature 隔离，支持多会话并行。\n\n### 状态标记协议\n\n| 标记 | 含义 |\n|------|------|\n| `[⏳ 待处理]` | 已规划，未开始 |\n| `[🔄 进行中]` | 当前正在执行 |\n| `[✅ 已完成]` | 执行完成 |\n| `[❌ 失败]` | 执行失败，需干预 |\n| `[⏸️ 暂停]` | 等待用户确认或外部依赖 |\n\n### forge-prd 是 Feature 的创建者\n\nforge-prd 在第0步中负责创建 `.features/{feature-id}/` 目录并注册到全局索引。\n\n#### 第0步额外操作：创建 Feature\n\n1. **生成 feature-id**：基于需求描述生成简短的 kebab-case ID（如 `dedup-optimization`、`channel-mgmt-v2`）\n\n2. **创建目录和文件**：\n   ```bash\n   mkdir -p .features/{feature-id}\n   ```\n\n3. **创建 status.md**：\n   ```markdown\n   # Feature: {feature-id}\n   ## 描述：{一句话需求描述}\n   ## PRD 版本：vX.Y\n   ## 创建时间：{ISO 8601}\n\n   ## Pipeline\n   | phase | status | skill | started | completed | note |\n   |-------|--------|-------|---------|-----------|------|\n   | prd | [🔄 进行中] | forge-prd | {时间} | — | 诊断阶段 |\n   | design | [⏳ 待处理] | — | — | — | — |\n   | eng | [⏳ 待处理] | — | — | — | — |\n   | qa | [⏳ 待处理] | — | — | — | — |\n   ```\n\n4. **注册到 `_registry.md`**（不存在则新建）：\n   ```markdown\n   | feature-id | version | status | skill | heartbeat | branch | 描述 |\n   |------------|---------|--------|-------|-----------|--------|------|\n   | {id} | vX.Y | active | forge-prd | {时间} | {分支名} | {描述} |\n   ```\n\n5. **版本号预留**：读取 `_registry.md` 找最高版本号 → 预留下一个 → 写入注册表。版本号不回收。\n\n#### 状态更新时机\n\n1. **进入第1步时**：创建 `.features/{id}/` + status.md + 注册到 `_registry.md`，prd 行标记为 `[🔄 进行中]`\n2. **等待用户确认时**：prd 行状态改为 `[⏸️ 暂停]`，更新 heartbeat\n3. **第4步写入完成后**：prd 行状态改为 `[✅ 已完成]`，记录 completed 时间，更新 heartbeat\n4. **失败/中断时**：prd 行状态改为 `[❌ 失败]`，note 填失败原因\n\n#### Heartbeat 规则\n\n每次写入 status.md 时，同步更新 `_registry.md` 中该 feature 的 heartbeat 字段。\n\n### 跨 Agent 协作\n\n- 其他 skill 通过读取 `.features/{id}/status.md` 的 Pipeline 表来感知 forge-prd 的状态\n- forge-dev 启动时读取 `_registry.md`，如果某 feature 的 heartbeat 超过 30 分钟且 status 仍为 active，触发孤儿检测警告\n- **领域文档（PRD.md）不含任何运行状态**，多个会话可以安全地并行操作不同 feature\n\n---\n\n## 完整性原则\n\n- PRD 是给后续 agent（设计、开发、QA）看的，必须准确、完整、无歧义\n- CHANGELOG 是给人和 agent 看的，需要记录决策上下文和\"为什么\"\n- 宁可多问一个问题，不要假设用户意图\n- 每个变更点都要有明确的「当前行为」和「目标行为」对比\n- 用户描述的是症状，skill 要做的是诊断——找到根因，而非只处理表面\n- 对于带前端的项目，PRD 应覆盖设计系统、配色方案、交互细节\n- 对于纯后端项目，PRD 应覆盖 API 设计、数据模型、性能要求\n- 如果认为需求不合理，直接反驳并给出替代方案\n\n---\n\n## 资源\n\n- **PRD 模板与 CHANGELOG 格式**：[references/prd-template.md](references/prd-template.md)\n- **Feature Spec 模板**：[references/feature-spec-template.md](references/feature-spec-template.md)\n- **项目 CLAUDE.md 模板**：[references/project-claude-md-template.md](references/project-claude-md-template.md)","tags":["forge","prd","skills","yike-gunshi","agent-skills","ai-development","claude-code","skill-md","skillsmp"],"capabilities":["skill","source-yike-gunshi","skill-forge-prd","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-prd","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,764 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:34.094Z","embedding":null,"createdAt":"2026-04-24T07:03:38.647Z","updatedAt":"2026-05-18T19:07:34.094Z","lastSeenAt":"2026-05-18T19:07:34.094Z","tsv":"'-2':258,367,698 '-3':991 '-5':523,1219 '/_shared/visual-decision-layer.md':187 '/changelog':459,461 '/claude.md':1061 '/claudecode_workspace':52 '/docs':431,434,449,453,456,613 '/docs/prd.md':427,429,600 '/forge-cookbook/skills/forge-doc-policy/doc-paths.md':54 '/forge-prd':55 '/prd':12,439 '/prd.md':437 '/requirements.txt':552 '/status.md':1483 '0':348,349 '1':257,363,366,417,487,542,670,697,778,855,870,1051,1065,1132,1332,1427 '10':196,763,1199 '100':346 '10星差距':134 '10星挑战':132,320,633,640,649,685 '10星方案':705,769 '10星版本是什么样的':688 '2':199,209,369,441,491,563,684,781,861,874,909,990,1055,1067,1137,1350,1438 '2/figma':29 '2119':947 '3':232,375,399,462,496,522,590,656,706,784,814,924,943,1058,1072,1150,1218,1359,1445 '30':1501 '3000':340 '4':382,506,601,723,787,818,960,1078,1170,1395,1455 '4个':527 '4项':1268 '5':250,390,520,615,729,792,1180,1418 '5项时':325 '6':395,533,1185 '680':350 '7':1190 '8':1193 '8601':1374 '9':1196 'a/b':407 'activ':1411,1505 'agent':111,175,508,545,1215,1240,1261,1476,1515,1525 'ai':380 'amber':759 'api':897,1183,1230,1250,1549 'askuserquest':360,567,776,825,981 'b':165,225,313,393,1022,1128,1256 'bash':1352 'brainstorm':907 'branch':1407 'bug':585,952 'c':172,394,1025,1208 'case':1340 'ceo':378 'changelog':21,65,70,82,96,104,110,164,296,416,443,450,454,478,493,497,603,646,654,711,830,1094,1096,1099,1109,1148,1523,1558 'channel':1347 'channel-mgmt-v2':1346 'chart.js':294,352 'claude.md':1047,1050,1063,1568 'cn':720 'cn-plan-product':719 'codepilot':274,276 'codepilot-widget':273 'complet':1380,1451 'css':894,940,965 'd':1028,1031 'dedup':1344 'dedup-optim':1343 'design':215,915,1389 'design.md':963 'dev':1493 'doc':45 'emerald':757 'eng':1391 'explor':112,511,546 'featur':837,844,848,877,977,983,1033,1038,1089,1172,1177,1205,1283,1285,1293,1296,1318,1324,1326,1331,1335,1355,1357,1363,1365,1401,1430,1471,1481,1497,1511,1562 'feature-id':1325,1334,1356,1364,1400 'figma':910 'forg':2,37,44,214,914,1069,1075,1315,1321,1385,1413,1488,1492 'forge-design':213,913 'forge-dev':1491 'forge-doc-polici':43 'forge-prd':1,36,1314,1320,1384,1412,1487 'frontmatt':49 'git':481,560,605,1102 'given/when/then':866,926 'glob':93,420 'guidelin':279,332 'h':351 'heartbeat':1406,1444,1454,1463,1473,1499 'histori':482,606,1103 'html':323 'id':1327,1336,1341,1358,1366,1402,1409,1431,1482 'imag':28,198,208,908 'indigo':334 'iso':1373 'kebab':1339 'kebab-cas':1338 'legend':356 'load':277 'log':561 'markdown':1362,1399 'may':957 'mcp':272 'md':440 'mermaid':188 'mgmt':1348 'mkdir':1353 'note':1381,1461 'optim':1345 'p':1354 'package.json':551 'package.json/requirements.txt':550 'phase':1376 'pipelin':1375,1485 'plan':721 'polici':46 'prd':3,5,19,23,25,38,57,64,69,83,95,98,109,167,206,414,422,432,465,470,489,517,538,540,592,617,673,676,677,679,681,714,725,831,1130,1139,1202,1211,1264,1316,1322,1369,1382,1386,1414,1435,1440,1447,1458,1489,1513,1542,1547,1556 'prd.md':1289,1508 'product':722 'qa':851,863,1393,1518 'readm':549 'references/feature-spec-template.md':872,873,1565,1566 'references/prd-template.md':595,596,1106,1107,1560,1561 'references/project-claude-md-template.md':1053,1054,1570,1571 'registry.md':1397,1421,1434,1469,1495 'respons':354 'rfc':946 'rose':761 'schema':50,557,1246 'shall':948,973 'shall/must':932 'show':190,403 'show-widget':189,402 'skill':8,1259,1378,1405,1479,1537 'skill-forge-prd' 'slate':336 'source-yike-gunshi' 'spec':838,845,849,878,978,984,1034,1039,1090,1173,1178,1206,1563 'start':1379 'status':1377,1404,1503 'status.md':1361,1432,1466 'svg':301,306,314,343,751,755,803 'topic-agent-skills' 'topic-ai-development' 'topic-claude-code' 'topic-forge' 'topic-skill-md' 'topic-skillsmp' 'v1.0':609 'v2':1349 'version':1403 'viewbox':347 'vs':224,227,312,317,704,768,808 'vx.x':661,662,663 'vx.y':1155,1160,1371,1410 'widget':181,191,219,254,269,275,278,282,286,328,331,339,358,404,530,748,821,1271 'width':345 'x':1011 'x/10':389 'y':1014 'yes/no':263 'z':1017 '一':987 '一句话原因':387 '一句话需求描述':1368 '一并写入':1263 '三':999 '下':614 '不写入磁盘':833 '不写死文件名':445 '不区分大小写':451 '不只描述视觉意图':972 '不含任何运行状态':1509 '不存在':1100 '不存在则新建':1398 '不存运行状态':1291 '不得写入任何文件':829,1042 '不得进入第4步':1041 '不是所有内容都需要画图':183 '不用内部术语':374 '不用函数名':373 '不要假设用户意图':1530 '不覆盖已有内容':1077 '不重复写入':1081 '不需要':253 '与':415 '与功能描述的一致性':1207 '与用户多轮确认':564 '且在第3.5':1087 '两者都写':902 '个':815,819,925 '个功能点':1002 '个区块':996 '个场景':1005 '个方案对比或复杂的流程差异':400 '个模块的评分':233 '个版本中被修改':657 '个组件':998 '中包含面向下游':1214 '中反复修改':664 '中对该场景的定义就不完整或不合理':674 '中对该模块的隐含假设是什么':726 '中断时':1457 '中某模块在':655 '中的修改历史':712 '中该':1470 '为什么':372,1528 '为什么要做这次变更':1115 '主动告知用户':659 '主动提示':505 '主色':335 '了解历史变更':495 '了解项目演进历史':562 '二':993 '交互变化':1226 '交互式':322 '交互流程图':88 '交互细节':1545 '交互行为':893 '交替文字和可视化':359 '产出':591 '产出迭代交付说明':173,1209 '产品定位':569 '产品状态总结':290 '产品经理寻找和思考最佳方案':381 '产品设计缺陷':10,672 '产品诊断与':4,56 '什么不做':795 '什么推迟':796 '仅深度':138 '仍为':1504 '仍需':912 '从中提取具体的':964 '从全局视角画出用户在该功能中的完整流转路径':880 '从整体产品视角评估':734 '从行为场景自动提取':935 '从轻量升级到标准':653 '从零创建':537 '以及原因':797 '优化现有功能':743 '作为':377 '使用':344,510,931,1165 '使用前':267 '保留所有版本':1141 '信息本身就是线性叙述':265 '信息类型':284 '信息量大且':247 '修参数':631 '修改':1126,1161 '修改功能':1157 '借鉴':718 '值':941 '假设审查':139,648,724 '假设用户已经20分钟没看窗口':409 '偏离':130 '做与不做':793 '做什么':626 '健康':758 '健康度':195 '先生成':843 '先读取':186 '入口':881 '全局':858 '全栈必填':905 '全栈需求的视觉决策需求':27 '全栈项目':901 '全程中文':86 '全面阅读项目代码':543 '共':1003 '关联变更提示':1252 '关键决策表':1120 '关键文件':513 '关键流程变化':1221 '关键空态':919 '关键门禁':827,976 '其他':1478 '具体组件':890 '典型场景':287 '兼容性提醒':1248 '内各章节之间不矛盾':1203 '写入':598,611,1059,1171 '写入完成后':1265 '写入对应功能章节之后':1179 '写入文档':80,160,1083 '写入注册表':1424 '写入验收检查表':971 '写得对但代码实现偏离了':678 '决定':1122 '决策树':241 '决策流程':304 '出口':883 '分为功能验证':936 '分布数据':293 '分支判断':463 '分支名':1416 '分钟且':1502 '列出从代码中识别到的功能模块':575 '列出替代方案':789 '列出选项':391 '创建':1330,1360,1429 '创建时间':1372 '创建模式':472 '创建目录和文件':1351 '初始版本':610 '初稿':593 '删除了什么':1127 '判断标准':217 '前':270,1040 '前提':840,1085 '前端':904 '前端变更要点':1223 '前端项目':887 '功能':1010 '功能点数量':1001 '功能章节':171 '功能调整':636 '功能边界':574 '加入对应章节':1153 '加载设计规范':280 '动态判断是否使用':180 '包含':1277 '包含具体属性值':974 '包含异常分支':884 '包括':1204 '区块数量':995 '升级':667 '升级到深度':658 '协作':1477 '单一明确问题':770 '单个变更点的讨论':260,799 '单个小改动':628 '占比':245 '原位更新':1158 '原因':1123 '参考':594 '参考格式见':1105 '反复修改但未根治':501 '反驳机制':140,650,730 '受影响的文件路径提示':1242 '变更':457,1184,1247 '变更对前端的影响':1251 '变更摘要':1217 '变更数':1281 '变更清单':249,324 '变更点涉及复杂的行为差异':805 '变更统计':298 '变更统计图':1274 '变更背景':1114 '变更项':813,817 '句':368,524,699 '句确认性问题':259 '句话':992 '只在可视化明显优于纯文本时才使用':184 '只存内容':1290 '只记录视觉决策需求':211 '可以':958 '可以做完':691 '可执行的验收检查表':865 '可能需要同步改':1255 '可视化':182 '可视化判断':746,798 '可视化规范':177 '可视化辅助':396 '可选':150,959 '可选方案':788 '各区块职责':889 '同一模块在多个版本中出现':503 '同步更新':1468 '名称':891 '后端变更要点':1228 '后端项目':896 '后续规划':588 '向':862 '向用户展示':616,737 '向用户总结当前产品状态':521 '向用户说明':856 '含义':1301 '含具体':939 '含类型颜色编码和优先级标注':823 '启动时读取':1494 '吸收':945 '和':20,1533 '和专业':379 '和用户确认是否进入':471 '四':1006 '回溯生成':483 '回溯生成历史版本记录':607 '回溯生成历史记录':1104 '因为':386 '因果':193,299 '因果链':238 '图表必须':353 '圆角等':970 '在':1095,1210 '在写入任何文件之前':842 '在向用户展示信息时':179 '在文件末尾追加':1074 '在用户明确确认变更清单之前':828 '在第0步中负责创建':1323 '场景':867,927 '场景数量':1004 '基于源码分析':1243 '基于需求描述生成简短的':1337 '基于项目文档':480,604 '填充项目名称':1056 '填失败原因':1462 '复杂信息拆成多个':357 '复杂状态':202 '多个会话可以安全地并行操作不同':1510 '多个可选方案需要对比':801 '多个小改动集中在同一区域':637 '多个小需求集中在同一模块':652 '多指标概览':288 '多模块健康度评估':252 '多步骤流程':239 '多维度数据':231 '多维评估':305 '多轮交互':77 '多轮询问用户':151 '大':693 '失败':1309,1456,1460 '头部':1140 '如':1342 '如交互有变':1195 '如判断需要可视化':185 '如有':558,790 '如有新约束':1192 '如有流程图则更新':1222 '如果':1098 '如果你需要读源码才能理解自己的解释':410 '如果发现热点模块与用户本次需求相关':504 '如果存在':494,962 '如果已有':1079 '如果本次迭代变更较多':1267 '如果某':1496 '如果没有':1073 '如果用户选':1030 '如果认为用户提的需求放在这里不合适':731 '如果认为需求不合理':1553 '如果选项涉及':398 '如果项目模块较多':526 '如涉及':1245,1249 '如涉及表结构或':1182 '如适用':740,1237 '子代理扫描项目结构':512 '字号':968 '字段':1474 '字符':341 '宁可多问一个问题':1529 '它同时服务于':854 '完整':1521 '完整性原则':1512 '完整白名单':48 '定位':92 '定位项目':63,413 '实现偏离':11,675 '审查模块健康度':14 '审查深度自动判定':623 '对于带前端的项目':1541 '对于纯后端项目':1546 '对应':1147 '对比':1535 '对比关系':221 '对比图':810 '将第3.5':1175 '小':690 '层级':624 '展开讨论':702 '展示给用户':982 '展示诊断结果':142 '工作流':1070 '工具':53 '工具深度分析项目源码':509 '差距是':689 '已完成':1307,1449 '已有':906,1062 '已有图链接和下游':212 '已生成':985 '已知问题':583 '已规划':1303 '布局':1235 '并排对比':315 '并排对比图展示各方案优劣':804 '并记录前端':26 '应覆盖':1548 '应覆盖设计系统':1543 '应该':954 '建议做一次彻底审查':665 '建议的方向':741 '开发':1517 '异常':929 '强制要求':950 '归因':632,638 '归因路径':240 '归因路径涉及多个因果环节':749 '当决定使用':327 '当前':147,226,316,807 '当前几星':133 '当前实现与':516 '当前方案几星':687 '当前正在执行':1306 '当前行为':779,1532 '当成设计定稿':210 '当项目没有':539 '影响范围':1124 '待处理':1302,1390,1392,1394 '必要时反驳需求':17 '必须':949 '必须准确':1520 '必须补齐的视觉稿':216 '性能要求':581,1552 '总结现状':117 '或':645 '或体验问题':586 '或存在热点模块数据':528 '或涉及多个模块':1269 '所有层级':127 '所有层级必做':686 '所有层级通用':669 '所需的技术细节':1262 '才能确认的决策':205 '执行失败':1310 '执行完成':1308 '找不到':469,477 '找到':97,464 '找到根因':1539 '找最高版本号':1422 '技术栈':514 '技术约束':578 '拓扑':898 '指出具体项':1027 '指标卡片':1273 '指标卡片仪表盘':289 '按':1295 '按优先级':425 '按优先级列出所有需执行的修改':1198 '按需':397 '挑战假设':16 '推荐':149,285,384,955 '推荐方案':785 '推荐的':281 '措辞规范':944 '描述':1367,1408,1417 '描述产品问题':39 '描述的差异':518 '提供':864 '搜索':94,421,442 '搜索模式':424,447 '支持从零创建':22 '支持多会话并行':1298 '改':1253 '改进计划':1187 '改阈值':629 '数据库迁移注意事项':1244 '数据模型':1231,1551 '数据流':900 '整体交互设计和界面结构':857 '整体布局':888 '整体方向需要调整':1023 '文件':423,444 '文件中追加本次变更记录':1097 '文件时执行此流程':541 '文件状态':1282 '文字即可':800 '文字总结即可':1276 '文字清单':816 '文本':1035 '文档':490 '文档落地路径':41 '文档路径等变量':1057 '新增':1125,1156 '新增功能':742,1152 '新增发现的':1189 '新增本次版本的摘要条目':1142 '新建':163,602 '新建并基于':1101 '新模块':643 '方案':222 '方案x':385 '方案对比':319,641 '方案确认':76,145,774 '方案评分':310 '无歧义':1522 '日期':1135,1145 '时':329,1064,1467 '时间':1387,1415,1452 '时间戳':1112 '明确告知用户属于哪种情况':683 '明确确认什么做':794 '星挑战':764 '星挑战等结构化判断':197 '是':1317 '是否创建模式':102 '是否存在关联模块需要同步调整':716 '是整个开发和':850 '是给人和':1524 '是给后续':1514 '显示某模块反复修改':647 '暂停':1312,1442 '更新':84,162,166,1093,1129,1443,1453 '更新prd':33 '更新交互流程图':1194 '更新功能章节':1151 '更新头部元信息':1133 '更新已知问题':1186 '更新技术约束':1191 '更新数据模型':1181 '更新迭代摘要区':1138 '更新附录修改清单':1197 '更新项目':1046 '替代':476,536 '最佳方案':376 '最终更新':18 '最终确认':155 '有':220,230,236,242 '有合理理由可偏离':956 '期望变成什么样的':783 '未开始':1304 '本次迭代摘要':1213 '本次迭代需求是什么':120 '条目定位':1149 '架构':1286 '架构调整':644 '查看':559 '柱状图':295 '标准':125,135,700,708,765 '标准审查':635 '标注完整度':388,791 '标记':1154,1159,1169,1300 '标记强制要求':933 '标记第4步新建':105 '标记需要在第4步新建':479 '核心价值是什么':572 '核心原则':178,1287 '核心变更点':1146 '根据用户提供的目录线索':418 '根据诊断复杂度决定是否用':747 '根本没考虑到这个场景':682 '格式':1559 '格式规范':361 '格式部分':1110 '桌面端':917 '检查是否已包含':1068 '检查项数量':1008 '模块修改频次':115 '模块健康度':309,639 '模块健康度检查':137,707 '模块健康度评估':739 '模块职责':899 '模式匹配':446 '模板':1564,1569 '模板与':1557 '正常':928 '正文':168,1131 '此部分内容在对话中与用户确认核心方向后':1257 '步':835,1044 '步用户确认的':1176 '步确认':1088 '步骤':882 '每个':338 '每个功能点':923 '每个变更点对应的验收条件':1239 '每个变更点确认':152 '每个变更点都要有明确的':1531 '每个步骤结束后暂停等待用户反馈':87 '每个版本列':1143 '每条变更记录包含':1111 '每次写入':1465 '每次提问遵循以下结构':362 '每轮一个主题':565 '汇总':822 '汇总变更清单':154,812 '没找到':100,103 '没有对比或结构':266 '注册到':1396,1433 '流程':237,300,1016 '流程图':302 '流程图展示归因链':752 '流程完整性三类':942 '流程总览':59 '流程概要':989 '测试验收标准':1238 '涉及哪些':1229 '涉及哪些页面':1224 '涉及多个模块的健康度评估':753 '深度':126,136 '深度审查':642,701 '深度审查额外步骤':717 '深度层级':709,766 '渲染完成仪表盘':1272 '渲染对比图辅助决策':405 '渲染指标卡片和热点柱状图':531 '源码':71,113 '满足任一即用':218 '热点分析':114,297,498 '版本':1370 '版本变更':1279 '版本号':169,1144 '版本号不回收':1425 '版本号递增':1134 '版本号预留':1419 '版本间差异':229 '状态':234,1136 '状态更新时机':1426 '状态标记协议':1299 '状态管理':1284 '现在是什么样的':780 '理解功能模块':555 '理解现状':67,107,485 '生成':836,1045,1333 '生成后':979 '生成流程':869 '生成的视觉稿清单':916 '用':401,419,507,544,750,754,802,806,1270 '用于前端观感':200 '用于流程':192 '用并排对比图展示当前':703,767 '用户主动要求更深度的审查':666 '用户原始需求':1116 '用户只需要':262 '用户已在第3步确认变更清单':1086 '用户已经确认或明确否定的视觉方向':921 '用户报告症状':60 '用户描述的是症状':1536 '用户描述的问题':519 '用户描述遇到的问题或需求':7 '用户描述问题':89 '用户最终确认变更清单':78 '用户未确认':1037 '用户流程':988 '用户流程总览':879 '用户的原话或需求描述':1117 '用户的新需求是否暴露了错误的假设':728 '用户确认':158,975 '用户确认后执行':1084 '用户确认后生成prd':473 '用户确认门禁':839 '用户说':32 '用户需要':203 '用简单语言说清楚要做什么':371 '由':1258 '的':852,1108,1212,1472,1484,1498 '的一致性':715 '的交付说明':1216 '的决策':264 '的创建者':1319 '的场景':255 '的标准章节结构':597 '的模块':502 '的状态':1490 '的配色和布局规范':333 '目录':1294 '目录并注册到全局索引':1328 '目标':148,228,318,809 '目标行为':782,1534 '目的':847 '直接反驳并给出替代方案':1554 '直接文字说明即可':771 '直接说出来':732 '看的':1519,1526 '看见效果':204 '真实截图':30 '真实截图链接':911 '矩阵':194,307 '砍掉不需要的功能':744 '砍掉的功能':1162 '确保':1201 '确认':1020 '确认前不写任何文件':157 '确认后一次性产出并写入以下内容':1091 '确认后才写':81 '确认当前存在的':584 '确认技术限制':579 '确认方向':143 '确认方案':634 '确认是否完整':576 '确认理解是否正确':118,525 '确认近期计划做的功能':589 '禁用':355 '移动端':918 '移除已解决的':1188 '移除或标记为已废弃':1163 '章节':1071,1076,1174 '第0步':62,91,412 '第0步额外操作':1329 '第1步':66,106,468,475,484,535 '第1步-替代':474 '第1轮':568 '第2步':72,121,620 '第2轮':573 '第3.5':834 '第3.6':1043 '第3步':75,144,773 '第3步变更清单已确认':841 '第3步的产出仅在对话中展示':832 '第3轮':577 '第4步':79,159,1082 '第4步写入完成后':1446 '第4轮':582 '第5轮':587 '第三方依赖':580 '等待用户确认或外部依赖':1313 '等待用户确认方向后进入第3步':772 '等待用户确认时':1439 '等配置文件':553 '简单的':256,406 '简单迭代':1275 '简单项目直接文字总结即可':532 '简要挑战即可':696 '类型参考':283 '精确到日期':1113 '系统性扫描项目目录结构':547 '系统结构':886 '约束':895,966 '纯文字更直接':261 '组件':1225 '组件数量':997 '组件样式变化':1236 '细节':859 '细节需要修改':1026 '结合第3步的变更清单':875 '结构化清单':321 '结构化程度高':248 '结构和各章节概要':618 '结构色':337 '给出推荐':383 '给出推荐并说明理由':786 '给出替代方案或建议砍掉某些不需要的功能':733 '给用户审阅':846 '给谁用':571 '统计分布':243 '统计各模块被修改的频次':499 '考虑用':529 '考虑用交互式':820 '而非只处理表面':1540 '而非只看单个需求点':735 '职责':892 '自动判定层级':123 '自动升级规则':651 '自洽性检查':1200 '自适应三层深度':74 '自适应深度':622 '行':1220 '行为场景':922,1000 '行为契约':853 '行标记为':1436 '行状态改为':1441,1448,1459 '补充':1260 '补充信息':1241 '表来感知':1486 '要做的是诊断':1538 '见':51 '规则':1464 '规范':47 '视觉':937,1013 '视觉决策记录':903 '视觉变化':1227 '视觉合规项':961 '解释文字放在代码块外':342 '触发孤儿检测警告':1506 '触发方式':31 '触发条件':625 '讨论完成后':811 '让测试有锚点':868 '让用户判断方向是否正确':860 '议题':1121 '记录':608,1450 '设计':1516,1550 '设计变更要点':1233 '设计合规':938 '设计方案':15,1118 '设计缺陷':129 '设计要求':326 '评分卡':308 '评分卡矩阵':756 '识别':500 '诊断与审查':73,122,621 '诊断层级':1280 '诊断根因':9 '诊断流程':668 '诊断输出':736 '诊断阶段':1388 '询问用户':101,116,119,141,153 '询问用户本次迭代的需求或问题':534 '该模块在':710 '该模块当前实现与':713 '说明哪里不对':1024 '说明当前项目名称和正在讨论的变更':365 '说明解释太复杂了':411 '请审阅':986 '请用户最终确认':826 '读':68,108 '读取':492,548,1052,1420 '读取参考模板':871 '读取完整':488 '读取数据库':556 '读取核心源码文件':554 '读取现有内容':1066 '调整架构':745 '调整需求':34 '调文案':630 '调用':271 '资源':1555 '超出当前范围':694 '超过':1500 '趋势等数值型数据':246 '跨':1475 '跳过':1080 '轻量':124 '轻量审查':627,695 '输出完整的':1032 '输出最终总结':176,1266 '边界':930 '运行状态写入独立的':1292 '还是':692 '这个模块已经在':660 '这个项目解决什么问题':570 '这些假设是否仍然成立':727 '进入':466 '进入文档写入和开发':1021 '进入第1步时':1428 '进行中':1305,1383,1437 '违反即为':951 '迭代prd':35 '迭代交付说明':85 '迭代完成总结':291 '迭代已有':24 '迭代摘要':170 '迭代模式':99,467,486 '迭代管理器':6,58 '选择不需要画图':408 '逐节生成':876 '逐节确认后写入文件':619 '逐项讨论变更点':146 '逐项讨论每个变更点':777 '通俗解释':370 '通过':566,775,824,980 '通过读取':1480 '逻辑变化':1232 '遗漏':13,131 '遗漏场景':680 '遵循':42,330 '配色':1234 '配色方案':1544 '采用的方案摘要':1119 '重新聚焦':364 '重点关注':515 '铁律':1036 '错态':920 '门禁':156 '问题归因':128,671 '问题归因结果':738 '问题归因路径':303 '间距':969 '阶段不把':207 '隔离':1297 '需修复':762,1166 '需修复的问题':1164 '需修改':1168 '需关注':760 '需干预':1311 '需改进':1167 '需求':61,90,435 '需要修改项目产品需求时使用':40 '需要看完整文档再决定':1029 '需要记录决策上下文和':1527 '面向下游':174 '页面':885 '页面气质':201 '页面结构':994 '项':251,1009,1012,1015,1018 '项目':1567 '项目名':1278 '项目根目录':1060 '项目根目录不存在':1049 '项目目录':426,428,430,433,436,438,448,452,455,458,460,599,612 '预留下一个':1423 '领域文档':1288,1507 '频次':244,292 '频次需要并排展示':235 '颜色':967 '首次生成':268 '首次运行时':1048 '验收检查表':934,1007","prices":[{"id":"220070d9-5930-4eba-abbb-0276af4f9d81","listingId":"76a00728-1a42-4e1f-84ef-f849b9fc23b1","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.647Z"}],"sources":[{"listingId":"76a00728-1a42-4e1f-84ef-f849b9fc23b1","source":"github","sourceId":"yike-gunshi/forge-skills/forge-prd","sourceUrl":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-prd","isPrimary":false,"firstSeenAt":"2026-04-24T07:03:38.647Z","lastSeenAt":"2026-05-18T19:07:34.094Z"}],"details":{"listingId":"76a00728-1a42-4e1f-84ef-f849b9fc23b1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"yike-gunshi","slug":"forge-prd","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":"5fd12e56ba35079345ede3aa425f29a3f2b2bef9","skill_md_path":"skills/forge-prd/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/yike-gunshi/forge-skills/tree/main/skills/forge-prd"},"layout":"multi","source":"github","category":"forge-skills","frontmatter":{"name":"forge-prd","description":"产品诊断与 PRD 迭代管理器。用户描述遇到的问题或需求，skill 诊断根因（产品设计缺陷/实现偏离/PRD遗漏）、审查模块健康度、设计方案、挑战假设、必要时反驳需求，最终更新 PRD 和 CHANGELOG。支持从零创建 PRD、迭代已有 PRD，并记录前端/全栈需求的视觉决策需求（Image 2/Figma/真实截图）。触发方式：用户说\"更新PRD\"、\"调整需求\"、\"迭代PRD\"、\"forge-prd\"、描述产品问题、需要修改项目产品需求时使用。"},"skills_sh_url":"https://skills.sh/yike-gunshi/forge-skills/forge-prd"},"updatedAt":"2026-05-18T19:07:34.094Z"}}