Skip to main content
Glama
zheng-qinghe

qhrisk-mcp

by zheng-qinghe
README.md
# 青禾风控 · QingheRisk

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

**给一份计划,它告诉你哪些环节是必需的、哪些是从目标推不出来的无用功。**

它做的是减法。

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

青禾风控只问两个问题:

> **它服务于谁?**
> **去掉它,结果会变吗?**

答不上来的,就是无用功 —— **与它花多少钱无关**。

CLI 叫 `qhrisk`,MCP 端点叫 `qhrisk-mcp`。零第三方依赖,Python 3.9+。

---

## 一、核心判据:追溯不到的,就是无用功

这是全部设计的支点,也是它跟"成本收益分析"分道扬镳的地方。

**一件事该不该做,不看它划不划算,看它能不能从目标推导出来。**

```
给标准品供应商做年度审核,花 5000,能避免 8000 的期望损失。
   成本收益视角 → 净值 +3000 → 做
   必要性视角   → 这家供应商提供标准品、随时可换、单价极低,
                  这个审核防不住任何真会发生的事 → 追溯不到真实需要 → 不做
```

**即使它很便宜,也不做。** 因为它是无用功,不是一笔便宜的投资。

做法是**必要性追溯**:每个环节都必须回答两件事

| 问题 | 答案 |
| --- | --- |
| 它服务于谁? | `@goal`(目标本身)/另一个环节 / 说不清 |
| 去掉它会怎样? | 没有差别 / 会让目标延后 N 天 / 会多花钱 / 会降低质量 / 可能出事 |

然后是一个不动点迭代:从目标出发,反复标记「有真实目的」的环节。
迭代结束还没被标记的,就是无用功。

---

## 二、它自动抓到三件人力审不出来的事

这才是这个算法真正的价值。**下面三种断法,逐条人工审永远审不出来 —— 因为每一环单独看都很合理。**

### 1. 传递性

A 为 B 服务,B 为 C 服务,而 C 连不到目标 —— **A、B、C 全是无用功**。

```
周会纪要的格式规范  →  服务于「周会纪要」  →  服务于「每周项目周会」  →  服务于谁?
       ↑ 每一环单独看都说得通,只有把整条链拉直才看得出来
```

### 2. 环

A 存在的理由是 B,B 存在的理由是 A。**彼此成为对方存在的理由。**

```
「每周项目周会」  ↔  「周会纪要的编写与归档」
    一个说:开会是为了产出纪要
    另一个说:写纪要,是为了给周会留痕
```

两边单独看都成立。放在一起看,它们是彼此的理由,谁也没有连着目标。迭代到不动点,两个都永远不会被标记为「有目的」。

### 3. 断链

服务于一个**根本不存在**的东西:早就取消的流程、已经解散的委员会、某个离职同事当年定的规矩。

```
「按旧版产品线口径填报月度预测表」
  → 服务于「产品委员会月度评审」
  → 那个委员会 2025 年 11 月就撤销了,表格还在按月填
```

---

## 三、五类结论

| 结论 | 含义 |
| --- | --- |
| **必需** | 连得到目标、去掉确实有差别、没有更轻的做法 —— 这是**最短的链条** |
| **判为无用功** | 追溯不到目标(并说明是哪一种断法),或去掉确实没差别 |
| **可简化** | 它是必需的,但有更轻的做法 —— 不是不做,是换个做法 |
| **待厘清** | 说不清它服务于谁 —— 先搞清它当初为谁存在,再判 |
| **—** | 自检未通过则不出结论,先把计划修好 |

「待厘清」单独成一类很重要:**说不出服务于谁,不等于它没用**,
只说明当年那个需求已经没人记得了。

---

## 四、一段真实输出

```bash
qhrisk simplify examples/01_product_launch/plan.json
```

```
# 精简方案:把新一代 BMS 模组推向首个付费客户

## 精简账
| 项 | 数值 |
| --- | --- |
| 环节总数 | 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`
- 它说它服务于:周会纪要的编写与归档
- 为什么是无用功:**它服务的那件事本身是无用功**
- 去掉它:没有差别 —— 「格式统一」这件事从未被任何读者提起过,因为没有人读

## 可简化(1 项)—— 不是不做,是换个更轻的做法
### 1. 每日项目进度日报(8 人逐日填写) `I-15`
- 更轻的做法:**改成只在偏离计划时更新一次,常规情况不动**(省 6 天)

