335 端到端演练 · 五幕总终判(验收官 波波)

裁定时间:2026-09-17 09:5x | HEAD:d5956550 | hostname:192.168.1.20
裁判依据:剧本 docs/plans/335-drill-playbook.md §7(四态唯一真源)· §8(证据五要素)
角色边界:只裁四段齐全与判据成立,不替执行席跑业务、不替执行席签字(§4 v1.6 对齐)

任务卡

项内容
目标335 六幕总终判(第五幕三门 + 各幕汇总放行裁定)
范围evidence/335/** 全量证据 + 三门执行器实跑 + 静态核证补证
批准来源R1 派工(WIP-371 裁判权)+ 主会话「五幕总判」令
验收标准逐幕四态可复现;每判附证据锚点;BLOCKED 与 FAIL 不互相冒充

一、总判结论:🔴 BLOCKED —— 不得进生产迁移提请

剧本 §7 原文:「§1–§6 全部 PASS 且凭据齐全;任一 BLOCKED ⇒ 整个 335 判 BLOCKED,不得进生产迁移提请」。

当前六幕中 2 幕 BLOCKED、1 幕未执行 ⇒ 触发该条款。

⚠️ 先说清楚一句:本次 BLOCKED 不等于演练失败。335 真正跑通的东西很硬——
第二幕版本化发布/回退链路(v4→v5→rollback→v6)字段级 PASS、Q-B 收敛 PASS、
跨租户 403 已复活、pay/notify 验签已合入且 fail-closed 正确。
BLOCKED 卡在证据未落盘与门槛未销项,不在主链路本身。

二、六幕判定总表

幕判定依据关键缺口
00 门槛🔴 BLOCKED§0.1 七门槛门槛 5 未补书面裁决/门槛 6 未销且本轮实测 FAIL/门槛 7 未裁定
01 初始化✅ PASS-附条件363-第一幕证据验收裁定-v1.2cert 受 DNS 未预配限(BLOCKED-环境依赖 → 转上线前置件)
02 配置✅ PASS371-第二幕字段级终判-v2(exit 0)+ 372 收敛无(Q-B 方案 A 已落码,R1 三例复测 PASS)
03 M1⚠️ PASS-附条件03-m1/drill.txt 全绿🔴 证据非本次演练期产生(时间戳 2026-09-15 13:46,早于 09-16 11:2x 开跑;hostname=192.168.1.21 非演练机位)
04 业务链🔴 BLOCKED见 §四4.1 实测量 7/16 且分母无书面清单;4.4 证据位零落盘
05 校验门🔴 BLOCKED(含 V6 双 FAIL)见 §三AG 门 4 包 MISSING;V1-V5/V8 证据位全空
06 回退⬜ 未执行06-rollback/ 仅 .gitkeep六步零证据(容器与库未退场)

三、第五幕三门详裁(本轮裁判代跑 · 证据已补落盘)

🔴 前置事实:裁定前 05-gates/ 内三门输出一份都没有(只有 route-gate.txt 与 consumption-ruling.md,二者分属第四幕与 363 线)。
本岗按 §5「裁判=波波」职责代跑三门并留档 4 份证据(含五要素头),不替执行席签字。
门执行器退出码判定依据
E1–E8 错误契约门check_error_contract.py(py3.13)0✅ PASS-附条件结构 3 项全 PASS(重复 0 组/状态越界 0/口径 SKIP)
AG1–AG6 包验收门docs/tools/acceptance_gate.py1🔴 BLOCKEDP1/P2/P3/P5 MISSING,P4 FAIL,仅 P6 PASS
V1–V8 用户价值门gate_check.py release|replication1 / 1🔴 双 FAIL(性质见 §五)release:5 模块无人负责;replication:三要素全未就绪
门-ID 一致性上述四份合并—✅ PASS-附条件对照行已落 05-gates/naming.md

3.1 E 门:PASS,但两处 P0 处置未到位

剧本 §5 明写「E1 与 E7 为 P0,未出书面处置不得放行」⇒ E1 当前无覆盖、无书面处置。

3.2 AG 门:BLOCKED,但归因必须写明(防误读)

脚本报 4 包「交付目录不存在」,候选路径 white-label/structure、docs/delivery/evidence/322 等。

实核:仓库内 white-label/ 目录根本不存在;evidence/ 下只有 324 与 326。

⇒ 这是「门的目录约定」与「实际交付惯例」脱节,不是四个包没干活:

⇒ 判 BLOCKED(MISSING 不等于通过,剧本硬性规定),但处置方向不是催四个包补活,而是二选一:①各包按约定建 white-label/* 交付目录;②由契约持有席改门的候选路径以对齐现行落点。本岗不代改他岗门的实现。

3.3 V 门:只有 V6 可跑,其余全空

00-gate/v1-mapping.md、04-biz/tasks/、02-config/consistency.md、04-biz/negative/、05-gates/metrics/、05-gates/aggregate.txt —— 六份证据位零落盘 ⇒ V1/V2/V3/V4/V5/V8 一律 BLOCKED(不得记 PASS)。

V8 剧本另有硬条款:「小齐未接入前判 BLOCKED,不得记 PASS」,与实测一致。

3.4 门-ID 一致性:已补对照行

三个执行器输出全部未按 E/AG/V 定稿口径打印(分别打 B01+数字项、G1-G6、无编号)。

按剧本「否则判 BLOCKED」——本岗已在 05-gates/naming.md 落 G↔新名对照三表 ⇒ 该判据转 PASS-附条件(附条件=执行器后续改打定稿编号,成本极低)。

四、第四幕更新裁定(相对上一轮复核)

#上轮判定本轮变化原因
4.1 隔离矩阵BLOCKED🔴 BLOCKED(维持)脚本重判 PASS 7/16;isolation-matrix-round2.csv 未修我指出的两条假阳性;13 域书面清单仍缺 ⇒ 触发 §0.1 门槛 4「签字表须附清单,否则 4.1 判 BLOCKED」
4.2 V8 幂等PASS-附条件PASS-附条件(维持)缺落库 count(*) 回显未补
4.3 黄金路径认可 A 级 6/8✅ 维持N4/N7 附议 BLOCKED-环境依赖(fail-closed 正行为,判 FAIL 会诱导向容错放行退化)
4.4 支付验签BLOCKED-无证据⚠️ 代码侧成立,证据侧仍 BLOCKED见下
4.5 路由门BLOCKED-零落盘✅ PASS-附条件route-gate.txt 已落:路由 426/孤儿 0/ERROR 0/R2=0 R3=0(判据达标)。附条件=证据落在 05-gates/ 而非判据规定的 04-biz/route-gate.txt

4.1 补充:分母本身就是悬空的

声称「12/13」,我的脚本实测 PASS endpoint = 7/16。差在两处:

4.4:验签已合入,但发现一条旁路

静态核证(miniapp_pay.py:115 起):pay/notify 已接 wxpay_notify,非沙箱路径 verify_signature 失败即 raise HTTPException(401, ...) 且不写库 ⇒ fail-closed 正确,剧本「全程无验签」的 P0 在代码侧已闭环。

🔴 但有一条可被外部构造的旁路:

sandbox_flag = body.get("sandbox") or _is_sandbox()

sandbox 标志取自请求体 ⇒ 任何一方 POST { "sandbox": true, "out_trade_no": ..., "status": "paid" } 即可跳过验签直接置 paid 并触发分佣。若生产 WXPAY_SANDBOX=true(演练很可能如此),该端点等效于无验签。

⇒ 4.4 判 代码侧 PASS-附条件:①生产强制 WXPAY_SANDBOX=false;②notify 只认服务端配置、忽略请求体中的 sandbox 标志。

证据位 04-biz/n4.txt(判据规定)仍零落盘 ⇒ 严格按 §8 五要素,本步骤仍记 BLOCKED-无证据。

五、V6 双 FAIL 的性质辨析(这是本轮最需要说清的一条)

gate_check.py 实测:

上线闸门:模块 5 个 / 未登记责任人 5 个   → FAIL
复制闸门:旺季复盘=false 全年贡献核算=false 当地责任人=空 → FAIL

两个判定必须分开,不能混:

层面判定理由
闸门机制本身✅ 生效(正行为)判据是「有明确拦截行为」——它确实拦了,且给明原因,fail-closed 正确。与 N4/N7 的 503/501 同款,不得判 FAIL,否则等于惩罚正确的失败关闭
闸门给出的结论🔴 当前不得上线、不得复制这是事实,与「335 可否进生产迁移提请」直接冲突

⇒ 记 PASS(闸门机制生效)+ 阻断性附条件:在责任人登记与复制三要素就绪前,335 不得作为上线/复制依据。

⚠️ 门槛 6 我要多说一句:§0.1 已记「🔴 未销」,本轮实测仍是 FAIL。这是登记动作(填 5 个模块责任人),成本极低却挂了两天 ⇒ 建议 R1 立即登记或按 §0.1 授权在 §7 签字表显式接受该 WARN 并签字。本岗不代判 PASS。

六、销项清单(转 PASS 的最小动作集)

#事项责任席卡住哪一条
1登记上线闸门 5 模块责任人(或签字表显式接受 WARN)R1门槛 6 / V6-release
2补 products 豁免书面裁决(§0.1 门槛 5)R1门槛 5
3落 04-biz/n4.txt(4.4 验签实测回包)小齐4.4
4修 notify 的 sandbox 请求体旁路(只认服务端配置)小齐4.4 附条件
54.1 重跑 + 附「13 域」书面清单小齐4.1 / 门槛 4
64.2 补落库 count(*) 回显小齐4.2
7AG 门:建 white-label/* 交付目录 或 改门候选路径契约持有席AG 门
8V1/V2/V3/V4/V5/V8 六份证据位落盘各执行席V 门
9第三幕 M1 在演练期复跑(现证据早于开跑)冈子03 幕
10第六幕 6.1–6.6 退场(或显式裁定本轮不退场)R1+小齐06 幕
11E1 幂等检查项入执行器 或 出书面处置契约持有席E 门 P0

七、边界声明

-- 署名:波波(验收官)2026-09-17 09:5x | HEAD d5956550