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