给一份计划,它告诉你哪些环节是必需的、哪些是从目标推不出来的无用功。零第三方依赖,MCP 端点,CLI 叫 qhrisk。
奴,这个世界是有的,这便是青禾风控为什么诞生,为什么要自然青禾派,因为符合社会进步之理想。可以降低很多合规方面的无用功,减法在有些地方比加法更重要。
—— 于硕
它做的是减法。绝大多数流程工具在做加法:列出所有该做的事,逐条优化、逐条把控。加法做多了,流程本身就成了最大的成本 —— 而里面一半以上的环节,跟目标能不能达成没有一点关系。
它只问两个问题:它服务于谁?去掉它,结果会变吗?答不上来的,就是无用功 —— 与它花多少钱无关。
这是它和「成本收益分析」分道扬镳的地方。同一件事,两种算法会给出相反的结论:
净值 +3000 → 做。
账算得过来,就留着。
那家供应商提供标准品、随时可换、单价极低 —— 它防不住任何真会发生的事。
追溯不到真实需要 → 不做。即使它很便宜,也不做。
做法是必要性追溯:每个环节写清「它服务于谁」,然后从目标出发做不动点迭代。迭代结束还没被标记为「有目的」的,就是无用功。
「每周项目周会」 ↔ 「周会纪要的编写与归档」
一个说:开会是为了产出纪要
另一个说:写纪要,是为了给周会留痕
两边单独看都成立。放在一起看 —— 它们是彼此的理由,谁也没有连着目标。
追溯迭代到不动点,这两个永远不会被标记为「有目的」。同理还有:服务于一个 2025 年就撤销了的委员会的月度填表,以及为那份没人读的纪要维护格式规范。
| 结论 | 含义 |
|---|---|
| 必需 | 连得到目标、去掉确实有差别、没有更轻的做法 —— 这是最短的链条 |
| 判为无用功 | 追溯不到目标(并说明是哪一种断法),或去掉确实没差别 |
| 可简化 | 它是必需的,但有更轻的做法 —— 不是不做,是换个做法 |
| 待厘清 | 说不清它服务于谁 —— 先搞清它当初为谁存在,再判 |
| 自检未过 | 不出结论,先把计划里没说清的地方补上 |
「待厘清」单独成一类很重要:说不出服务于谁,不等于它没用,只说明当年那个需求已经没人记得了。
$ qhrisk simplify examples/01_product_launch/plan.json
## 精简账
| 环节总数 | 12 | | 必需 | 5 |
| 可以停下来 | 5 | | 其中追溯不到目标的 | 4 |
| 可简化 | 1 | | 待厘清 | 1 |
| 最长链条 | 3 环 | | 无用功占用 | 2.5 人天 |
## 可以停下来(5 项)
### 1. 按旧版产品线口径填报月度预测表 `I-13`
- 它说它服务于:一个不存在的环节 `I-99`
- 为什么是无用功:它服务的那件事根本不存在
- 去掉它:没有差别 —— 产品委员会已于 2025 年 11 月撤销,但表格仍在逐月填报
### 2. 每周项目周会(8 人) `I-10`
- 它说它服务于:周会纪要的编写与归档
- 为什么是无用功:彼此成为对方存在的理由
- 去掉它:没有差别 —— 过去 8 周的周会没有改变过任何一个决定
### 5. 维护周会纪要的格式规范 `I-12`
- 为什么是无用功:它服务的那件事本身是无用功
- 去掉它:没有差别 —— 「格式统一」从未被任何读者提起过,因为没有人读
## 必需(5 项)—— 这是最短的链条
1. **完成可演示样机** `I-01` 第 1 环 —— 去掉会让目标延后 60 天
2. **通过目标客户的现场测试** `I-02` 第 1 环
3. **与客户签署采购合同** `I-03` 第 1 环
4. **整理现场测试所需的工况数据包** `I-04` 第 2 环 —— 去掉会让目标延后 10 天
5. **取得客户现场的环境参数** `I-05` 第 3 环 —— 去掉会让目标延后 5 天
注意「必需」那 5 项:里面没有一项是审批、汇报或会议。最短的链条上通常只有真正产出结果的动作。
这一点值得单独说,因为它是这个工具和「降本增效」之间的分界线。
cost 字段只用来排序:决定「可以停下来」那张清单里谁排前面,以及最后算一笔"这些无用功一共占了 2.5 人天"。判定完只算一半。真正让它越用越准的是事后验证 —— 两种错法,代价完全不同:
$ qhrisk mistakes --ledger decisions.json
## 虚删(1 项)—— 删错了,它其实有用
> 这是危险的错。省下的那点时间,可能换来一次事故。
- **出差申请单的纸质双签** `I-14`:停掉后,财务在季度审计时被问起经手凭证,答不上来
## 虚留(1 项)—— 留下了,但一次没用上
> 这是**沉默的**错。没有任何机制会提醒你「你保留的这件事,一年里一次都没起过作用」
—— 因为它什么都没做错,只是没用。
- **完成可演示样机** `I-01` 白占 20 天 × 3 人
「虚留」是这套东西里最不容易被替代的部分。因为组织里所有报警机制都在报"少了什么",没有一条会报"多了什么"。被删掉的环节会有人喊疼,被保留的废环节永远安静。
$ qhrisk recheck changed-plan.json --ledger decisions.json
**判定已翻转(1 条)**:
[P-05] 总经理审批(金额 1 万元以下) —— 判为无用功 → 必需
改一个「它服务于谁」或「去掉它会发生什么」,下游三个环节可能从必需变成无用功。recheck 不改变任何东西,它只是让"计划已经和台账对不上了"这件事没法继续不被看见。
$ qhrisk patterns show patterns/common.json
## 为审批而审批的节点 `W-APPROVAL`
- 为什么通常是无用功:审批的价值在于「有人真的会不同意」。
如果这个节点历史上从未驳回过任何一次,它承担的角色就退化成了盖章。
- 可以问一句:这个审批节点上次驳回是什么时候?如果从来没有,它挡住的到底是什么?
- 更轻的做法:改成事后抽查;或把阈值提到真正需要人判断的量级
自带 10 条:没有决策权的评审会、只做同步的例会、为留痕而留痕的文档、为审批而审批的节点、不触发动作的检查、层层转发的汇报、重复录入、没人看的看板、与目标无关的培训、从不检索的归档。
那些「可以问一句」才是重点 —— 不需要任何数据,任何参与者当场就能回答。也不用先部署一套系统,在会上念一句就行。模式命中不改变判定,只提供一个追问的角度。
git clone https://github.com/zheng-qinghe/qinghe-risk.git
cd qinghe-risk && pip install -e .
# 计划能不能判
qhrisk check examples/01_product_launch/plan.json
# 跑必要性追溯,出精简方案
qhrisk simplify examples/01_product_launch/plan.json
# 完整闭环:出方案 → 记账 → 回看 → 两种错法 → 改一处,判定翻转
bash examples/demo.sh
pip install -e . 之后就有 qhrisk-mcp。Claude Code / Cursor / 自研编排,接上即用。不装包也能直接指向 install/mcp_stdio.py。
bash install/hire.sh <目标项目> 投递角色卡并登记 MCP —— 保留已有条目、先备份、--undo 可撤。
| 工具 | 干什么 |
|---|---|
qhrisk_plan_check | 计划能不能判 |
qhrisk_simplify | 核心:跑必要性追溯,出精简方案 |
qhrisk_patterns_show | 模式库(含那些可当场问出口的问题) |
qhrisk_ledger_show | 判定台账 |
qhrisk_ledger_check | 对账:每条判定是否都有依据 |
qhrisk_review | 回看:删对了没 / 起过作用没 |
qhrisk_mistakes | 两种错法:虚删与虚留 |
qhrisk_recheck | 重算,看判定有没有翻转 |
success_criteria 必须由人来写 —— 它决定了什么算"连得到目标",这是价值观问题,不是技术问题。