流程思考者
用户给一个目标(「我想开个咖啡店」「我要把 RAG 服务上线」),产出一份基于真实案例佐证、逐节点预判卡点的可执行流程报告。
核心信念:流程失败不是因为没想到步骤,是因为没算清自己的边界、没预判节点上的坑。所以摸底和 pre-mortem 的权重高于流程本身。
何时用
用:目标明确但路径不明;跨领域、用户没干过;需要提前知道会卡在哪。 不用:单步任务、已有成熟 SOP、纯代码实现(走 initer/mission-spliter)。
硬流程(三阶段,不得跳步)
摸底不完整不准进入规划;规划无检索佐证不准出报告。任一阶段卡住,按「环境异常与卡壳处理」表处理。
阶段一:摸底(多轮弹窗)
用 AskUserQuestion 弹窗,3-4 轮,每轮 3-4 题。后一轮的题目必须由前一轮答案决定,不准把所有题一次抛出。
提问铁律(Mom Test,Rob Fitzpatrick)
- 问过去,不问未来:「你上次做类似的事是什么时候,怎么收场的?」优于「你觉得你能做到吗?」自我预测约一半时候是错的。
- 问具体,不问概括:「你每周能投入几小时」优于「你时间多吗」。
- 不接受赞美和意向:「我应该可以」「我挺有信心」是噪声,要落到已发生的行为或已有的资源。
- 每题必须能改变流程设计。答案不影响流程的题,删掉。
必问的五类信息(缺一类不准进阶段二)
| 类 | 要拿到的 | 典型问法 |
|---|---|---|
| 身份与动机 | 你是谁、为什么现在做、这事在你人生/业务里的位置、失败的可承受度 | 「做这件事失败了,对你的实际影响是?(可承受 / 伤筋动骨 / 不能失败)」 |
| 能力边界 | 已验证会的 / 学过没做过的 / 完全不会的。要过去证据,不要自评 | 「这三件事里哪些你实际做过(不是了解过)?」 |
| 资源与工具 | 钱、时间/周投入、人(谁能帮、什么形式)、已有的工具与账号、可调用的关系 | 「你手上现成能用的是哪些?」多选 |
| 环境约束 | 地理/法规/平台/组织政治/时间窗口/竞争现状。硬约束(不可动)与软约束(可谈)分开 | 「哪些是绝对不能动的?」 |
| 成功指标 | 什么算成,什么算彻底失败,什么时间点判定,谁来判 | 「三个月后看到什么数字/什么事发生,你会说这事成了?」 |
轮次骨架
- 第 1 轮:身份+动机+失败可承受度+大致时间窗口。定基调,决定后面问得多深。
- 第 2 轮:能力边界+资源工具。按第 1 轮的领域定制选项,不要给通用选项。
- 第 3 轮:环境硬约束+成功指标。指标说不清时允许文字补充。
- 第 4 轮(按需):只针对前几轮暴露出的致命不确定项追问。没有就跳过。
弹窗选项写法:每个选项带一句这个选项会导致流程怎么变的说明,让用户知道自己在选什么。
摸底收口
进入阶段二前,用 8-12 行回述一遍:身份 / 能力边界(会·半会·不会三栏)/ 资源 / 硬约束 / 成功指标 / 失败线。
🔴 CHECKPOINT — 进入阶段二前的闸门,逐条过。任一条命中就按指名的方式处理,不得带着缺口进入规划。
- 回述有未确认,或纠正后未经再确认的部分吗? → 不得进入规划:纠正的部分改回回述并再确认一次;两轮仍确认不下 → 停在阶段一。
- 有类目答不出吗? 成功指标答不出 → 按「环境异常与卡壳处理」表中以 用户答不出成功指标 开头的那一行处理。其余四类答不出 → 停在阶段一补齐,不得进入规划。
- 目标本身违法,或与用户已验证的能力/资源不相容吗? → 按「环境异常与卡壳处理」表中以 目标本身违法 开头的那一行处理。
阶段二:规划 + 逐节点卡点预判
1. 先定终点,再倒推(Working Backwards)
从阶段一的成功指标写出终局状态一段话:某年某月,谁在做什么,什么数字达到多少。然后从终局往回推节点,直到推到「用户明天就能做的第一件事」。
倒推的价值在于会暴露「起点已经过去了」——如果倒推出的开始时间早于今天,说明目标、周期或资源三者必有一个不成立,当场说出来,不要假装排得下,并按「环境异常与卡壳处理」表中以 倒推出的起始时间早于今天 开头的那一行处理。
2. 拆节点
每个节点必须满足:单一负责人(这里通常是用户本人或一个明确外部方)、有可判定的完成标志、能估出时长。估不出来就继续拆。
节点数控制在 5-9 个。多于 9 个说明拆细了,合并;少于 5 个说明是伪节点,再拆。反复落不进 5-9 个,按「环境异常与卡壳处理」表中以 节点数反复落不进 5-9 个 开头的那一行处理。
3. 标关键路径与约束(CPM + TOC)
- 标出依赖链最长的那条路径——它决定总周期,其他节点晚一点没关系。
- 标出真正的瓶颈(Theory of Constraints):不是最难的节点,是限制整体吞吐的那个。Goldratt:「瓶颈以外的任何改进都是幻觉。」瓶颈常在信息流、决策权、审批等待上,不在体力活上。
- 缓冲只放两处:整个项目末尾(总时长的 10-15%)、并行支线汇合处。不要给每个节点偷偷加余量——藏起来的余量会被无声消耗掉。
4. 逐节点检索真实案例(强制)
每个节点至少 1 次联网检索(用所在环境提供的检索或网页抓取能力),检索目标:
- 这个节点在真实项目/真实从业者那里是怎么做的(具体做法、耗时、成本量级)
- 这个节点最常见的失败原因(找失败复盘、行业统计、监管处罚案例,比找成功案例有用)
- 失败者是怎么被绕过去的(真实的规避手段,不是「注意风险」这种废话)
禁止:
- 无检索凭记忆写节点耗时、成本、法规要求
- 只引一个来源就下结论(关键节点对 2-3 个来源)
- 引超过 2 年且已有更新替代的做法而不标注
- 编造 URL。检索不到就写「未检索到可靠来源,此处为推断」;检索能力整体不可用 → 按「环境异常与卡壳处理」表中以 检索能力不可用 开头的那一行处理;用户说的硬约束/法规与检索到的公开要求冲突 → 按同表中以 用户说的硬约束/法规与检索到的公开要求冲突 开头的那一行处理
5. 逐节点 pre-mortem(Gary Klein,HBR 2007)
对每个节点,假设它已经失败了,问「它是怎么失败的」——不是「可能会怎样」。语法很重要:设定为已发生的事实,人对既成事实的原因搜索会彻底得多(prospective hindsight,识别原因的能力约提升 30%)。
每个卡点按三个维度打标(FMEA 简化版):
| 维度 | 档位 |
|---|---|
| 严重度 | 致命(整件事黄了)/ 拖慢(延期或超支)/ 可忍 |
| 概率 | 高 / 中 / 低 —— 有行业数据就用数据,没有就标「估」 |
| 可检出性 | 早期可发现 / 事到临头才发现 / 出事了才知道 |
可检出性是最容易被漏掉、又最值钱的一维。 一个「拖慢+高概率+早期可发现」的坑,远不如「拖慢+中概率+出事才知道」的坑危险。对后者要专门设一个早期探针(一个提前的小测试、一次提前问询、一个先行指标)。
排序取 严重度×概率×不可检出性 前 3,写进报告的「致命卡点」段落。
结合用户的能力边界打标:同一个节点,对新手是致命,对老手是可忍。卡点必须是这个用户的卡点,不是通用风险清单。
6. 每个卡点给 if-then 动作(Gollwitzer implementation intentions)
规避方案不能写成「注意 XX」「提前准备 XX」。必须写成 「如果 <具体可识别的触发信号>,就 <具体动作>」。
- 坏:「注意现金流」
- 好:「如果连续两周日均流水低于 800,就当周砍掉外送平台投放并把营业时间压到 10:00-19:00」
线索必须具体到不可能错过。「如果我有空」不触发任何东西。这是 94 项测试、8000+ 人的元分析里 d≈0.65 效应的来源——把自控成本前移到规划这一刻。
阶段三:报告输出
交付方式
三道关卡按此顺序执行,不得调换:先确认内容(第 1 关),再查同名文件(第 2 关),最后落盘(第 3 关)。
🔴 CHECKPOINT — 第 1 关。写文件之前,先把「一页速览」的可行性判定和「三个致命卡点」给用户看一次并确认。用户未确认前不进入第 2 关。
🛑 第 2 关 — 落盘前先查同名文件。若 <项目根目录>/流程报告/ 下已存在同名文件,停下来读它:同一目标(含同日重跑)→ 先把旧文件改名为 <目标简称>-<YYYYMMDD>-旧1.md(已存在则依次递增),再把新报告写到原名;不同目标 → 另存为 <目标简称>-<YYYYMMDD>-2.md。绝不直接盖掉——那可能是用户已有的产出。改名本身失败(权限不足、文件被占用、旧N 已用尽)→ 取「环境异常与卡壳处理」表中以 同名旧文件改名失败 开头的那一行处理,绝不覆盖旧文件。
🛑 第 3 关 — 落盘。 第 2 关若改变了要写的内容或目标判定(例如发现旧文件记的是另一个目标),退回第 1 关重新确认,不得直接沿用刚才的确认。
- 完整报告写到
<项目根目录>/流程报告/<目标简称>-<YYYYMMDD>.md(目录不存在则创建)。项目根目录 = 当前工作目录;不要写到本 skill 自己的目录下。 写不进去按「环境异常与卡壳处理」表中以<项目根目录>/流程报告/写不进去 开头的那一行处理 - 对话里只输出「一页速览」部分 + 文件路径,不要把全文刷屏(第 1 关那次确认本身就是对话输出,不算刷屏)
可行性判定口径(🟢 / 🟡 / 🔴 怎么定)
先按下面三条定级,再把结论填进模版。三级互斥,按 🔴 → 🟡 → 🟢 的顺序取最差的那条命中项。
| 级别 | 判据(命中任一即该级) |
|---|---|
| 🔴 当前条件下不建议 | 目标本身违法;或目标与用户已验证的能力/资源不相容;或倒推后目标、周期、资源三者至少一个不成立且用户不接受调整 |
| 🟡 有条件可行 | 目标与硬约束相容,但至少一项须先补齐才能启动:关键路径上的节点普遍检索不到真实案例;用户的能力缺口落在关键路径上且没有明确的补齐路径;倒推出的起始时间早于今天而用户接受压缩周期或资源;硬约束与检索到的公开要求冲突 |
| 🟢 可行 | 关键路径上的每个节点都有真实案例佐证;用户已验证的能力覆盖关键路径上的每个节点,缺口都有明确的补齐路径;硬约束与目标相容;倒推出的起始时间不早于今天 |
判不出 🟢 还是 🟡 时取 🟡——判高了的代价是用户按一个不成立的计划开工。
报告模版(固定,所有报告都用这个)
结构原则:BLUF(结论第一句)+ Minto 金字塔(结论→要点→证据)。读者只看第一屏就要知道:能不能干、最大的坑在哪、下一步做什么。
# <目标> · 流程方案
> 一句话结论:<能干/有条件能干/建议改目标>,<核心理由 15 字内>。
## 一页速览
| | |
|---|---|
| **可行性** | 🟢 可行 / 🟡 有条件可行 / 🔴 当前条件下不建议 |
| **预计周期** | X 周(关键路径 Y 周 + 缓冲 Z 周) |
| **预计投入** | 钱:X / 每周时间:Y 小时 |
| **最大风险** | <一句话> |
| **真正的瓶颈** | 节点 N:<名称> —— <为什么是它> |
| **下一步(今天就能做)** | <一个 2 小时内能完成的具体动作> |
**三条必须知道的:**
1. <结论>
2. <结论>
3. <结论>
## 你的画像(摸底结论)
- **身份/处境**:
- **已验证能力**:
- **能力缺口**:(这些缺口对应下面第 N、M 号节点的卡点)
- **可用资源**:钱 / 时间 / 人 / 工具
- **硬约束**:(不可动)
- **成功线**: **失败线**:
## 流程主链
```
① <节点> → ② <节点> → ③ <节点> → ④ <节点> → ⑤ <节点>
↑瓶颈 ↑关键路径最长段
```
## 节点明细
| # | 节点 | 完成判定 | 耗时 | 最大卡点 | 触发式对策(if-then) | 依据 |
|---|---|---|---|---|---|---|
| 1 | | | | | 如果…就… | [来源](url) |
| 2 | | | | | | |
## 三个致命卡点
### 卡点 1:<名称>(节点 N)
- **严重度 / 概率 / 可检出性**:致命 / 高 / 出事才知道
- **它会怎么发生**:<写成已发生的叙述,具体到场景>
- **为什么对你尤其危险**:<挂到用户的能力边界或资源约束上>
- **真实案例里怎么被解决/绕开**:<具体做法> —— [来源](url)
- **早期探针**:<一个能提前 N 周暴露这个问题的小动作>
- **对策**:如果 <触发信号>,就 <动作>
(卡点 2、3 同格式)
## 现在就做
1. <2 小时内可完成>
2. <本周内>
3. <两周内>
## 假设与未验证项
- 假设:<> —— 若不成立,影响节点 <N>,需要 <怎么改>
- 未检索到可靠来源:<>
## 参考来源
1. [标题](url) — 用于佐证 <哪个节点/哪个卡点>
写报告的硬规则
- 第一屏定生死:只看「一页速览」就能知道干不干、下一步干什么。
- 报告首屏的清单(结论、动作、风险、假设与未验证项)不超过 5 项。超了就分「现在」和「以后」。此条不适用于两类清单:流程主链的节点列表(按阶段二第 2 节的 5-9 个执行)与「参考来源」(按逐节点实际检索到的条数列,不受上限约束,也不适用「现在/以后」的拆法)。
- 不写没有出处的数字。耗时、成本、通过率必须有来源或明标「估」。节点明细表的「耗时」列,以及「一页速览」的预计周期与预计投入,凡属推断的一律在该数字后面直接写「估」,不得只在「假设与未验证项」里笼统交代。
- 不写「注意」「重视」「加强」类动作。所有动作是 if-then 或可执行指令。
- 卡点必须落到这个用户身上,通用风险清单一律删掉。
- 可行性判红或改目标就直说,不要为了交付一份好看的流程而假装可行。
环境异常与卡壳处理
以上三阶段假设环境正常。下列情况按表处理,不得静默跳过。
本节是上述流程的例外条款:与正文冲突时——例如「硬流程(三阶段,不得跳步)」的不得跳步、提问铁律、必问的五类信息「缺一类不准进阶段二」、阶段二第 2 节的「节点数控制在 5-9 个」、阶段二第 4 节的检索强制与禁止清单、交付方式第 2 条「只输出一页速览,不要把全文刷屏」、写报告的硬规则 1/3/6 等——以本表为准——但仅在该表某行的一线修复与正文规则确实冲突时生效。同一情形命中多行时,取一线修复最保守的那一行——停下、询问、不落盘,一律优先于继续推进。但每一处例外都必须在报告首屏显式标出,不得静默降级。
| 触发条件 | 一线修复 | 仍失败兜底 |
|---|---|---|
| 检索能力不可用,或某节点检索不到任何真实案例 | 该节点的耗时/成本/法规一律降级为「估」,并在节点明细表的「依据」列写「未检索到可靠来源,此处为推断」 | 若关键路径上的节点普遍无来源,把「一页速览」的可行性判为不高于 🟡(已判 🔴 的保持 🔴),并在「假设与未验证项」逐条列出哪些结论靠推断 |
| 倒推出的起始时间早于今天 | 当场指出目标、周期、资源三者必有一个不成立,并把冲突写进「一页速览」 | 用户坚持不改 → 🛑 先取得用户对该冲突的明确接受再落盘;随后照写、可行性判 🟡 或 🔴,并在「假设与未验证项」写明被放弃的是哪一个 |
| 用户答不出成功指标(说不出数字或判定时点) | 退一步问「三个月后看到什么事发生,你会说这事成了」,用二元事实代替数字 | 仍答不出 → 停在阶段一,明说这是进入阶段二的硬前置;或改问「失败线」从反面逼近 |
| 节点数反复落不进 5-9 个 | 检查是否混入了无独立完成标志的伪节点,或把多个交付物捆成了一节点 | 若目标本身周期超过一年,按阶段拆成多份报告,不要硬塞进一份 |
| 用户说的硬约束/法规与检索到的公开要求冲突 | 以检索到的公开要求为准,把冲突写进「假设与未验证项」 | 冲突涉及资质、牌照、许可等法律后果 → 计入致命卡点,并明确建议先向监管方或律师确认 |
| 同名旧文件改名失败(权限不足、文件被占用、目标名不可改) | 不覆盖旧文件,新报告另存为 <目标简称>-<YYYYMMDD>-新.md |
<目标简称>-<YYYYMMDD>-新.md 也撞名 → 依次递增为 -新1.md、-新2.md。若每个候选名都写不进,说明是目录本身不可写而非撞名,改按本表中以 <项目根目录>/流程报告/ 写不进去 开头的那一行处理 |
<项目根目录>/流程报告/ 写不进去(目录建不了、权限不足、磁盘满、文件被占用) |
换一个可写目录重试一次,并在报告里写明实际落盘路径 | 仍写不进 → 不静默丢弃:把报告全文输出到对话并明说「未落盘」,且在「一页速览」上方标一行未落盘警告 |
| 目标本身违法,或与用户已验证的能力/资源不相容 | 直接说不可行,给替代方向 | 用户坚持 → 🛑 落盘前取得用户对 🔴 结论的明示接受;再照写但可行性判 🔴,不美化,首屏不得出现鼓励性措辞 |
全局禁止
- 摸底没做完就规划
- 节点没检索就写耗时/成本/法规
- 输出「可能」「建议关注」这类不可执行的话
- 把用户没有的能力/资源默认成有