口径驱动开发法(Verbal-Spec-Driven Development)
> 场景:领域专家(非程序员)口述规则,AI 全权实现。
> 核心矛盾:口径只在专家脑子里和对话记录里,代码一旦"自作主张",口径就走样。
> 本技能只装"干活的纪律",不装任何行业专属内容;文中数字示例一律为标注的(演示值)。
何时用本技能
- 专家口头给规则/费率/公式,无书面文档,AI 负责实现
- 验收标准是"与专家口述分毫不差"(锚点复现)
- 专家频繁纠正实现,需要一套不重蹈覆辙的纪律
- 交付需要可核对的收据,而不是"应该好了"
开工三件事(防上下文丢失)
对话会被压缩,文件不会。动手前先落三份文件:
- 口径真相文件:专家每条口述规则 = 原话 + 日期 + 来源等级(口述/权威第三方/AI推算)。冲突时按铁律 1 定顺位。
- 公式底盘文档:计算树/公式清单,逐条公式 + 推导 + 核验方法。改公式只改这里。
- 数据资产清单:源数据在哪、表结构、已知对账案例(锚点)。
六步工作循环
- 落口径:专家每说一条,原话 + 日期记入真相文件;不懂当场问,不脑补。
- 查重:动口径前先搜已收录规则库——很多"新问题"其实是已裁决的旧问题;查到就用原文并标出处,查不到才自拟,且必标"自拟·待确认"。
- 落四点:新增/修改入参必须四层一起改:配置 → 引擎 → 接口 → 页面;改完打接口回读,发出值 = 回读值才算接上。
- 测三层:端到端实走 → 旧批回归 → 收据存档。详见
references/测试套路.md。 - 出收据:三态交付 ✅Done(带收据) / ⏳pending(缺什么) / 🚫blocked(等什么)。模板见
assets/收据模板.md。 - 扫尾巴:结项前 grep 自述句(
已知欠账|尚未接入|待办|暂沿用|待确认)清掉过时表述;核对界面标签与新算法一致。
铁律(14 条,详见 references/铁律.md)
- 口径优先级:专家口述 > 权威第三方数据 > AI 推算;冲突先问"专家说过没有"
- 单一真相源:一个数字只在一处定义
- 公式在代码、数值在配置;单价/系数不硬编码
- 四落点:配置→引擎→接口→页面,漏一处 = 静默失效
- 对照物原则:自报"跑出来了"不算数;回读/截图/回归才是收据
- 锚点红线:已验收锚点分毫不动;断言三步处置(先查口径变更→再查几何/数据继承→绝不删断言)
- 收据门:没有收据的完成声明是 pending,不是 done
- 叠加不覆盖:新口径先问"旧口径里有没有新口径没提到的维度"
- 结项自述句扫描:改了逻辑必须 grep 全仓自述句
- 量纲纸上先行:速率×时间类算式先写量纲链再落码
- 子串匹配禁用:按名字找配置用精确枚举 + 优先序
- 否定词先判:中文是非值先排"不/无需/免"再判肯定
- 缓存(pycache)先清再重启:不清缓存 = 改了等于没改
- 缺数据如实记 0 不补默认值;自拟口径必标"自拟·待确认"
坑表(references/坑表.md,50 条 · 探测/断言/流程/环境四组)
最高频的四族:
- 静默失效族:字段没透传/键名不匹配/假参数/死配置——不报错,安静按默认值算
- 假绿族:静态文案命中关键词、折叠内容没展开、没真填数就断言通过
- 量纲族:h 与 s、mm² 与 m² 混用,结果差百倍千倍且不报错
- 陈旧族:缓存不清、旧进程未杀、标签与算法不同步
交付资产
| 文件 | 用途 |
|---|---|
assets/收据模板.md |
三态交付收据(Done/pending/blocked) |
assets/回归清单模板.md |
改口径后的回归 checklist |
assets/实走脚本模板.py |
纯标准库端到端实走脚本(仅连 127.0.0.1/localhost) |