fix(w05): 调人预算提到 24;「一条都没点到」的打回不再整表重判

用户:「怎么直接最后落帐的步骤直接没了?」—— 那一单终态是 exhausted:结论审核连打回四次,
每打回一次配方就重发一张审核卡、每张 +1 humanCalls,第八次触顶,放行那一步再没机会出现。
屏上看着像「那一步没了」,其实是单子先被烧死了。

① 预算 8 → 24(用户当场定「那你就把预算提高」):常路只要 3 次(补数据 / 审核 / 放行),
   而审核每打回一次就多叫一次人。授权面与资源面同一个数;测里改成「两处一致 + 下限 12」,
   不再钉死某个具体数字。**这是配置不是机制** —— 机制上的正解是「人自己打回引出的那张卡
   不算打扰」(他不是被打扰,是他叫的),已记 debt。

② 「一条都没点到 → 整表算被点名」当天上线、当天撤掉:他那句是「收口结论里面的推荐理由
   改为非常不推荐」—— 说的根本不是某条参数,是收口那四格(本来就能在件上直接改)。
   整表重判的下场:AI 拿这句话把 5 条参数的结论改成「不匹配」,每条依据都写着
   「按审核人意见调整为不匹配:推荐理由改为非常不推荐」——一句与它们无关的话,改了五行。
   现在点不到名就一条都不改,并照实说清怎么才办得成(点参数名 / 收口四格在件上改)。
   重判与写回同批加「真点到了名」的前提,免得白烧一次模型。

验收:e2e w05 5/5 released、被拒 0,案例 0 四条断言全绿;2.23.0 装库核过(humanCalls=24)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
xcs
2026-09-01 02:55:05 +08:00
co-authored by Claude Fable 5
parent 3c563525f1
commit 4174c5f194
6 changed files with 119 additions and 50 deletions
@@ -113,14 +113,14 @@ describe('清单本身合规', () => {
/*
* 2026-08-29 重写:必交付物从三件(评估输入清单 / 差异评估结论 / 拟落账内容)收到两件 ——
* 「评估输入清单」那件连同它绑的三张旧单据(pn_check/input_gap/verdict)一起退休。
* 人环预算从 16(候选放弃/创建决策等岔路)收到 8(补数据 / 审核 / 放行三次调人,零工具、
* AI 只出场一次)—— 见「契约 > 预算」那条把 8 钉死;这里只需两个数上下一致。
* 人环预算:常路只要 3 次(补数据 / 审核 / 放行),**而审核每打回一次就多叫一次** ——
* 8 次实测三四轮就见底(2026-09-01 用户连打回四次,单子落 exhausted,屏上看着像「落账那一步没了」),
* 用户当场定「那你就把预算提高」→ 24。这里只需两个数上下一致(授权面与资源面不许分叉)。
*/
it('两件必交付物都有台账地址;人环预算恰为 8', () => {
it('两件必交付物都有台账地址;授权面与资源面的调人预算是同一个数', () => {
expect(manifest.contract.requiredDeliverables).toHaveLength(2);
for (const d of manifest.contract.requiredDeliverables) expect(d.ledger, d.key).toBeDefined();
expect(manifest.contract.authorization.humanCallBudget).toBe(8);
expect(manifest.contract.resources.budget.humanCalls).toBe(8);
expect(manifest.contract.authorization.humanCallBudget).toBe(manifest.contract.resources.budget.humanCalls);
});
/*
@@ -343,9 +343,14 @@ describe('契约', () => {
}
});
it('预算:调人三次(补数据 / 审核 / 放行),模型只出场一次', () => {
expect(manifest.contract.resources.budget.humanCalls).toBe(8);
expect(manifest.contract.authorization.humanCallBudget).toBe(8);
/*
* 常路调人三次(补数据 / 审核 / 放行),模型只出场一次 —— 而**审核可以打回,每打回一次就多叫一次人**,
* 所以预算按「常路 3 + 二十来轮打回」给(2026-09-01 用户定,见 manifest 那一行的注释)。
* 下限钉在 12:低于它,人点几次重做就把单子烧成 exhausted —— 落账那一步再也没机会出现。
*/
it('预算:常路调人三次,留足打回的余量;模型只出场一次', () => {
expect(manifest.contract.resources.budget.humanCalls).toBeGreaterThanOrEqual(12);
expect(manifest.contract.authorization.humanCallBudget).toBe(manifest.contract.resources.budget.humanCalls);
expect(manifest.contract.resources.models).toEqual(['deepseek-v4-flash']);
});
});