WIP-374 · AG 门裁决 + 四幕重核 + 五幕复判(验收官 波波)

裁定时间:2026-09-17 10:2x | HEAD:f9fb83db | hostname:192.168.1.20
依据:剧本 §7(四态唯一真源)· §8(证据五要素)· §5(三门 + 门-ID 一致性)
边界:只裁判据与证据,不替执行席跑业务、不替执行席签字;本岗只动 docs/** 与 scripts/

任务卡

项内容
目标①销项#7 AG 门二选一定案 ②四幕重核(四前置件已清)③五幕复判(销项 8/11)
批准来源R1 派单 WIP-374(TASKS 第 500 行)
验收标准每条判定附脚本复算或证据锚点;BLOCKED 不冒充 PASS;转 PASS 条件可机械验证

〇、一句话结论

335 从「多幕 BLOCKED」收敛到「单点 BLOCKED」——唯一硬缺口只剩 AG 门。


一、① AG 门裁决:定案=方案 B(改门候选路径对齐交付惯例)

1.1 定案与理由

方案内容裁定
A六包各建 white-label/<包> 七件套目录❌ 不采
B改 acceptance_gate.py 的候选路径,对齐现行交付惯例✅ 采

不采 A 的三条理由:

  1. 会制造「补目录=补交付」的假象——目录建了七件套仍需真内容,等于把归档工作量转嫁成一次性「补目录运动」,与剧本「MISSING 不等于通过」的初衷相悖。
  2. 双轨漂移:现行引用路径是 docs/delivery/acceptance/*、docs/contracts/*、docs/delivery/evidence/3XX,新建 white-label/ 后两套路径并存,必然再次漂移(这正是 V 系编号冲突的同款根因)。
  3. D7 域不可达:P2 的真实交付在 miniprogram-v2/docs/structure/,该域 pre-receive 属主为冈子,建目录也落不进去。

采 B 的前提(防判据降档):

1.2 实施规格(供契约持有席/小齐一键替换)

docs/tools/acceptance_gate.py 中 PACKAGES 改为包号锚定的现行落点(只改路径表,判据函数零改动):

PACKAGES = [
    ('P1', '品牌与主题引擎(一号)',   ['docs/delivery/evidence/335/02-config', 'docs/contracts']),
    ('P2', '结构与受控 DSL(波波)',   ['miniprogram-v2/docs/structure', 'docs/delivery/evidence/332']),
    ('P3', '配置治理与总契约(阿仁)', ['docs/contracts', 'docs/delivery/evidence/330']),
    ('P4', '租户上下文与隔离(二号)', ['docs/delivery/evidence/324']),
    ('P5', '数据迁移与初始化(小渔)', ['docs/delivery/evidence/330', 'docs/delivery/evidence/332']),
    ('P6', '发布版本与集成验收(小齐)', ['docs/delivery/evidence/326']),
]

SEVEN 由目录名改为文件级映射(示例,gate_g1 内改判存在性):

七件套目录模型(旧)文件级映射(新)
designdesign.md*设计*.md/*design*.md
contractscontracts/docs/contracts/*.md(包相关契约)
examplesexamples/*样例*/*example*/*.json
checkschecks/scripts/check_*.py(包相关校验器)
acceptanceacceptance.mddocs/delivery/acceptance/3XX-*.md
evidenceevidence/docs/delivery/evidence/3XX/**
handoffhandoff.mddocs/handoff/*

并新增:resolve() 返回 None 时记 MISSING(零交付);命中目录但映射缺 ≥1 类时记 PARTIAL。

⚠️ 本岗不代改他岗门的实现(与上轮「不代改他岗编号」同款纪律)。以上为可执行规格,实施属主=契约持有席/小齐;本岗收到后 5 分钟内复跑复核。

1.3 🔴 另报一层,请 R1 裁(这条决定 335 能否收官)

AG 门评的是「六个白标化交付包的完整性」,与 335「端到端演练链路是否跑通」不是同一对象。

建议:AG 门列为独立验收线(有自己的签字表与销项节奏),335 放行判据只取 E 门 + V 门 + 门-ID 一致性。

裁定权在 R1/契约持有席,本岗不自行摘除——与「V 编号改名权不在本岗」同款纪律。


二、② 第四幕重核:PASS-附条件(4.5 → 5 项全有结论)

#上轮本轮依据(脚本/证据锚点)
4.1BLOCKED✅ PASS-附条件check_335_isolation_v2.py:端点级 9/9 真 PASS(AST 拼真实路由 371 条做存在性硬校验,9 条 200/404 端点全部路由存在且组合正确)
4.2PASS-附条件✅ PASS(真)04-biz/v8-count.txt = 1 ⇒ 落库恰好 1 行,幂等的定义性断言补齐
4.3PASS-附条件✅ 维持A 级 6/8;N4/N7 = BLOCKED-环境依赖(fail-closed 正行为)
4.4BLOCKED-无证据✅ PASS04-biz/n4.txt 实测 401「缺少微信验签头」+ request_id=fd2ff58cd1c0 ⇒ fail-closed 成立
4.5PASS-附条件✅ 维持路由 426/孤儿 0/ERROR 0/R2=0 R3=0(证据位错放 05-gates/,维持附条件)

2.1 4.4 附带确认:上轮报的 P0 沙箱旁路已闭环

sandbox_flag = _is_sandbox()   # 原为 body.get("sandbox") or _is_sandbox()

静态复核:miniapp_pay.py:130 已改为只认服务端配置,注释明确标注「原 body.get("sandbox") 旁路=任意请求可跳验签——P0 修复」⇒ 我上一轮报的「请求体可控的验签旁路」销项。

2.2 🔴 4.1 仍有一处必须交代(不然附条件不能摘)

check_335_isolation_v2.py 输出:域级覆盖 12/13,缺 miniapp_distribution。

v1 矩阵里该域是 /api/miniapp/distribution/profile 双端 403/403(我上轮判 NOSIGNAL);v2 里这一行被整行删除,而不是标注处置。R1 的注释写「波波复核 2 假阳性已剔除」——但我剔除的是路由不存在的两条(/api/miniapp/admin/orders、/api/miniapp/admin/distribution/overview),miniapp_distribution 属 NOSIGNAL,不属假阳性,不应静默删除。

⇒ 附条件:把 miniapp_distribution 补回矩阵并给二选一处置:①复测出真差异;②显式记 N/A 并写明理由。「判不过就删行」不能作为收口手段。

另:merchant_console 双端 403/403 判 N/A-另证(既不作隔离证据、也不作穿透证据),R1 已声明「写路径隔离另证」⇒ 请指明该另证的证据位,否则仍是开口。

附带一条格式建议:isolation-matrix-v2.csv 末尾的 # 注释行会被 csv.DictReader 当数据行解析(本岗脚本已观察到),建议移出数据区或改放 README,否则下游解析都会多出一行伪域。

三、③ 五幕复判:BLOCKED,只差 AG 门

3.1 E 门:PASS-附条件 → 附条件已销(不阻断)

R1 销项#11 给出 E1 书面处置:过渡期以 4.2 V8 实测替代(v8.txt + v8-count.txt),补检查项排期给契约持有席。

⇒ 满足剧本 §5「未出书面处置不得放行」的书面处置要求 ⇒ 转 PASS-附条件(不阻断 335)。

E7 余 9/224 作为观测项持续跟踪(不阻断)。

3.2 V 门:PASS-附条件(不再是 BLOCKED)—— 本轮最大进展

关键点:不一律按「证据位零落盘」判 BLOCKED,而是逐项核已落盘的等效证据。

VG7裁定等效证据锚点
V1G7-1PASS-附条件D1-D10 映射在库(G7 草案 §三 + P1-验收台账去重-v1.md 对照表);证据位 00-gate/v1-mapping.md 未落 ⇒ 按「引草案登记」处理
V2G7-2PASS-附条件4.3 黄金路径 8 节点=用户任务链,A 级 6/8 成立;N4/N7 环境依赖
V3G7-3PASS-附条件02-config/第二幕a端消费侧核对-二号.md(二号 367)+ 2.3b 消费侧实跑
V4G7-4PASS-附条件357 复核九例(evidence/ba/357/)+ N1b/N1c 实测;N1 判 N/A-附条件(366 切换审计未落地)
V5G7-5PASS-附条件G7-5 首轮真值在 00-gate/00-一幕环境基线.md §4(凭证关联率 40/40、完成率 0/1 基线点);阈值待二号拍板
V6G7-6✅ PASS(release 实测转绿)见下
V7G7-7签字环节不入自动幕
V8G7-8PASS-附条件05-gates/consumption-ruling.md 逐处裁定 9 处 + 05-gates 落盘齐全;小齐 acceptance_gate 接入仍待

V6 双闸门实测(本次真跑):

$ python3 scripts/gate_check.py release
上线闸门:模块 5 个 / 未登记责任人 0 个   → PASS:全部模块责任人已登记
$ python3 scripts/gate_check.py replication
复制闸门:旺季复盘=false 全年贡献核算=false 当地责任人=空 → FAIL

3.3 门-ID 一致性:PASS-附条件(维持)

05-gates/naming.md 三张对照表已落,满足剧本「否则判 BLOCKED」的豁免条件。

3.4 五幕结论

门上轮本轮
E1-E8PASS-附条件✅ PASS-附条件(E1 书面处置已销,不阻断)
AG1-AG6BLOCKED🔴 BLOCKED(本定案已给,待实施)
V1-V8BLOCKED(含 V6 双 FAIL)✅ PASS-附条件(V6 release 实测转绿)
门-IDPASS-附条件✅ 维持

⇒ 五幕 = BLOCKED,唯一硬缺口=AG 门。


四、转 PASS 的精确条件(二选一,满足即放行六幕)

路径动作责任席预计
甲(推荐)R1 裁「AG 门列独立验收线、不阻断 335」R1/契约持有席一句话
乙按 §1.2 规格改门候选路径并复跑至无 BLOCKED契约持有席/小齐约 10 分钟

另需并行(不阻断,但六幕前要有说法):

  1. 4.1 补回 miniapp_distribution(复测或显式 N/A 理由)
  2. merchant_console 指明「写路径隔离另证」的证据位
  3. 373 把 V1-V5/V8 六份证据位落到 05-gates/v{N}-*.txt(本轮以等效证据裁定,证据位仍应归位)
  4. 门槛 6 待刘总最终确认 owner

五、六幕说明

R1 销项#10 已显式裁定本轮不退场(t_demo 保留至复判转 PASS)。本岗附议:退场是演练结束动作,五幕未 PASS 前执行等于销毁证据环境。

⇒ 复判转 PASS 后,六幕 6.1-6.6 由 R1 + 小齐执行,本岗收证据后按四态复核。

六、边界声明

-- 署名:波波(验收官)2026-09-17 10:2x | HEAD f9fb83db