## 必需(5 项)—— 这是最短的链条
1. **完成可演示样机** `I-01` 第 1 环 —— 去掉会让目标延后 60 天
2. **通过目标客户的现场测试** `I-02` 第 1 环 —— 可能出事
3. **与客户签署采购合同** `I-03` 第 1 环 —— 可能出事
4. **整理现场测试所需的工况数据包** `I-04` 第 2 环 —— 去掉会让目标延后 10 天
5. **取得客户现场的环境参数** `I-05` 第 3 环 —— 去掉会让目标延后 5 天

## 最长的一条链
目标 → 通过目标客户的现场测试 `I-02` → 整理现场测试所需的工况数据包 `I-04` → 取得客户现场的环境参数 `I-05`

> 链越长,中间长出无用功的机会越多 —— 因为**每一环单独看都说得通**。
```

**注意「必需」那 5 项:它们当中没有一项是审批、汇报、会议。**
最短的链条上通常只有真正产出结果的动作。

---

## 五、成本不是判据

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

```json
"cost": { "days": 0.2, "people": 1 }
```

`cost` 字段**只用来排序** —— 它决定「可以停下来」那张清单里谁排前面,
以及最后算一笔"这些无用功一共占了 2.5 人天"。

它**不参与判定**。所以:

- 一个只花 5 分钟的盖章审批,只要追溯不到目标,照样判无用功;
- 一个要花 200 人天的必需环节,只要真的连得到目标,照样保留。

`qhrisk` 的判定里没有任何"阈值"、"划算度"、"ROI"。**因为它判的不是值不值,是必不必需。**

---

## 六、让系统会学习的那一环

判定完了只算一半。真正让它越用越准的是**事后验证**:

```bash
qhrisk review I-10 --outcome stood --note "周会停了,没有任何人提意见" --ledger decisions.json
qhrisk mistakes --ledger decisions.json
```

两种错法,代价完全不同:

```
## 虚删(1 项)—— 删错了,它其实有用
> 这是危险的错。省下的那点时间,可能换来一次事故。
- **出差申请单的纸质双签** `I-14`:停掉后,财务在季度审计时被问起经手凭证,答不上来

## 虚留(1 项)—— 留下了,但一次没用上
> 这是**沉默的**错。没有任何机制会提醒你「你保留的这件事,一年里一次都没起过作用」
  —— 因为它什么都没做错,只是没用。
- **完成可演示样机** `I-01` 白占 20 天 × 3 人
```

**「虚留」是这套东西里最不容易被替代的部分。**
因为组织里所有报警机制都在报"少了什么",没有一条会报"多了什么"。
被删掉的环节会有人喊疼,被保留的废环节永远安静。

---

## 七、改一处,判定就会翻转

链条上任何一个环节的 `serves` 变了,下游的判定都可能跟着变:

```bash
qhrisk recheck changed-plan.json --ledger decisions.json
```

```
**判定已翻转(1 条)**:
  [P-05] 总经理审批(金额 1 万元以下) —— 判为无用功 → 必需
```

这正是人工审查追不上的地方:**改一个"它服务于谁",可能让三个环节从必需变成无用功。**
`recheck` 不改变任何东西,它只是让"计划已经和台账对不上了"这件事没法继续不被看见。

---

## 八、模式库:一个可以当场问出口的问题

追溯能算出"它连不到目标",但算不出"它为什么会长成这样"。模式库补这一块:

```bash
qhrisk patterns show patterns/common.json
```

```
## 为审批而审批的节点 `W-APPROVAL`
- 为什么通常是无用功:审批的价值在于「有人真的会不同意」。
  如果这个节点历史上从未驳回过任何一次,它承担的角色就退化成了盖章。
