docs/delivery/evidence/335/**、scripts/check_error_contract.py、scripts/check_g7_value_gate.py、docs/tools/acceptance_gate.pyb4e7faf5 · 小冈 R1 派工 · docs+scripts 🔒波波)5d966aeb三门实跑现值(scripts/emit_335_gates_evidence.py 已固化落盘,可复跑):
| 门 | 退出码 | 结论 |
|---|---|---|
| E1-E8 错误契约门 | 0 | PASS |
| AG1-AG6 包验收门 | 0 | 无 P0 阻塞(PARTIAL/MISSING 为待补项,非阻塞) |
| V 系用户价值门 | 1 | BLOCKED 2(V3、V5)/ERROR 0/WARN 2 |
🔴 但必须把话说透:按剧本 §7「任一 BLOCKED ⇒ 整个 335 判 BLOCKED」,V 门这两条会卡住收官。
V3/V5 的 BLOCKED 性质是「判据对象缺失」(产品侧没有信息条目溯源模型、没有纠纷记录 schema),不是演练链路执行失败,也不是代码缺陷。这与 AG 门甲案同构:门评的对象 ≠ 335 演练链路对象。
我不自行摘除。 请 R1 二选一(一句话即可,我收到即复核放行):
- 甲:裁「V3/V5 列产品建模验收线,不阻断 335 演练放行」⇒ 第五幕转纯 PASS,本裁定即生效。
- 乙:按剧本严格同判 ⇒ 第五幕 BLOCKED,须等 D5 信息条目模型 + D9 纠纷域 schema 建模后复判。
| # | 事项 | 证据 | 判定 |
|---|---|---|---|
| 1 | 门槛 6 责任人 | gate_check.py release 实测 PASS(未登记责任人 0) | ✅ 销(C5 待刘总签字) |
| 2 | products 书面裁决 | cabd788c 在库 + 裁决包 | ✅ 销 |
| 3 | 04-biz/n4.txt | 401 + request_id: fd2ff58cd1c0 | ✅ 销 |
| 4 | notify 沙箱旁路 | miniapp_pay.py 已改 _is_sandbox(),只认服务端配置 | ✅ 销(本轮复验) |
| 5 | 4.1 重跑 + 13 域清单 | isolation-matrix-v2.csv 域级 13/13,清单已写入 thresholds-closure.md §销项#5 | ✅ 销(端点级口径见 §五) |
| 6 | 4.2 落库计数 | v8-count.txt = 1 | ✅ 销 |
| 7 | AG 门 | 本轮③落实乙规格,门转「无 P0 阻塞」 | ✅ 销 |
| 8 | V 六份证据位 | 六份在库 + naming.md 表 D 对照 | ⚠️ 部分销:证据位齐,但编号仍属第二套 V 系(除 V1 外全错位),改称 VG1-VG9 的裁定权在契约持有席 |
| 9 | M1 演练期复跑 | 延后裁决合并(剧本 §3 延后注记) | ✅ 销(裁定豁免) |
| 10 | 第六幕 | 06-rollback/ 已有六步文件 | ⚠️ 部分销:6.2 / 6.5 有缺口(见 §六) |
| 11 | E1 入执行器 | 本轮②C4 已入,实测 205/224 写端点无幂等信号 | ✅ 销(书面处置期内 WARN) |
合计:9 项全销 + 2 项部分销(#8 编号错位待他岗裁定、#10 六幕两步待补)。
scripts/check_error_contract.py 新增 E1(G1·P0):写端点函数体内须命中幂等关键词(idempot|duplicate|DOUBLE|重复|已支付|判重|一次 等)。thresholds-closure.md 销项#11 书面处置,过渡期以 4.2 V8 实测替代 ⇒ 登记为观测项 WARN;V8 证据失效后本项自动升为阻塞项(已写进脚本注释,不是口头约定)。IDEM_RE 改成全匹配 r"." 后,E1 由 205/224 → 0/224、P0 五维完备率 10% → 37% ⇒ 检查项真实生效,不是摆设。schema_units():以 AST 抽取 ORM 模型类(含 __tablename__)+ CREATE TABLE 列集合作为断言对象。v3_provenance():要求同一 schema 单元同时含 source + verified_at + season;否则 BLOCKED 并打印各字段真实落点。v5_record_split():要求纠纷域 schema 单元中「系统事实/一方陈述/平台判断」三组列各至少命中一个;旧实现只看「含 dispute 的文件里有没有 status」——任何 SQL 都恒真。source→tenant.py:22/admin_content.py:53、verified_at→quotes.py:144(quotes 核销时间)、season→feed_demand.py:504(查询参数)⇒ 三者分属三个无关语义,无统一信息条目模型;V5:纠纷域无 schema 单元。--selftest 新增自检 4——用「三字段只是函数局部变量 / 纠纷域只返回字典」的样本(旧实现会假绿 PASS),改造后 V3、V5 均判 BLOCKED,自检 4/4 全过。E1=G1 幂等(P0)|E2=G2 裸端点(P1)|E3=G3 路径重复(P1)|E6=G6 响应包装(P2)|E7=G7 零错误分支(P0)|E8=G8 无 detail(P2))。naming.md 表 D。scripts/emit_335_gates_evidence.py——三门证据一键落盘(含五要素 + py3.12+ 版本闸门,用错解释器直接退 2,防止假证据)。按要求落实三件事:PACKAGES 现行落点、七件套文件级映射、新增 PARTIAL 态。门输出由「四态」扩为 五态(PASS / PARTIAL / FAIL / MISSING / NA):
| 包 | 总判 | 说明 |
|---|---|---|
| P1 | PARTIAL | AG1 缺 handoff 类映射 |
| P2 | MISSING | AG1 缺 contracts;AG2 无本包契约映射 |
| P3 / P4 | PARTIAL | AG1 缺 acceptance、handoff(P4 另缺 design) |
| P5 / P6 | MISSING | AG6 无验收文档映射不可判(P6 另缺 checks) |
关键改善:旧门把「零交付」与「有交付但七件套不齐」都记 MISSING,且因 white-label/ 从未建立而六包恒 MISSING(假阻塞)。现在能区分了——P1/P3/P4 是"有交付但不齐",P2/P5/P6 是"映射未命中"(注意:MISSING 也不等于没干活,我在缺陷清单里明确写了「映射未命中,非必然未交付」)。
🔴 两处自纠(都是我自己写出来的假判据,当场修掉):
acceptance/evidence/contracts ⇒ 含同名锚的包恒真命中全部文件。改为只对「文件名 + 相对搜索根的子路径」匹配。P1-验收台账去重-v1.md 算作 P6 产物,其中的 [BLOCKED] 字样记到 P6 头上(假 FAIL)。改为 G6 只认「以本包号/本包编号开头」的验收文档;并顺手修回 G6 原口径——标记必须是行首(剥离引用符后),否则引用他人脚本输出里的 [BLOCKED] 也会被误记(已在 P1 台账第 63 行实证)。⇒ 修完后 AG 门 exit 1 → 0。
| 项 | 现值 | 判定 |
|---|---|---|
| 4.1 域级 | 13/13(脚本复算,check_335_isolation_v2.py) | ✅ |
| 4.1 端点级 | 9/11,NOSIGNAL 2 条 | ⚠️ 见下 |
| 4.2 V8 | v8-count.txt = 1 | ✅ 真 PASS |
| 4.4 验签 | n4.txt 401 + request_id | ✅ |
| 4.5 路由门 | 426 条、孤儿 0、ERROR 0 | ✅ |
4.1 的两条 NOSIGNAL:
miniapp_distribution/distribution/profile:dest1 与 dest999 均 403 ⇒ v2.1 已标 ⚠️N/A 并写明「身份闸先行」,本岗认可(上轮已裁)。merchant_console/merchant-console/overview:同样 403/403,CSV 自判却是 ✅「身份语义·写路径隔离另证」——另证至今未落。这是我上一轮实测发现的「8 条写路由、resolve_destination 仅 1 处且落在读端点」那条,本轮复跑仍是唯一分歧点 ⇒ C1 未清,继续挂附条件(最优先的实体活)。06-rollback/ 已有六步文件,但:
config.json = {"success": false, "code": 401, "message": "无效凭证"} —— 这不是回退成功回包,判据「与 §2.4 同样口径」未达成。registry.txt 0 字节,判据「registry 不再有 active 的 t_demo + nginx -t 通过」无证据可证。其余四步达标:6.1 dump.txt 13037 字节非空 ✅、6.3 down.txt(容器 0 / 8102=000)✅、6.4 dropdb.txt(DROP DATABASE + 0 rows)✅、6.6 cert-note.md(DRY-only 无需吊销)✅。
⇒ 第六幕若已执行,判 PASS-附条件;6.2 与 6.5 须补齐或显式记 N/A 并写明原因。 本岗不代判"已收官"。
| 编号 | 事项 | 性质 |
|---|---|---|
| C7(新) | V3/V5 判据对象缺失 ⇒ 请 R1 裁「不阻断 335」(甲/乙二选一) | 收官唯一开关 |
| C1 | merchant_console 8 条写路由隔离交代(另证) | 实体活,最优先 |
| C5 | 门槛 6 owner 待刘总签字 | 登记动作 |
| C8(新) | 六幕 6.2 / 6.5 补证或显式 N/A | 收官前 |
| #8 | V 系改称 VG1-VG9(裁定权:契约持有席) | 他岗 |
docs/、docs/tools/、scripts/;未写任何业务代码**,未碰 backend/(属主闸门)。-- 署名:波波(验收官)2026-09-17 18:0x | HEAD 5d966aeb