CLAUDE.md:脚本 e2e 那八条入快照 —— 两条线逮到的缺陷不重合

记死三条可推广的:闸看的表与件上摆的表不是同一张,闸就等于没有;
拒回喂指针没用,得喂每拍都在的事实;零行 = 零缺会同时骗过闸与哨兵。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FJcX8A6TWp4GRs41TYryEh
This commit is contained in:
xcs
2026-08-27 09:32:03 +08:00
co-authored by Claude Opus 5
parent df18882322
commit 182d3c39b5
+25
View File
@@ -1363,6 +1363,31 @@
平台侧四条欠账已记 debt(`disable` 无路可走 · 前一项不收掉后一项的件推不出来 · 平台侧四条欠账已记 debt(`disable` 无路可走 · 前一项不收掉后一项的件推不出来 ·
拒回数不出「缺的是一次工具调用」· 零行台账的提交闸无牙)。 拒回数不出「缺的是一次工具调用」· 零行台账的提交闸无牙)。
- **脚本 e2e 逼出的八条:两条线逮到的缺陷不重合**(2026-08-27,`w05` 五案例连跑六轮):
浏览器走查逮**人看见什么、点得动什么**;脚本逮**机制** —— 它每张卡都先空手交一次、
每个岔路口按序代答,而人手点的时候永远不会去试「空着交上去会怎样」。**发现 L–S 八条,
没有一条是浏览器那六轮逮到的**。末轮:跑到的四例全部 released、三例被拒 0
(第五例停在大模型账户 `Insufficient Balance`,不是代码问题)。
平台侧六条(全部有测):①**闸看错了表** —— 卡没绑表就回落到必交付物,而数据工单要人补的是
`parts.*` 主数据、不在交付物名单里:闸盯着一堆无关的表、一格不缺,空手交卷一路放行。
契约新增 `ExecutionWorkOrder.gateLedgers`(**这张卡该拦哪几张表,发卡的人说了算**),
`gateAddressesOf` 变三级取一(绑的表 > 卡自报 > 交付物);②**拒回数不出「缺的是一次工具调用」** ——
`finish` 撞 doneWhen 为假时只谈「行与列」,现在摆判据原文 + 那几个名字此刻的读数,
`tool_*_calls` 读到 0 的单独点名;③**拒回喂指针没用**:人点了决策卡、模型每拍再发一张,
把「他选的是 approve」写进拒回**照发不误** —— 下一拍它又从头翻一次会滚走的窗口;
改结构 `answeredCardFact`,把「这张卡已答过 → 他选的是什么」做成**每拍都在的事实行**
(worldTouched 2026-08-21、E04 事实行 2026-08-24 之后同一条道理的第三次);
④模型传 `requirement: null` 把工具打崩(边界上一律经 `text()` 归一);
⑤拒回里的 `count=(没写过)` 是 S-FEEL 函数名被当成台账名 —— **假线索模型会去追**;
⑥**零行 = 零缺**:模型压拍没写骨架就发数据工单,人打开是空表,闸与哨兵一起放过
(`emptyGate`:卡自报的表一行都没有 = 没完成);⑦**「早收」不该算撞墙** ——
工具还没轮到调 `finish` 先到了,那是计划次序的小错,头一次只落观察、第二次起才算被拒
(与「重发已答过的卡」同一把尺)。
活动侧 1.2.9:三张执行工单各自声明 `gateLedgers`;说明书补「发卡前骨架必须先有行」与
S1 那张卡的前提(一颗 absent 都不剩);哨兵 `parts_profile_rows >= created` 逐颗对账。
e2e 脚本加 `JCAI_E2E_BEARER` 直供旁路(卡会落到 token 主人的工作台、不续期;
服务账号 `client_credentials` 仍是正路)。
## 文档权威地图 ## 文档权威地图
| 层 | 文件 | 说明 | | 层 | 文件 | 说明 |