指标口径与阈值
五个内置指标全部是纯函数:给定输入数据,结果可复现、可单测,不依赖任何模型。这一篇讲每个指标算什么、阈值怎么定、权重怎么配。
01五个指标
| 指标 | 算什么 | 默认权重 |
|---|---|---|
| 承诺兑现率 | 会上拍板的事,兑现了几件 | 3 |
| 阻塞时长 | 卡在谁那里、卡了多久 | 2 |
| 依赖未闭合 | 有没有前置依赖一直没闭合 | 1 |
| 决策未落任务 | 会上拍板的事有没有落成任务 | 1 |
| 变更密度 | 范围 / 计划近期的变更频率 | 2 |
权重口径 3/2/1/1/2 写在 packs/project/rules.example.yaml,示例权重即引擎默认口径,字段全中文注释。
02三档阈值
每个指标配通用三档粗阈值,决定「正常 / 注意 / 出事」;护栏默认 300/450/600(写在同一份规则文件里)。阈值默认是通用口径,没有用你的行业数据校准过——你的团队更看重什么,自己改。
03权重怎么配
- 改权重就是改排序:体检卡按「风险等级 = 指标扣分 × 权重」排。把你在意的指标权重放大,它就往前排。
- 改完先校验:宿主里跑
rules.validate,结构错了当场标出。 - 不要全拉满:五个权重全相等等于没观点——体检表的排序信息量归零。
04自定义体检项
在规则文件里加一条:指标名 + 判据字段 + 三档阈值 + 权重,格式与内置五条完全一样。check.analyze 按同一套纯函数管线算它,输出到同一张体检卡。
05指标之间的相互影响
指标之间不做交叉修正——阻塞时长的扣分不会被承诺兑现率抵消。这是刻意的:交叉修正让「为什么这条风险排第一」变得说不清。每条风险结论都带指向台账行的证据引用,你永远可以顺着证据行回查到原始数据。