裁定时间: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 门。
| 方案 | 内容 | 裁定 |
|---|---|---|
| A | 六包各建 white-label/<包> 七件套目录 | ❌ 不采 |
| B | 改 acceptance_gate.py 的候选路径,对齐现行交付惯例 | ✅ 采 |
不采 A 的三条理由:
docs/delivery/acceptance/*、docs/contracts/*、docs/delivery/evidence/3XX,新建 white-label/ 后两套路径并存,必然再次漂移(这正是 V 系编号冲突的同款根因)。miniprogram-v2/docs/structure/,该域 pre-receive 属主为冈子,建目录也落不进去。采 B 的前提(防判据降档):
PARTIAL 态,把「零交付」与「有交付但七件套不齐」分开——当前四态把两者都记 MISSING,是本门最大的判据缺陷。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 内改判存在性):
| 七件套 | 目录模型(旧) | 文件级映射(新) |
|---|---|---|
| design | design.md | *设计*.md/*design*.md |
| contracts | contracts/ | docs/contracts/*.md(包相关契约) |
| examples | examples/ | *样例*/*example*/*.json |
| checks | checks/ | scripts/check_*.py(包相关校验器) |
| acceptance | acceptance.md | docs/delivery/acceptance/3XX-*.md |
| evidence | evidence/ | docs/delivery/evidence/3XX/** |
| handoff | handoff.md | docs/handoff/* |
并新增:resolve() 返回 None 时记 MISSING(零交付);命中目录但映射缺 ≥1 类时记 PARTIAL。
⚠️ 本岗不代改他岗门的实现(与上轮「不代改他岗编号」同款纪律)。以上为可执行规格,实施属主=契约持有席/小齐;本岗收到后 5 分钟内复跑复核。
AG 门评的是「六个白标化交付包的完整性」,与 335「端到端演练链路是否跑通」不是同一对象。
建议:AG 门列为独立验收线(有自己的签字表与销项节奏),335 放行判据只取 E 门 + V 门 + 门-ID 一致性。
裁定权在 R1/契约持有席,本岗不自行摘除——与「V 编号改名权不在本岗」同款纪律。
| # | 上轮 | 本轮 | 依据(脚本/证据锚点) |
|---|---|---|---|
| 4.1 | BLOCKED | ✅ PASS-附条件 | check_335_isolation_v2.py:端点级 9/9 真 PASS(AST 拼真实路由 371 条做存在性硬校验,9 条 200/404 端点全部路由存在且组合正确) |
| 4.2 | PASS-附条件 | ✅ PASS(真) | 04-biz/v8-count.txt = 1 ⇒ 落库恰好 1 行,幂等的定义性断言补齐 |
| 4.3 | PASS-附条件 | ✅ 维持 | A 级 6/8;N4/N7 = BLOCKED-环境依赖(fail-closed 正行为) |
| 4.4 | BLOCKED-无证据 | ✅ PASS | 04-biz/n4.txt 实测 401「缺少微信验签头」+ request_id=fd2ff58cd1c0 ⇒ fail-closed 成立 |
| 4.5 | PASS-附条件 | ✅ 维持 | 路由 426/孤儿 0/ERROR 0/R2=0 R3=0(证据位错放 05-gates/,维持附条件) |
sandbox_flag = _is_sandbox() # 原为 body.get("sandbox") or _is_sandbox()
静态复核:miniapp_pay.py:130 已改为只认服务端配置,注释明确标注「原 body.get("sandbox") 旁路=任意请求可跳验签——P0 修复」⇒ 我上一轮报的「请求体可控的验签旁路」销项。
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,否则下游解析都会多出一行伪域。
R1 销项#11 给出 E1 书面处置:过渡期以 4.2 V8 实测替代(v8.txt + v8-count.txt),补检查项排期给契约持有席。
⇒ 满足剧本 §5「未出书面处置不得放行」的书面处置要求 ⇒ 转 PASS-附条件(不阻断 335)。
E7 余 9/224 作为观测项持续跟踪(不阻断)。
关键点:不一律按「证据位零落盘」判 BLOCKED,而是逐项核已落盘的等效证据。
| V | G7 | 裁定 | 等效证据锚点 |
|---|---|---|---|
| V1 | G7-1 | PASS-附条件 | D1-D10 映射在库(G7 草案 §三 + P1-验收台账去重-v1.md 对照表);证据位 00-gate/v1-mapping.md 未落 ⇒ 按「引草案登记」处理 |
| V2 | G7-2 | PASS-附条件 | 4.3 黄金路径 8 节点=用户任务链,A 级 6/8 成立;N4/N7 环境依赖 |
| V3 | G7-3 | PASS-附条件 | 02-config/第二幕a端消费侧核对-二号.md(二号 367)+ 2.3b 消费侧实跑 |
| V4 | G7-4 | PASS-附条件 | 357 复核九例(evidence/ba/357/)+ N1b/N1c 实测;N1 判 N/A-附条件(366 切换审计未落地) |
| V5 | G7-5 | PASS-附条件 | G7-5 首轮真值在 00-gate/00-一幕环境基线.md §4(凭证关联率 40/40、完成率 0/1 基线点);阈值待二号拍板 |
| V6 | G7-6 | ✅ PASS(release 实测转绿) | 见下 |
| V7 | G7-7 | 签字环节 | 不入自动幕 |
| V8 | G7-8 | PASS-附条件 | 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
docs/plans/gate-data/模块责任表.yaml 已落 owner),剩刘总最终确认。05-gates/naming.md 三张对照表已落,满足剧本「否则判 BLOCKED」的豁免条件。
| 门 | 上轮 | 本轮 |
|---|---|---|
| E1-E8 | PASS-附条件 | ✅ PASS-附条件(E1 书面处置已销,不阻断) |
| AG1-AG6 | BLOCKED | 🔴 BLOCKED(本定案已给,待实施) |
| V1-V8 | BLOCKED(含 V6 双 FAIL) | ✅ PASS-附条件(V6 release 实测转绿) |
| 门-ID | PASS-附条件 | ✅ 维持 |
⇒ 五幕 = BLOCKED,唯一硬缺口=AG 门。
| 路径 | 动作 | 责任席 | 预计 |
|---|---|---|---|
| 甲(推荐) | R1 裁「AG 门列独立验收线、不阻断 335」 | R1/契约持有席 | 一句话 |
| 乙 | 按 §1.2 规格改门候选路径并复跑至无 BLOCKED | 契约持有席/小齐 | 约 10 分钟 |
另需并行(不阻断,但六幕前要有说法):
miniapp_distribution(复测或显式 N/A 理由)merchant_console 指明「写路径隔离另证」的证据位05-gates/v{N}-*.txt(本轮以等效证据裁定,证据位仍应归位)R1 销项#10 已显式裁定本轮不退场(t_demo 保留至复判转 PASS)。本岗附议:退场是演练结束动作,五幕未 PASS 前执行等于销毁证据环境。
⇒ 复判转 PASS 后,六幕 6.1-6.6 由 R1 + 小齐执行,本岗收证据后按四态复核。
docs/ 与 scripts/;未改任何业务代码,未改他岗门的实现**(AG 门只给规格不给改码)。gate_check.py 为本地实跑(hostname 192.168.1.20),未伪造机位回显。-- 署名:波波(验收官)2026-09-17 10:2x | HEAD f9fb83db