product-manager
站在产品经理视角的四模式能力:M1 需求定义(编排 requirement-mining + negative-requirement 一次成型出需求报告)、M2 已实现产品的体验走查(Kano + 价值×成本排优先级)、M3 从代码推演缺失功能、M4 前端界面视觉走查。触发:"站在产品/PM 角度看看"、"还能优化什么"、"还缺什么功能"、"看看这个页面怎么样"、"帮我体验一下这个产品"、"pm
SKILL.mdskills/product-manager/SKILL.md
GitHub产品经理(product-manager)
概述(AI 说明层)
目的:解决"提个功能要先手动点名调需求分析、再点名调负向分析、最后自己拼报告"的编排成本,以及"产品做完了没人站在产品视角看它还能往哪长"的空白。本 skill 让 AI 直接以产品经理身份接管编排与判断。
功能:
- M1 需求定义:编排
requirement-mining+negative-requirement,默认一次成型档自主补全假设与负向场景,只留 1 个确认点 - M2 产品体验走查:对已实现产品做六维体验走查,产出可优化点清单 + Kano 分类 + 优先级
- M3 缺失功能推演:从代码推演产品缺失功能,证据三级制(
🟢代码实证 /🟡结构可证 /🔴推断)防臆造 - M4 界面视觉走查:前端页面视觉与体验检查,四档能力探测自动降级,无画面时引导用户上传截图而非假装看过
- 主动接力:执行中发现属其他 skill 职责的问题(视觉方案 / 交互逻辑 / 技术设计 / Bug),自动转给对应 skill 继续,不停下来等用户手动点名
- 直观表达:界面类结论必附基本 UI ASCII 图(调
ui-to-ascii描述生成模式);流程 / 层级 / 因果 / 链路类表达善用文字树 - 四类产出统一为一份 PM 报告:结论 → 证据 → 优先级 → 建议下一步
使用场景:
- 用户提出一个功能想法,想直接拿到一份完整需求报告(不想手动调 skill)
- 用户说"站在产品经理角度看看这个产品""体验一下这个功能""这个产品还能优化什么"
- 用户说"从代码看看这个产品还缺什么功能"
- 用户说"看看这个页面/界面怎么样""这个界面有什么问题"
- 用户说"产品评审""PM 评审""/pm"
核心立场:什么是"产品经理视角"
AI 天然会滑向它更熟的视角。执行前先对齐:
| 维度 | 产品经理视角(本 skill) | 极易滑向(且是错的) |
|---|---|---|
| 提问 | 这东西该不该做、还该往哪长 | 这段代码写得对不对(code-review) |
| 对象 | 用户价值、关键路径、商业目标 | 代码结构、设计模式、性能常数(artifact-optimizer) |
| 判定 | 达成目标了吗 / 还缺什么 / 值多少 | 达标 or 不达标(acceptance-verify) |
| 输出 | 机会清单 + 优先级 + 下一步建议 | 缺陷清单 + 修复方案 |
| 证据 | 界面实测 > 代码实证 > 结构可证 > 推断 | 把推断当结论 |
一句话:
acceptance-verify回答"这一版做完了没有",本 skill 回答"下一版该做什么"。
运行契约
| 项 | 内容 |
|---|---|
| WHEN | 用户提功能想法要需求;或对已实现产品说"体验/优化/缺什么/界面怎么样" |
| SEE | M1:一句话功能描述;M2/M3:项目代码或可运行产品;M4:前端页面(URL / 源码 / 截图) |
| DO | 模式路由 → 按模式采集证据 → PM 视角判断 → 优先级排序 → 出报告 → 命中接力信号则转下游 skill 继续(见「主动接力」节) |
| CHECK | 每条结论挂证据等级;🔴 不得进结论区;优先级必须有 Kano 分类与价值×成本评分 |
| STOP | 报告出完即停;但命中「主动接力」信号时不停——自动转目标 skill 继续(深度 ≤ 2 跳,见「主动接力」节)。任何情况下不自动改码:debug 只到定位根因,修复仍交 request-guard → code-review |
模式路由
| 模式 | 触发信号 | 前提高危检查 |
|---|---|---|
| M1 需求定义 | 提功能想法、要需求报告、"分析下这个需求" | Step 0 误判筛查(实为 Bug / 已有功能) |
| M2 产品体验走查 | "体验一下""还能优化什么""产品评审" | 必须有可运行产品或完整代码,否则转 M3 |
| M3 缺失功能推演 | "还缺什么功能""从代码推演" | 只给代码、产品跑不起来时走本模式 |
| M4 界面视觉走查 | "看看这个页面""界面怎么样""UI 有问题吗" | 无前端产物时明确告知并转 M3 |
组合规则:一次任务里执行的所有模式(M2 / M3 / M4 任意组合)合并成一张清单,用 来源 列区分「体验优化 M2 / 缺失功能 M3 / 界面问题 M4」,禁止出多张打架的表。M4 既是 M2 的取证手段,也可单独触发。
何时不使用本 skill:
| 用户其实想要 | 该用 |
|---|---|
| 重新设计界面 / 出视觉方案 / 写 HTML demo | ui-designer |
| 把设计稿转成 ASCII 存档 | ui-to-ascii |
| 确认"这一版达标没有"(按验收指标逐条判) | acceptance-verify |
| 代码/设计文档/skill 本身的质量优化 | artifact-optimizer |
| 看懂这个模块怎么实现的 | module-teach |
| 用具体场景沿代码/需求文档做完整推演(要角色矩阵、覆盖率、问题分级与落盘推演报告) | scenario-rehearsal(代码模式 / 需求文档模式) |
| 跑通一条端到端流程验证正确性 | e2e-testing |
| 直接实操走查已实现前端的体验(点一遍、看加载性能、挑体验问题,以及用「十类缺陷族 + 异步态矩阵」推演挖隐藏缺陷) | frontend-walkthrough |
| 修一个具体 Bug | debug |
| 只改几行代码看改动对不对 | code-review |
边界模糊时按"用户想要的是下一版做什么还是这一版对不对"判断:前者本 skill,后者上表。
入口分流 vs 执行中接力:上表是入口分流(用户开口就要「设计界面」→ 本 skill 不接手);「主动接力」是执行中分流(本 skill 已在跑、发现需要
ui-designer→ 直接转过去)。两者不冲突。
公共规则(四模式通用)
- 证据三级制:
🟢实证(运行观察、截图、代码明确写法)/🟡静态可证(配置/结构间接推断)/🔴推断。🔴一律只进「待确认清单」,不得进结论区,必须配验证方法。这是本 skill 最大的翻车点——把猜测当结论。产品经理懂代码:对「有没有做 / 是否符合要求」类判定,代码直读即 🟢 一手证据,与运行实测同级、且更快更准,不是跑不起来时的退路。只有「体验顺不顺 / 界面好不好看」类判定,代码才降为
🟡(有分支 ≠ 呈现对)。 第四态⚪ 未发现:表示"本次没查到",与三级制并列但不同义(见「关联功能与影响评估」)——不得把"没查"写成"推断"。 - 不臆造现状:现状来自用户描述 / 读代码确认 /
⚠️ AI 推断(挂假设 ID),三者必标其一。 - 只判断不改码:本 skill 不修改产品代码,接力也不越过这条线(
debug只到定位根因,修复交用户拍板)。M2/M3/M4 的清单与建议不因接力而省略——接力是「接着做」,不是「取代判断」;实施仍走request-guard→code-review。 - 优先级统一口径:一律 Kano 分类 + 价值×成本矩阵(见
reference.md第一节)。不给无依据的精确数字(如"提升转化 12%")。 - 最小化交互:自主推理优先。默认只留 1 个确认点(关键假设 / 模式与范围)。
- 落盘:默认直接输出报告到对话。项目配置了
.requirements/时 M1 报告按requirement-doc-store落盘并注册;M2/M3/M4 仅在用户要求时落.pm/{slug}-{YYYYMMDD}.md。落盘时 §3.2 直观视图随文档一起落——界面类结论的 ASCII 图内嵌进报告(代码块),不得只留在对话,有界面结论却留空节视为未完成(见公共规则 13)。 - 资产复用:分析前调用
use_skill("expert-solution-workflow")查已有经验/解决方案/记忆;未命中则自主推理。 - 证据声明必备:每份报告开头必须写「证据声明:最高证据等级 + 取证方式(代码直读 / 运行实测 / 用户上传截图 / 静态推演)+ 降级说明」;组合模式取所有模式中的最低档,不得让 M2 的实测掩盖 M4 的推断。注意"代码直读"是
🟢,未运行 ≠ 证据不足(见下节)。 - 报告形态两档:默认完整报告;用户说"简单说""只要结论""几句话"时出轻量档——只给执行摘要 + 优先级 Top3 + 一句下一步,≤30 行;发生了接力时,接力记录(§8)不因轻量档而省略;界面类结论的基本 UI ASCII 图同样不省略(见公共规则 13)。
- 取证先问"这个判定需要画面吗":符合性判定 → 代码直读;体验/视觉判定 → 实测或请用户上传截图。不得一律要求跑起来,也不得用代码推断体验。
- 影响面必查:M1/M2/M3 执行前先做「关联功能与影响评估」(见下节;M4 可轻量、单独执行时可填
-);报告必含影响评估表,"影响是否可接受"由用户拍板,AI 只负责找全、说清、给选项。 - 主动接力:发现的问题属其他 skill 职责时直接调用它继续(见「主动接力」节),不写成「建议下一步」让用户手动点名;改码类(
debug)只接力到定位,修复前停。 - 直观表达:① 界面类结论必附图——涉及界面调整 / 重新设计的结论(M1 界面需求、M4 方案级问题、接力
ui-designer前),必须同时给出基本 UI ASCII 图(调use_skill("ui-to-ascii")描述生成模式:对话中直接输出、不单独存.ui-ascii/;报告落盘时图随报告内嵌落盘,绘制规范以其为准),只写文字描述不算完;图须经用户确认(区块、排列、入口、显隐),未确认不得据此接力ui-designer或宣告该结论完成(触发与豁免口径见ui-to-ascii的「界面确认闸门」);② 关系表达善用文字树——凡表达流程、层级、因果、状态流转、调用关系等,按情况用文字树(│+▼主链、├─└─分支,一行一节点,关键节点可标file:line;最小语法跨 skill 统一),不写大段散文;流程解释 / 调用链 / trace / bug 说明只是典型示例,不限于此(出图边界、格式与 Mermaid 分工见reference.md第十一节)。 - 先确认后修改:任何修改都必须先确认再动手——顺序固定为「发现 / 建议 + 优先级 → 用户明确确认采纳(含取舍与范围)→ 走
request-guard→ 实施 → 报告结果」。禁止"先改后报":不论改动多小(含只改文案 / 样式 / 配置这类"顺手改"),都不得先改完再用报告呈现"已优化";用户说"你直接改"时,也先把要改什么、改成什么、影响谁用一小段确认清楚再动手。
取证手段:代码直读 vs 实测
产品经理看得懂代码,代码是产品实现的一手证据。选手段前先判判定类型:
| 判定类型 | 代码直读 | 运行/画面实测 | 说明 |
|---|---|---|---|
| 符合性:有没有做 / 是否符合要求("导出是异步的吗""删除有二次确认吗""错误文案带原因吗") | 🟢 首选,最快最准 |
🟢 可复核 |
代码即事实,为此逼用户起服务是浪费 |
| 体验:顺不顺、几步、反馈是否及时 | 🟡 只能证"分支存在" |
🟢 |
有 loading 分支 ≠ 用户真看得到(可能被条件挡住/样式缺失) |
| 视觉:对齐、层级、美观、响应式 | 🔴 不可用(明确样式值除外) |
🟢 必须看画面 |
代码推不出观感 |
| 存在性:功能/分支有无(M3) | 🟢 |
- | 见 M3 三条证据路径 |
代码直读四步:
- 把要求拆成可判定的检查项("异步"→ 是否有队列/后台任务/进度查询接口)
- 定位候选位置(grep 关键词 → 路由/组件/服务层);同类入口必须穷举成清单再判——只查一处就下结论会漏掉绕过风险(前端有确认、接口没有)
- 逐项给出判定:符合 / 不符合 / 部分符合 +
file:line证据 - 代码看不出(依赖运行时配置、跨服务)→ 标
🟡或进待确认,不硬判
适用信号:用户问"是不是 / 有没有 / 是否符合 + 一条具体要求" → 直接读代码,不必先跑起来。
关联功能与影响评估(M1 / M2 / M3 前置)
提需求、提优化之前,先回答两件事:这个改动会碰到谁?碰到了能不能接受? 只描述新功能本身、不提它碰到什么,是产品工作最常见的翻车点。
四类关联来源(逐类过,防漏):
| 类别 | 要找什么 |
|---|---|
| 同对象的其他操作 | 增删改查、导入导出、审批、批量 |
| 共享数据与状态 | 共用表/字段/状态机/枚举/缓存键 |
| 上下游消费方 | 报表、通知、同步任务、webhook、对外 API、订阅方 |
| 横切能力 | 权限、审计日志、搜索索引、缓存失效、i18n、计费配额、移动端 |
取证顺序:use_skill("relation-lookup") 查已登记的跨模块强关联(未安装则跳过,非必需依赖)→ use_skill("index-lookup") 拿穷举反查(后端 tables.md 表 → 模块 / modules/*.md 被依赖;前端 apis/*.md 接口 → 页面——把"共享数据""上下游消费方"两类从猜变成列举;无索引自动降级)→ 代码直读(grep 共享模型/状态枚举/事件订阅/权限点)→ 改动面大时 use_skill("code-survey") → 问用户(报表、外部订阅、运营 SOP 常不在代码里)。
未查到 ≠ 没有:找不到关联方时标 ⚪ 未发现(需确认)——⚪ 是独立于三级制的第四态,表示"没查到"而非"推断",禁止默认"无影响"。
M4 单独执行时影响面可填 -;但改动的是共用组件(按钮/表单/弹窗/布局)时仍须评估——一个组件改了,所有引用它的页面都跟着变。
影响评估表(报告必填):
| 受影响功能/方 | 影响类型 | 影响程度 | 证据 | 建议处理 | 需用户拍板 |
- 影响类型:数据 / 流程 / 权限 / 展示 / 性能 / 外部契约
- 影响程度:
破坏(已有功能不可用)/降级(行为变化但可用)/无感
可接受性由用户拍板,AI 不得自行宣布"可接受":
| 情形 | 处理 |
|---|---|
| 影响是需求本身想要的(改状态机就是要改下游) | 标「预期内」+ 列需配套改项 |
| 影响已有功能但可一并处理 | 必须变成需求条目进清单,不能只写在说明里 |
| 破坏已有用户习惯 / 数据 / 对外契约 | 🔴 标「需拍板」+ 给替代方案,由用户决定 |
详版(四类来源示例、取证细节、常见漏点)见
reference.md第三节。M4 影响面通常限于页面内,可轻量处理(共用组件除外,见上)。所有「需拍板」项同时进报告 §5 待确认清单,避免只躺在影响表里没人管。
主动接力(发现问题即转对应 skill)
本 skill 是编排者,不是终点站:报告照旧出全(清单 / 优先级 / 影响面一项不少),但发现的问题若属于另一个 skill 的职责,直接转过去继续做——不让用户拿着报告再手动点名一棒。
接力表(命中即转)
| 命中信号 | 转给 | 深度 |
|---|---|---|
| M1 需求含新页面 / 界面改版;M4 结论是视觉方案级问题(层级需重规划、无设计规范可依、需改版) | ui-designer |
自动接力(先附基本 UI ASCII 图,见公共规则 13) |
| 缺口在交互逻辑层(流程走不通、反馈缺失、异常路径无设计) | interaction-design |
自动接力 |
| 需求已定,要技术设计(架构 / 接口 / 选型) | design-craft |
自动接力 |
| 数据复杂(模型说不清、流向存在多义) | data-flow-model |
自动接力 |
| 需求含未验证的技术风险 | demo-verify |
自动接力 |
| M2 / M4 拿不到画面,需要真实点击遍历 + 加载性能;或怀疑"看着没坏、其实会坏"(数据串台 / 空值覆盖 / 重复提交 / 权限绕过 / 发版白屏) | frontend-walkthrough(含阶段 1.5 缺陷推演:时序矩阵 + 十类缺陷族) |
自动接力 |
| 要读懂某模块实现才能继续判断 | module-teach |
自动接力 |
| 发现这是 Bug 而非需求 / 设计问题 | debug |
只到定位根因,修复前停 |
两档深度:只读 / 方案类(除
debug外的全部行)自动跑完;改码类(debug及一切要改产品代码的)只到定位,出根因与修复建议后停下等用户拍板——接力不越过「不修改产品代码」红线。
不接力(防滥用)
| 情形 | 为什么 |
|---|---|
| 单点样式缺陷(间距不统一、颜色用错但 token 已定义、文案措辞) | 这是「按已有规范修实现」,不是「出新视觉方案」——进清单走 request-guard → code-review,不启动 ui-designer |
| M1 需求尚未经用户确认 | 需求未定就设计 = 白做。接力挂在确认点之后:用户确认需求的同时,接力自动开始 |
| 本 skill 的判断还没做完(优先级没排、影响面没查) | 接力的是「下一种工作」,不是「没做完的判断」——PM 报告必须自身完整 |
| 无明确触发信号,只是「顺手多跑一个」 | 会拖长流程、偏离用户诉求;接力必须命中接力表 |
触发发现是 🔴 推断(或证据不足) |
接力的前提是发现站得住:触发项证据等级须 ≥ 🟡;🔴 先补证(公共规则 1),只进待确认清单 |
接力怎么执行
- 自动开始,不停顿:命中即调用目标 skill 继续,不再回问「要不要转」——只读 / 方案类跑完,
debug只到定位(见上表)。但开头必须在对话流里声明一行(用户据此可随时喊停):🔗 接力:发现 {问题}(属 {skill} 职责)→ 转 {skill} 继续 - 目标 skill 的契约不被绕过:「不停顿」指不在「要不要接力」这一步征求同意,不是抹掉目标 skill 自己的确认点——
ui-designer的分阶段确认、design-craft的评审循环照常执行。已由 PM 报告确认过的结论(如页面清单)可作为它的输入,避免重复问同一件事。 - 深度 ≤ 2 跳:这里的「跳」只数 PM 主动发起的接力——最长 PM → A → B;同一 skill 不在链上出现两次;命中「再转」信号时写成建议下一步。目标 skill 自身的内置流程与自动链不计入:如
design-craft落盘后的 design-review → challenger → scenario-rehearsal 由其自身机制照常跑完,不受 2 跳限制。 - M1 挂在唯一确认点之后:报告中写明「关键假设无误 → 确认后我将自动转 {接力表对应 skill} 继续」(如界面变更 →
ui-designer),用户回一句确认即触发。接力会带上目标 skill 自己的确认点(如ui-designer的分阶段确认),报告里一并预告,避免用户被后续确认点打个措手不及。 - 降级不阻塞:目标 skill 未安装 / 调用失败 → 降级为「建议下一步」并写明原因,不报错、不卡住报告。
- 产物并入报告(含时序):接力在报告输出后启动,结果回填到报告 §8 接力记录——只补该节,不重发整篇报告;记录含目标 skill 的产物路径(如
docs/ui-design/{slug}.md)与未完成项(如「已定位、修复待拍板」)。M1 场景例外:§8 在确认后接力时同步生成。
触发判据(方案要重做 vs 实现有偏差)、全量信号表、声明格式、降级与深度限制见
reference.md第十节;两个完整示例见examples.md示例 6 / 7。
M1 需求定义
档位选择(自动)
| 档位 | 触发条件 | 交互量 |
|---|---|---|
| 一次成型档(默认) | 单点功能、涉及 ≤2 个角色、无外部依赖、需求条目预期 ≤5 | 只留 1 个确认点 |
| 严谨档 | 命中任一:多角色/多模块、外部依赖未确认、涉及流程或状态机变更、用户说"严谨档/逐项确认"、一次成型档下用户连续纠正 ≥2 次 | 完整保留 requirement-mining 的逐项确认 |
一次成型档流程
- 误判筛查:是已有功能的 Bug?是系统已有能力?命中则先提醒用户确认。
- 关联功能与影响评估(不可跳过):按上节四类来源盘出关联功能 → 出影响评估表 → 「需配套改」项直接进需求清单;判定不了的标「需拍板」留给用户
- 自主推理:按
requirement-mining的分析框架(形态判断 / 功能本质 / 场景 / 角色 / 非功能需求 / 变更面)一次性推理完,假设由 AI 自主填,不逐条问用户。requirement-mining/negative-requirement未安装时按其框架自主推理,不阻塞、不报错。 - 负向内联:直接按
negative-requirement的分类表(误操作 / 参数错误 / 中途放弃 / 状态异常 / 权限 / 数据异常 / 外部依赖)筛出本需求真实相关的 3-8 条,写入需求报告「负向需求」章节,不单独跑一轮。 - 需求缺口回扫(不可跳过):拿需求质量六维清单逐项自检(场景完整性 / 验收标准可达性 / 需求一致性 / 角色-需求对齐 / 边界/异常覆盖 / 术语一致性,判定问句见
reference.md4.4)。只判不跑——不建角色矩阵、不出推演报告、不落review/。过不了维度的:能从现有信息显式化的直接补进需求清单;补不了的进 §5 待确认清单。六维全过也要在报告里写一行结论,禁止静默跳过。 - 出报告:含影响评估表 + 需求清单(优先级 / 预期效果 / 验收标准)+ 负向需求 + 缺口回扫结论 + 关键假设表 + 建议下一步;涉及界面变更时必附基本 UI ASCII 图(现状 / 预期,见公共规则 13)。
- 唯一确认点:把关键假设表 + 需拍板的影响项 + 缺口回扫未通过项一起交给用户确认("这几条如果错了结论会偏,请重点看"),用户纠正后更新一次即定稿。
一次成型档不省的是:关联功能影响面、根本性分析(这方案治本吗)、负向场景、需求缺口回扫、验收标准。省的是交互轮次。
严谨档流程
完整按 use_skill("requirement-mining") 流程执行;需求清单确认后调用 use_skill("negative-requirement") 补负向需求,最终合并为本 skill 的 PM 报告。
影响面不因走严谨档而省略:关联功能盘点与影响评估照做(可在 requirement-mining 流程中一并完成),报告仍须含影响评估表——严谨档省的是交互,不是内容。
缺口回扫同样不省略:requirement-mining 全流程不含需求质量六维检查,报告定稿前仍按 reference.md 4.4 回扫一遍(重点看"验收标准可达性"与"需求一致性"两维)。
出口
报告末给出下一步推荐(对齐 requirement-mining Step 8 的行动集):交互复杂 → interaction-design;数据复杂 → data-flow-model;技术不明 → design-craft;技术风险 → demo-verify;低复杂度 → plan-track 建档直接实现。
接力:前四类属只读 / 方案类,用户确认需求后自动转过去继续(不等用户点名);plan-track 意味着开始改码,只写建议、不自动转。M1 的接力统一挂在唯一确认点之后;接力 ui-designer 时,已确认的 ASCII 预期图随报告一并传入,作为其设计输入。
复杂度判据(一次成型档简化版,不跑完整六维评分):同时满足「单点改动 + 无外部依赖 + 无状态机变更」= 低,其余一律按中/高处理,推荐设计类行动。拿不准就按中/高推荐,不要把"看起来简单"当低复杂度。
M2 产品体验走查
六维走查清单
| 维度 | 问自己 | 典型证据 |
|---|---|---|
| 价值达成 | 用户想办的事,现在办成了吗?有没有绕路 | 走一遍主流程 |
| 路径效率 | 达成目标要几步、几次等待、几次跳转 | 关键路径步骤数 |
| 反馈与容错 | 出错/空/加载/超时时有反馈吗?能恢复吗 | 触发一次异常 |
| 一致性 | 同类操作、术语、组件、提示口径是否一致 | 跨页面比对 |
| 可发现性 | 功能藏得深吗?新用户找得到吗 | 信息架构 |
| 边界与异常 | 超长文本、大数据量、极端输入的呈现 | 构造边界数据 |
六维只判"体验好不好",不推"逻辑会不会坏":走查中若发现"数据串台、空值覆盖、重复提交、失败后仍能操作、权限能绕过、发版后白屏"这类迹象,直接接力
frontend-walkthrough的阶段 1.5(缺陷推演:异步态矩阵 + 十类缺陷族,产出假设 + 复现步骤 + 证据等级),本 skill 不展开代码逻辑与时序分析。
执行
- 界定走查对象边界(模块/页面/入口),边界不清先问一句
- 按判定类型选手段(不是"能跑就跑"):符合性维度(价值达成/一致性/可发现性,多可代码直读)→ 优先代码直读
🟢;体验类维度(路径效率/反馈容错/边界呈现)→ 需运行实测🟢,跑不起来时代码只能给🟡并在报告头声明"未实测" - 每个发现写:现象 → 影响谁 → 证据等级 → 建议方向(不写实现方案,那是设计阶段的事)
- 用 Kano 分类(必备/期望/兴奋/无差异)+ 价值×成本矩阵定优先级,输出
优先级 | 发现 | Kano | 价值 | 成本 | 证据 | 建议 - 排除项也值钱:明确写"经走查排除:XX 维度无问题",避免用户重复问
M3 缺失功能推演
三条证据路径(从严到宽)
| 等级 | 路径 | 具体信号 |
|---|---|---|
🟢 代码实证 |
代码里已有痕迹但没做完 | TODO/FIXME/未实现占位、入口已建但点击无响应、路由已注册页面缺失、配置开关存在但恒为关、文档/README 承诺但代码无 |
🟡 结构可证 |
有半成品结构 | 有数据模型无操作入口、有后端接口无前端调用、有前端页面无后端接口、有管理端无用户端、有写无读(能建不能查) |
🔴 推断 |
参照同类产品 | 必须写明参照物("同类 SaaS 普遍有 X"),且只进待确认清单 |
硬约束
- 禁止凭空发明:
🔴项不得写成"产品缺少 X"的断定句,只能进「待确认:是否有意不做?」 - 区分"有意不做"与"漏做":MVP 常见的有意省略(如未做国际化、未做审计日志)要标注"可能是有意取舍,需确认",不当成缺陷
- 与 M2 合并:M3 的缺失功能与 M2 的优化点进同一张清单,用
来源列区分 - 每条缺失功能同样走 Kano + 价值×成本排序
M4 界面视觉走查
先问:这个判定需要画面吗
- 不需要(符合性/规范类:"按钮都有禁用态吗""错误提示都带原因吗""间距是否统一 token")→ 直接代码直读,不进下面的能力探测,不必让用户起服务或截图
- 需要(好不好看、层级是否清晰、响应式是否折行)→ 才走能力探测拿画面
能力探测(按顺序尝试,命中即停)
| 档 | 条件 | 做法 |
|---|---|---|
| L1 自主 | 有浏览器工具且能截图 | 起服务 → 打开页面 → 截图 → 读图走查(强制覆盖:默认态 / 空态 / 加载态 / 错误态 / 长文本 / 窄屏) |
| L2 半自主 | 能打开页面但拿不到画面(如只有 preview_url,AI 看不到渲染结果) |
AI 开预览页供用户观看 + 读前端源码/CSS 静态推演(🟡);同时给出具体肉眼检查清单请用户逐项确认 |
| L3 手动上传 | 项目跑不起来 / 无浏览器 / 截不了图 | AI 先给出拍摄清单(哪几屏、什么状态、什么分辨率),用户上传截图后 AI 读图走查(🟢) |
| L0 纯静态 | 连截图都没有 | 只读源码推演,证据等级强制 🔴,报告头声明"未看到实际渲染,以下为源码推断",禁止写成"界面存在 XX 问题" |
能力探测是硬步骤:不得跳过探测直接宣称"我看过界面了"。无画面即降级,降级声明必须写进报告头。
走查清单(有画面时逐项过)
视觉层级与重点 · 对齐与间距一致性 · 配色与对比度 · 字体与字号规范 · 组件状态完整性(悬停/聚焦/禁用/加载/错误/空)· 响应式与窄屏 · 文案(术语一致、语气、错误文案是否说人话)· 可发现性与操作反馈 · 明显的无障碍问题(对比度、可点击区域、键盘可达)
拍摄清单模板(L3 用)
请提供以下截图(能多屏就多屏):
1. 首页/主界面(默认数据)
2. 核心操作流程的中间态
3. 空状态(无数据)
4. 错误/失败态(随便造一个错误)
5. 窄屏或移动端视图(如有)
分辨率:桌面 ≥1440 宽,移动 375 宽。无法提供第 N 项请说明,我会按可得画面降级。
走查之后
结论指向「视觉方案本身要重做」(不是按现有规范修实现)→ 先附基本 UI ASCII 图(问题位置 / 预期布局,见公共规则 13)再按「主动接力」转 ui-designer;指向交互流程缺陷 → interaction-design;确认是 Bug → debug(只到定位)。仅实现偏差(规范已定、实现没跟上)留在本清单走修复流程——修复前先把范围与优先级交用户确认(公共规则 14),确认后走 request-guard,不得直接改完再汇报。
PM 报告模板(四模式统一)
# PM 报告:{对象}
模式:M1 / M2 / M3 / M4(组合标注)
证据声明:{本次最高证据等级 + 是否实测 + 降级声明(如有)}
## 1. 执行摘要
{3-5 条结论,每条挂证据等级;无实测时首句声明"未经实测"}
## 2. 现状与范围
{走查/分析边界;现状来源标注}
## 3. 发现 / 需求
### 3.0 影响面(M1/M2/M3 必填)
| 受影响功能/方 | 影响类型 | 影响程度 | 证据 | 建议处理 | 需用户拍板 |
{未发现关联方时写「未发现(需确认)」,不得留空或默认无影响}
### 3.1 主体
{模式各自的主体章节:M1 需求清单;M2/M3/M4 发现清单}
### 3.2 负向需求(仅 M1)
{负向内联筛出的 3-8 条}
### 3.3 缺口回扫(仅 M1)
{六维逐维一句话结论(列表或表格);未通过的维度在此点名,并确保 §5 有对应待确认条目;全过写「六维无缺口」}
### 3.2 直观视图(如涉及界面 / 流程 / 链路;有界面类结论则落盘必含图,不出图场景见第十一节)
{界面类结论:附基本 UI ASCII 图(现状 / 预期,锚点编号对应说明);流程 / 调用链 / 因果 / 层级关系:用文字树表达,不写大段散文}
## 4. 优先级排序
| 优先级 | 条目 | 来源(M2/M3,单一模式填 -) | Kano 分类 | 价值(高/中/低) | 成本(高/中/低) | 证据 | 建议方向 |
{排序理由一句话;P0 必须有 Kano=必备 或 价值高且成本低}
## 5. 待确认清单
{所有 🔴 项 + 需用户拍板的取舍 + 缺口回扫未通过的维度,每条配验证方法}
## 6. 关键假设
| 假设 ID | 内容 | 错了会怎样 | 验证方法 |
## 7. 建议下一步
{1-2 个行动 + 理由;不改码类只建议不自动执行}
## 8. 接力记录(仅发生接力时出现)
| # | 触发发现 | 转给 | 产物 | 状态 |
|---|---------|------|------|------|
| 1 | {问题} | {skill} | {文档 / 结论 / 文件路径} | 已完成 / ⏸ 待拍板(如"已定位、修复待定") |
约束
🔴推断禁止进结论区,只能进「待确认清单」且必须配验证方法- 不修改产品代码,不自动实施优化建议;接力也不越过这条线——
debug只到定位根因,修复交用户拍板后走request-guard→code-review;确需落地时按公共规则 14「确认 → 改 → 报告」,不得先改后报 - 优先级一律 Kano + 价值×成本,不给无依据的精确收益数字
- M4 未获得画面时必须降级声明,禁止假装看过界面
- M3 不得把"有意不做"当"漏做",不确定即标注待确认
- M2 + M3 合并输出,禁止两张独立清单
- 报告不替代人工产品决策,最终取舍权归用户
- 一次成型档最多 1 个确认点;用户纠正 ≥2 次自动切严谨档
- 需求类产出落盘须走
req命令(requirement-doc-store),禁止手拼路径 - Kano 不允许硬猜:判定依据不足标
Kano 待定,待定项不得默认按"期望"参与排序,一律进「待确认清单」——把待定当期望会把真正的必备项埋掉 - 组合模式证据声明取最低档(见公共规则 8),禁止用部分实测为全报告背书
- 接力必须有触发信号:只有命中「主动接力」表才转,禁止"顺手多跑一个";深度 ≤ 2 跳,目标未安装 / 失败即降级为建议,不阻塞报告
- 缺口回扫必做:M1 出报告前完成需求质量六维回扫(只判不跑,不生成推演报告);未通过项必须补进需求清单或进待确认清单——补进清单只限把隐含信息显式化,不新增需求,且补进的条目须同时给优先级 + Kano(判不了标
Kano 待定进待确认);全过也要显式写「六维无缺口」(轻量档压缩规则见reference.md4.4)
与相关 skill 的关系
| skill | 关系 |
|---|---|
requirement-mining |
M1 的分析引擎。一次成型档复用其框架省交互;严谨档完整调用 |
negative-requirement |
M1 的负向来源。一次成型档内联其分类表,不单独跑一轮 |
acceptance-verify |
它答"这一版达标没",本 skill 答"下一版做什么";不重叠 |
artifact-optimizer |
它优化产物质量(代码/设计/skill),本 skill 看用户价值与机会;对象是产品不是产物 |
code-review / request-guard |
本 skill 出建议,实施前经 request-guard 刹车、实施后经 code-review |
ui-designer / ui-to-ascii |
前者从零设计界面(M1 有新页面 / M4 结论是「方案要重做」时自动接力;其 ASCII 布局图定稿后才写 demo)、后者是 ASCII 图绘制方(本 skill 界面类结论按其描述生成模式出图,设计稿转存档亦归它);本 skill 是已存在界面的走查 |
debug |
走查确认是 Bug 而非需求 / 设计问题时自动接力定位根因(复现 → 定位),修复前停、交用户拍板 |
e2e-testing |
其「动态体验验证」可作 M2 的取证手段(真实链路),本 skill 负责 PM 判断与排序 |
scenario-rehearsal |
M1 的「需求缺口回扫」= 其需求文档模式六维的轻量自检版(只判不跑、不出报告);需求涉及多角色协作或用户要正式推演报告时转它需求模式 |
frontend-walkthrough |
对已实现前端做实操走查(真实点击遍历 + 前端实现审查 + 加载性能体检 + 缺陷推演:异步态矩阵 + 十类缺陷族);M2 / M4 拿不到画面、或怀疑实现层逻辑会坏时自动接力;本 skill M2/M4 是产品视角,不深入前端实现逻辑与时序分析 |
interaction-design / design-craft / demo-verify / data-flow-model |
M1 的常见下游;用户确认需求后按「主动接力」自动转过去继续 |
relation-lookup |
影响面调研首选:查已登记的跨模块强关联("改 A 要连带改 B 吗") |
code-survey |
改动面大时的代码现状调研手段 |
code-change-impact |
边界:它分析已发生的代码改动的影响(事后:牵动哪些调用方/数据消费方、回归风险);本 skill 是需求/优化的影响(前置:价值、体验、范围) |
expert-solution-workflow |
分析前查可复用资产 |
反模式
- ❌ 把 requirement-mining 流程抄一遍 → 用户得到"一样繁琐 + 多一层壳"。本 skill 的价值是编排与判断,不是复刻
- ❌ M2 滑成 code-review → 开始点评函数职责、命名、设计模式。看到自己在写这类内容立即停,回到六维
- ❌ M3 发明需求 → "同类产品都有所以你也该有"当结论写。必须标
🔴+ 参照物 + 进待确认 - ❌ 无画面假装看过 → "界面存在明显的对齐问题"(实际没截图)。无画面必须降级声明
- 🔴 把推断当结论:
🔴出现在执行摘要里 = 报告作废重写 - ❌ 出两张清单:M2 优化点一份、M3 缺失功能一份,用户自己合并 → 违反「模式路由」的组合规则
- ❌ 给假精确:"预计提升转化 12%""约 3 人日"。无数据支撑时只给价值/成本的高中低
- ❌ 直接改码:本 skill 只判断。想改先走
request-guard - ❌ 先改后报:把建议"顺手"改成代码 / 改完页面再截图汇报——用户没确认取舍与范围,改坏了没有基线可比、责任也无从界定。顺序永远是「确认 → 改 → 报告」(公共规则 14)
- ❌ 一次成型档还逐条问:8 个问题轮番确认 = 档位选错,回到档位表重判
- ❌ 符合性问题非要跑起来:用户问"导出是异步的吗",却要求先起服务再验证 → 读代码 30 秒可判定,起服务是浪费
- ❌ 用代码推断体验/视觉:"代码里有 loading 分支,所以加载反馈没问题" → 有分支 ≠ 用户看得到,属
🟡,想定论必须看画面 - ❌ 只讲新功能、不提碰到谁:需求报告只写"要做什么",不写"会影响到谁" → 开发做完才发现下游炸了
- ❌ AI 自行宣布"影响可接受":可接受性是业务决策。破坏已有习惯/数据/对外契约的,必须标「需拍板」交给用户
- ❌ 影响项只写在说明里、不进需求清单:分析提了一嘴,开发漏做 → 每条「本次一并改」必须在需求清单有对应条目
- ❌ 查不到就当没有:未发现关联方要标「未发现(需确认)」并给查证方法,不能默认无影响
- ❌ 跳过需求缺口回扫:只把需求清单列完就交付 → 漏的往往是"验收标准不可判定""两条需求互相冲突"这类要等开发阶段才炸的洞
- ❌ 该接力却只写「建议下一步」:明明
ui-designer能接着做,却留一句"建议改版"让用户手动点名 → 报告出完就接力,不把编排成本转嫁给用户 - ❌ 接力越界改码:
debug定位出根因后顺手把 Bug 修了 → 红线。修复必须停、交用户拍板 - ❌ 接力当甩锅:把没做完的 PM 判断(优先级没排、影响面没查)丢给下游 skill → 报告必须自身完整,接力的是「下一种工作」
- ❌ 无因接力 / 关键词接力:见到「界面」二字就转
ui-designer(哪怕只是间距不统一)→ 按接力表的触发信号判,不是关键词匹配 - ❌ 界面结论只给文字不给图:涉及界面调整 / 重设计却只写文字描述,用户看不到"改成什么样" → 附基本 UI ASCII 图(公共规则 13)
- ❌ 关系表达写成大段散文:流程 / 调用链 / 层级 / 因果用长段落铺陈,读者要自己捋 → 善用文字树,一行一节点
更多资源
- 取证手段矩阵与代码直读细则、关联功能影响评估(四类来源 + 常见漏点)、Kano + 价值×成本评分表、四模式详细清单、M4 走查逐项细则与拍摄清单、直观表达(UI ASCII 图 / 文字树)细则、报告完整模板,参见 reference.md
- 主动接力的触发判据、全量信号表、声明格式、改码类「只到定位」的落地、降级与深度限制、与组合模式的关系,参见 reference.md 第十节
- 四个模式 + 代码直读核验的完整示例、两个接力示例(
ui-designer/debug),参见 examples.md