- **可以问一句:这个审批节点上次驳回是什么时候?如果从来没有,它挡住的到底是什么?**
- 更轻的做法:改成事后抽查;或把阈值提到真正需要人判断的量级
```

自带的 10 条覆盖:没有决策权的评审会、只做同步的例会、为留痕而留痕的文档、
为审批而审批的节点、不触发动作的检查、层层转发的汇报、重复录入、
没人看的看板、与目标无关的培训、从不检索的归档。

**那些"可以问一句"才是重点** —— 它们不需要任何数据,任何一个参与者当场就能回答。
也是这东西最容易被用起来的地方:不用先部署一套系统,在会上念一句就行。

**模式命中不改变判定。** 命中了也可能确实是必需的(比如一次真有决策权的评审会),
它只提供一个追问的角度。

---

## 九、三十秒上手

```bash
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                                      # 完整闭环
```

一份计划长这样:

```jsonc
{
  "id": "P-2026-09-19-01",
  "title": "把新一代 BMS 模组推向首个付费客户",
  "success_criteria": "签下一份金额不低于 30 万元、且预付款到账的首份采购合同",
  "horizon_days": 90,
  "items": [
    {"id": "I-01", "title": "完成可演示样机", "kind": "步骤",
     "serves": "@goal",                                  // 它服务于谁
     "purpose": "没有样机就无法进入客户的现场测试环节",
     "if_removed": {"effect": "delay_days", "value": 60,  // 去掉会怎样
                    "detail": "无法进入现场测试,整个目标往后推两个月"},
     "cost": {"days": 20, "people": 3}},                  // 只用来排序
  ]
}
```

`if_removed.effect` 只有五种取值:`none`(没有差别)、`delay_days`、`cost`、
`quality`、`incident`。**回答 `none` 就是在承认它是无用功** —— 但那也比不回答好:
很多冗余环节之所以一直在做,就是因为从来没有人问过"去掉会怎样"。

---

## 十、雇进任何项目

### MCP 工具(跨宿主)

```bash
pip install -e . && qhrisk-mcp
```

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

### 岗位说明书

```bash
bash install/hire.sh /path/to/your-project        # 投递角色卡 + 登记 MCP
bash install/hire.sh --undo /path/to/your-project # 撤回
```

---

## 十一、它不做什么

- **不算性价比。** 判定里没有阈值、没有 ROI、没有"划算度"。
  它判的是必不必需 —— 一件无用功再便宜也不做,一件必需的事再贵也做。
- **不替你定目标。** `success_criteria` 必须由你来写。它决定了什么算"连得到目标",
  这是价值观问题,不是技术问题。
- **不自动执行删除。** 它出判定,删不删由人决定。
- **不列"待优化清单"。** 那只是把加法换个说法。它给的是明确的五选一。
- **不给"流程健康度评分"。** 一个 0–100 的分看起来精确,实际无法追问。
- **不用 LLM 判定。** 追溯链是图上的可达性问题,可以被精确计算 ——
  交给一个不可复现的东西去做,等于放弃了"可追问"。

---

## 十二、血缘

每一条设计都来自一个具体的失效:

| 失效 | 对应设计 |
| --- | --- |
| 「这件事一直都这么做」 | 从目标做追溯,连不上的就是无用功 |
| 「周会要开,因为要出纪要;纪要要写,因为要留痕」 | 环检测 —— 互为理由的两个环节自动出局 |
| 「产品委员会要的表,先填着吧」 | 断链检测 —— 服务于不存在的东西 |
| 「这个审批流程很规范」 | 判据不是"听起来有没有道理",是"它真的改变过结果吗" |
| 「这个表才花五分钟,留着吧」 | 成本不是判据,只用来排序 |
| 「删了万一是错的呢」 | 虚删清单 —— 把删错的代价摊开看 |
| 「多留一道总是好的」 | 虚留清单 —— 最沉默的那种错 |
| 「流程更新了,但没人回头看」 | `recheck` 重算并点名翻转 |

配套材料:`docs/design.md`(设计说明)· `prompts/`(分阶段指令)·
`patterns/common.json`(无用功模式库)· `examples/`(两份真实计划,四种断法各演示一遍)。

---

## 十三、许可

Apache-2.0。拿去改,换成你自己的目标与环节 —— 但请保留两样:
每个环节的 `serves`,和它 `if_removed` 的答案。
**追不到目标的事,和没问过"去掉会怎样"的事,都不该继续存在。**

TDQS

C2.8/5.0

Scored across 8 tools

Disambiguation4/5

Each tool maps to a distinct step: plan self-check, simplification, pattern reference, ledger viewing/validation, outcome review, error taxonomy, and recheck. The only mild ambiguity is between qhrisk_plan_check and qhrisk_simplify, and between qhrisk_patterns_show and qhrisk_mistakes, but their descriptions are enough to separate them.

Naming Consistency3/5

The qhrisk_ prefix and lowercase snake_case are consistent, but the verb/noun ordering is not: plan_check, patterns_show, and ledger_* follow object_verb, while simplify, review, and recheck are bare verbs and mistakes is a bare noun. This is readable but not a uniform pattern.

Tool Count5/5

Eight tools is well-scoped for the stated workflow of plan simplification, ledger reconciliation, and outcome review. Each tool appears to serve a real stage in the process rather than padding the surface.

Completeness4/5

The set covers the core loop: check the plan, simplify it, inspect and validate the ledger, review outcomes, and recompute flipped judgments. Minor gaps exist around explicit plan/ledger editing, but the main workflow has no hard dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues