青禾风控

QingheRisk

给一份计划,它告诉你哪些环节是必需的、哪些是从目标推不出来的无用功。零第三方依赖,MCP 端点,CLI 叫 qhrisk。

奴,这个世界是有的,这便是青禾风控为什么诞生,为什么要自然青禾派,因为符合社会进步之理想。可以降低很多合规方面的无用功,减法在有些地方比加法更重要。

—— 于硕

它做的是减法。绝大多数流程工具在做加法:列出所有该做的事,逐条优化、逐条把控。加法做多了,流程本身就成了最大的成本 —— 而里面一半以上的环节,跟目标能不能达成没有一点关系。

它只问两个问题:它服务于谁?去掉它,结果会变吗?答不上来的,就是无用功 —— 与它花多少钱无关。

判据不是划不划算,是必不必需

这是它和「成本收益分析」分道扬镳的地方。同一件事,两种算法会给出相反的结论:

成本收益视角

给标准品供应商做年度审核
花 5000,能避免 8000 的期望损失

净值 +3000 → 做。
账算得过来,就留着。

必要性视角

这个审核是为了防住什么?

那家供应商提供标准品、随时可换、单价极低 —— 它防不住任何真会发生的事。
追溯不到真实需要 → 不做。即使它很便宜,也不做。

三种断法,人力审不出来

做法是必要性追溯:每个环节写清「它服务于谁」,然后从目标出发做不动点迭代。迭代结束还没被标记为「有目的」的,就是无用功。

必要性追溯:三种断法 从目标出发做不动点迭代,能连到目标的才保留;传递性断链、互为理由、服务对象不存在,这三种情况都会被算出来。 目标 能追溯到目标的:必需 追溯不到的,是三件人逐条审永远审不出来的事 传递性 A→B→C,C 断链 互为理由 A 的理由是 B,反之 断链 服务的对象不存在 这三种的共同点:每一环单独拿出来看,都有一个很专业的说法 —— 所以只能把整条链拉直来看。

举一个真的会发生的例子

「每周项目周会」  ↔  「周会纪要的编写与归档」

  一个说:开会是为了产出纪要
  另一个说:写纪要,是为了给周会留痕

两边单独看都成立。放在一起看 —— 它们是彼此的理由,谁也没有连着目标。

追溯迭代到不动点,这两个永远不会被标记为「有目的」。同理还有:服务于一个 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 项:里面没有一项是审批、汇报或会议。最短的链条上通常只有真正产出结果的动作。

成本不是判据

这一点值得单独说,因为它是这个工具和「降本增效」之间的分界线。

让它会学习的那一环

判定完只算一半。真正让它越用越准的是事后验证 —— 两种错法,代价完全不同:

$ 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

雇进任何项目

作为 MCP 端点(跨宿主)

pip install -e . 之后就有 qhrisk-mcp。Claude Code / Cursor / 自研编排,接上即用。不装包也能直接指向 install/mcp_stdio.py。

作为岗位说明书

bash install/hire.sh <目标项目> 投递角色卡并登记 MCP —— 保留已有条目、先备份、--undo 可撤。

8 个 MCP 工具

工具干什么
qhrisk_plan_check计划能不能判
qhrisk_simplify核心:跑必要性追溯,出精简方案
qhrisk_patterns_show模式库(含那些可当场问出口的问题)
qhrisk_ledger_show判定台账
qhrisk_ledger_check对账:每条判定是否都有依据
qhrisk_review回看:删对了没 / 起过作用没
qhrisk_mistakes两种错法:虚删与虚留
qhrisk_recheck重算,看判定有没有翻转

它不做什么