28 KiB
A2 排雷玩法规则 设计推演
状态:concluded · 本文只装"为什么"——
design/gdd/a2-minesweeper-rules.md(design 件)只收本文的结论。 修订时新增问题节,不删旧节(历史即依据)。OQ 编号与 design 件共用同一套。
问题:为什么数字与事实流必须恒真、拒绝必须可辨?
广度分析
- 候选 A:信息诚实(数字恒真透传、拒绝携带可辨原因)——收益:玩家推理可兑现,"我算对了"成立;代价:呈现层不能以"隐藏"修补规则缺陷,规则层工作量前置。
- 候选 B:战争迷雾式数据隐藏(数据层也不给真值)——收益:实现宽松;代价:P1"每一步都算数"直接死亡,连锁与推理失去地基。
- 候选 C:弹性/含混提示(拒绝不给结构原因)——收益:文案自由;代价:玩家无法分辨"须先拔旗"与"非相邻",拒绝体验含混 = P1 死亡体验。
深度分析
本作 P1 支柱的执行面是"系统回应的每一格都与玩家推演的一致"。数字提示是扫雷推理的唯一原料,雾格只是呈现层不显示——数据层若说谎,推理兑现即坍塌。反向护栏由此确立:任何"规则层说谎"的形态(数字失真、连锁静默变异分支、拒绝原因含混)默认砍掉;呈现层的隐藏必须以数据层恒真为前提。
综合判断
采用候选 A:digit 恒真透传(含雾格,仅 kind=safe 携带)、三源拒绝 + sub_reason 封闭枚举、事件发射规范序钉死。参考感受:Into the Breach 的信息诚实——拒绝你的规则从不含糊其辞。结论落 design 件:规则 1/2、三事件回边表、sub_reason 枚举、AC-19/20/22。
问题:为什么连锁算子必须与 A1 生成端度量同构,且零特判可行?
广度分析
- 候选 A:A2 连锁算子与 A1 F1 算子①逐字同构——收益:连锁放大推理的兑现与生成端可推理率度量同源,"连锁传播与生成端度量同构"成立;代价:两系统算子修订必须联动(metric_version 跳变)。
- 候选 B:A2 自写一套近似 flood fill——收益:实现自由;代价:玩家实际连锁规模与 A1 度量脱节,P1 兑现失真。
- 候选 C:为雾格/变异写运行期分支——收益:局部直观;代价:违反零特判,变异系统任何扩展都要回改 A2。
深度分析
同构论证逐点成立:R↔X 换名后触发谓词同(成员资格 ∧ 真实数字 = 0——禁读显示值,雾格显示空 ≠ 0 格)、传播目标同(8 邻安全格——雷永不入链)、封闭域同(S)、单调最小不动点语义同(次序无关性两侧成立——worklist 任意定序、结果唯一)。同构主张范围 = 算子①本身:A2 无算子②推导项,不主张 O = R∞。增量合法性引理:Cl 单调幂等 ⇒ 逐动作增量求值 ≡ 一次全量闭包(与 A1 生成期同值)。
零特判合规两臂:雾格恒非 0 由 VariationTable 跨字段校验承重 ⇒ "可被链开"与"永不传播"两个方向都是定理不是分支;旗格不入链是集合减法(∖ G)不是分支——旗是 A2 一等规则对象、非变异属性。A2 运行期旗非空时传播集排除旗格(连锁不越旗);双包含回验不受影响——回验只在 install 时点发生,彼时 G = ∅(同构域 = G=∅ 域的依据:A1 生成期与 A2 install/初始展开时旗集恒空,S ∖ G = S)。
综合判断
采用候选 A + C 的反面:F2 与 A1 F1 算子①在 G=∅ 域逐字同构,A2 代码零变异分支。结论落 design 件:F2 结论与公式、实现期红线 1/3/4。
问题:为什么初始展开必须恰等 R₀——不能外扩一环,也不能只开 3×3?
广度分析
- 候选 A:恰等 R₀(B3 ∪ flood 闭包)——收益:与 A1 求解器初始视野逐格相等,度量保真;代价:定义版权在 A1,A2 禁独立改动。
- 候选 B:外加一圈"安全边距"(外扩 1 环)——收益:手感更松;代价:破双包含臂①(展开域 ⊆ 排除域),可能开出变异格。
- 候选 C:只开出生 3×3——收益:保守;代价:破臂②(求解器初始态 ⊆ 展开域),A1 度量吃亏、回退口径触发。
深度分析
双包含回验两臂构造性成立:臂① R₀ ⊆ 排除域(以最终产物板计:出生 3×3 ∪ 闭包 ∪ 外扩 1 环)——给"不触变异"保证;臂② A1 求解器初始态 = R₀ ⊆ O₀ = R₀——恰等,给"A1 度量不吃亏"保证。两义务来源分开陈述:性质 1(恒不开雷 R₀ ∩ M = ∅)由 B3 无雷 + 闭包只收安全格独立可证,环内可有雷;"不触变异"则经排除域给出。恰等 ⇒ A1 回退口径(出生 3×3 最小态)不触发、度量保真零降级。
退化守卫(不变式④ R₀ ≠ S)的必要性由反例 B 证明(跨 GDD 阻断缺口):A1 现行布雷数下限 N ≥ 1 必要不充分——8×8 板 8 雷 placed、先布后删幸存 1 颗距离-2 雷 → 最终板全 0 格连通 → R₀ = S,且 A1 F4 断言 A(inferability=1.0)零拦截、N=1 参数行 100% 退化。登记义务 = A1 F5 legality 增 R₀ ≠ S(违例 = 该次尝试废弃重试,clearable 同款)+ F4 批量断言严格零 + Rule 4 排除域基准措辞按最终产物板计;A2 侧不变式④为纵深防御,双包含两臂不受影响。
综合判断
采用候选 A:O₀ = R₀ 恰等,显式不含外扩 1 环;不变式④ install 拒绝清图退化板(纵深防御,非 A1 clearable 闸复验——不可达安全格板 A2 照常运行)。结论落 design 件:规则 4、F3、实现期红线 2/5/6、跨 GDD 登记义务 A1-1/A1-2。
问题:为什么批次按语义序(清图挖 > 停手 > 其余)而非到达序仲裁?
广度分析
- 候选 A:朴素到达序——收益:直觉;代价:见下反例,直接违反 A3 Rule 3 优先级。
- 候选 B:固定语义序 C_dig ≺ C_stop ≺ C_other——收益:四组合与 A3 Rule 3 逐项一致;代价:玩家提交顺序不再决定结算顺序,须以"批次 = 单帧整批"心智理解。
- 候选 C:玩家指定优先级——收益:表达力;代价:UI 与规则复杂度爆炸,MVP 不需要。
深度分析
反例检验(语义序的存在性证明):朴素到达序下真值表 #4([dig耗, stop])产出 (ap_exhausted, RAP+0)——违反 stopped > ap_exhausted;#2([stop, dig清])吞掉清图高光——违反 cleared > stopped(EC10 同族缺陷)。语义序将两者校正为 (stopped, RAP+remaining) 与 (cleared, new_board)。
分类时点二态论证:排序用批次初态、胜者路径用结算时点真值;C_dig 成员最先执行 ⇒ 其二态恒重合;C_other dig 的二态可因前序 C_other dig 执行而分歧(其批内前缀不可能含 C_dig/stop——二者任一执行即收轮、C_other 全体 voided),分歧时按结算时点真值定胜者;该前缀无 stop ⇒ 与 A3 Rule 3(cleared > stopped)不可能冲突。
到达序无关性的收窄(定稿裁决):(path_tag, continuation_hint, AP/RAP 终值) 对任意到达序不变(全批域);执行/voided 划分的无关性仅对异类竞争成立(四组合真值表);同类多成员批内,执行成员、棋盘终态(旗位/小人位)与划分由类内稳定序(到达序)决定——不同到达序 = 不同输入,均为合法确定行为非缺陷(例:ap=1 下 [move, dig耗] 两意图均执行、[dig耗, move] 的 move voided 且小人位不同;[flag_place, dig耗] 旗入板、[dig耗, flag_place] 旗 voided);cell_revealed/旗事件流同理以到达序为规范序。类内序必须钉死的理由:未钉死会使事件流与奖励格归属漂移——规范性义务。
联合清图让位条款(显式设计后果):批内个体非清的 dig 联合可清图时,stop 仍先执行并胜出(C_stop ≺ C_other)——联合清图高光被停手让位。生产面在单意图帧提交下不可构造(D1 强制项⑥),F4 语义保留为防御性兜底,AC-10 义务不豁免。
综合判断
采用候选 B:语义序仲裁 + 类内稳定序 + 结算时点真值键控出口;voided(零棋盘效果/零扣费/零事件)与非法拒绝严格区分。结论落 design 件:规则 9、F4、四组合真值表、EC6/EC13/EC15。
问题:为什么挖开雷格不是死亡,而是可通行的"走过的伤疤"?
广度分析
- 候选 A:挖雷 = 轮次结束/死亡——收益:经典扫雷直觉;代价:一次失误抹掉整轮规划,与 P4"地牢下探"氛围冲突,且降级板上无兜底通路。
- 候选 B:挖雷 = 事实上报 + 格可通行——收益:雷成为"走过的伤疤",探索不被单点终结;代价:必须配套敌方优势计价,否则雷失去威慑。
- 候选 C:挖雷后封锁该格——收益:保留惩罚感;代价:制造不可达死区,与连通性保障冲突。
深度分析
采用候选 B 的计价论证:雷格通行是有价捷径——挖已知雷 = 花 1 AP + 给敌方送优势,经风险收益管线计价;是玩家主动抄近路的权衡,也是降级板上的兜底通路,不是免费通道。"被迫挖雷过路"的构图被生成期拦截——A1 clearable 闸按"安全格 8 邻接图"连通计,挖雷通路不计入,故不存在结构性强制过路费板。
综合判断
采用候选 B(GD-2 裁决,登记为工程债):kind=mine 事件、轮次不结束、格可通行、不计清图、同轮多雷各自独立事实。结论落 design 件:规则 11、EC10、AC-15。
问题:为什么剥夺经典扫雷的 chord 双击快开?
广度分析
- 候选 A:保留 chord——收益:肌肉记忆友好;代价:零 AP 快开稀释"每个决策都值得花一 AP"的预算意义。
- 候选 B:剥夺 chord,已开数字格 = 移动——收益:预算意义完整,点击语义单一;代价:怀旧玩家首遇预期违背,须教学提示补偿。
- 候选 C:chord 以道具/后期解锁形式后置——收益:两全;代价:引入新系统复杂度,MVP 不承载。
深度分析
本作保留经典扫雷连锁展开的"哗啦一片"的免费与瞬时(连锁本身仍免费),但剥夺 chord 双击——每个决策都值得花一 AP,快开是对预算意义的稀释。chord 缺席的兑付节拍补偿(标中旗即时兑现候选)归 B1/B4 高光兑现节点条目化(创意风险 #3)。这个"没有"是可验收的负空间:对外 API 封闭枚举里根本没有快开入口,将来谁想加就是接口漂移修订。
综合判断
采用候选 B(定稿):无 chord,点击已开格唯一含义 = 移动;chord 肌肉记忆首遇提示登记 D1 强制项③(非模态、每 run 一次,A4 先例)。结论落 design 件:规则 12、AC-4、覆盖矩阵"API 封闭枚举"行。
问题:为什么旗判定轮末统一批、且诚实重复上报?
广度分析
- 候选 A:插旗即判——收益:即时反馈;代价:旗位在轮内可变(拔/挪),即时判定会产出与终局旗位脱节的事实流。
- 候选 B:轮末统一判定批,基线 = 事务开始旗位——收益:判定与事件序契约(先旗后结束)统一,基线与到达序无关;代价:反馈延迟到收轮,须呈现层补偿。
- 候选 C:A2 侧去重(每雷只报一次判中)——收益:下游简单;代价:A2 越权裁决结算语义,"每雷实例至多兑一次"的资格键在结算侧。
深度分析
判定基线取"轮次结束事务开始时的旗位":被拔的旗不判、被 voided 的旗动作不留痕(无幽灵旗);语义序使基线与到达序无关(EC13)。行主序枚举保证确定性。旗留在雷上每轮诚实重复报判中——A2 只报事实,去重是结算侧的事(资格以雷格实例为键,A3 Rule 8/OQ5;B1 强制项③)。雾内旗恒判空是零特判的自然结果(雾区无雷),不是特判分支。
综合判断
采用候选 B:轮末统一判定批 + 诚实重复上报,去重归 B1/B4。结论落 design 件:规则 8、三事件回边 flag_judged 行、EC13、AC-12。
问题:为什么拒绝要分三源并携带 sub_reason 封闭枚举?
广度分析
- 候选 A:单一 reject 布尔——收益:实现最简;代价:玩家无法分辨"须先拔旗"与"非相邻",文案无从下手。
- 候选 B:三源 reject_reason + board_face 内 sub_reason 封闭枚举——收益:玩家语义数据可分,呈现层直接映射;代价:枚举即接口契约,批后修改 = 接口漂移。
- 候选 C:自由字符串原因——收益:灵活;代价:不可判定、不可本地化、不可测试。
深度分析
UX-1 裁决(批前免费窗口):"须先拔旗"与"非相邻"玩家语义截然不同的情形必须数据可分,故 board_face 携带 sub_reason 封闭枚举七值;目录外输入(越界坐标等)单列 out_of_catalog——debug 级诊断,不与玩家语义混桶、禁静默吞。三源(board_face/resource_face/phase)互异可判定,phase 源含装板违例 board_invalid 并列第四值。
综合判断
采用候选 B:reject_reason 四值 + sub_reason 七值封闭枚举;玩家面文案归 D1(映射源 = 枚举)。结论落 design 件:三源拒绝表、sub_reason 表、AC-21。
问题:为什么装板要四条不变式 fail-fast、且抗表重载靠生成期快照?
广度分析
- 候选 A:装板信任输入、不做校验——收益:代码薄;代价:违例板带病运行,错误在挖掘期以诡异形态爆发。
- 候选 B:装板当场验四条结构不变式、违例 fail-fast——收益:信任边界清晰,诊断恰一类别可测试;代价:产物构造方须守 schema。
- 候选 C:持数据表活引用、运行时随表——收益:热重载即时生效;代价:战斗中改表改变进行中的板行为,回放与确定性破裂。
深度分析
不变式④与其余三条性质不同:①–③是产物良构性,④是 A2 状态机良构性守卫(防"初始展开即整图"使轮次棋盘路径出口结构性不可达);生产面由 A1 legality 闸保证,④为纵深防御、非 A1 clearable 闸复验。产物只能经程序构造或 A1 产生,运行期不存在该输入源——故违例 = 程序构造错误,fail-fast + error 诊断是正确姿态(进程致命保留给数据通道)。
快照 vs 活引用:板持生成期变异快照,热重载改表行为零变化;A2 零表读取使抗重载为构造性(不是运行时防护,而是架构上没有读取路径);行为级代理验收 = 换根重放事件流逐位相同(AC-18)。
综合判断
采用候选 B + 快照:四条不变式 fail-fast(诊断封闭枚举)、生成期快照抗重载。结论落 design 件:规则 3、install 不变式表、EC2/EC8、AC-1b/AC-2/AC-18。
数值锚定与验算记录
F1 变量域与验算
| 变量 | 类型 | 范围 | 说明 |
|---|---|---|---|
| σ | 棋盘状态 | —— | (B, O, G) 三元组;B 由 A1 产物给定 |
| O(σ) | 格集 | R₀ ⊆ O ⊆ U | 已开集(含初始格、连锁格、已引爆雷格) |
| S(B) | 格集 | U ∖ M | 安全格全集(含雾格、含 R₀ 格、含不可达格) |
| rem(σ) | int | [0, |S|] | rem₀ = |S ∖ R₀|;rem=0 即 cleared 路径 |
- Output Range:cleared ∈ bool。Example:10×10 板、|S|=88、R₀=20 → rem₀=68;挖开末 1 安全格(chain_size=3 连锁)→ O ∩ S = S → cleared,A2 经
last_round_end外发 (cleared, new_board)。 - 求值点注:"批次 = 单一结算事务"指批次作为原子性单位,不改逐 dig 粒度,与 A3
request_dig按次调用上报的契约一致。
F2 变量域与验算
| 变量 | 类型 | 范围 | 说明 |
|---|---|---|---|
| c | 格 | U ∖ O | 挖掘目标(棋盘面合法性先行,规则 5) |
| O / O′ | 格集 | 见 F1 | 挖前/挖后已开集 |
| num(x) | int {0..8} | x ∈ S | 真实数字(非显示值——漂移风险见 design 实现期红线①) |
| chain_size | int | [0, |S|−1] | A3 request_dig 第一参数 |
| clears_map | bool | —— | 第二参数;≡ F1 cleared |
- Output Range:chain_size=0 ⟺ c 非 0 格或其安全邻已全开。Example:b_chain 板挖 (3,6)(0 格)→ 级联 13 格一次开尽墙下封闭区(雷墙与板底之间的口袋形安全区,下称"封闭区"),chain_size=13、clears_map 视余量而定;全程 ap 只扣首格 1。
- 同构主张范围 = 算子①本身(A2 无算子②推导项,不主张 O = R∞);同构域 = G=∅ 域(A1 生成期与 A2 install/初始展开时旗集恒空,
S ∖ G = S);双包含回验不受影响——回验只在 install 时点发生,彼时 G = ∅。
F3 变量域与验算
| 变量 | 类型 | 范围 | 说明 |
|---|---|---|---|
| B3 | 格集 |B3|=9 | ⊆ U | 出生 3×3(产物携带);小人出生 = B3 中心格 |
| R₀ = O₀ | 格集 | B3 ⊆ R₀ ⊆ S | 初始展开域;下界 9(无 0 格传播时) |
- Output Range:|R₀| ∈ [9, |S|−1](上端点被不变式④排除)。域非空前提:非空 ⟺ |S| ≥ 10——|S| = 9 的板必有 S = B3 ⇒ R₀ = S,由不变式④在 install 拒绝(EC1 同族),不产生运行态 R₀;现行 A1 参数域(W,H ≥ 8)下 |S| ≤ 9 仅程序构造板可达。
- Example:b_spawn 板(7×7、竖墙雷 6 枚):R₀ = x≥2 全安全格 35 格,臂① R₀ ⊆ 排除域(35 + 域外安全 8 + 环内雷)✓、臂② 测试侧朴素 BFS 重算逐格恰等 ✓。
- 义务来源分开陈述:臂①给"不触变异"保证(经排除域);"不触雷"由性质 1 独立给出(环内可有雷)。
F4 变量域与验算
| 变量 | 类型 | 范围 | 说明 |
|---|---|---|---|
| ⟨I₁,…,Iₙ⟩ | 意图序列 | n ≥ 1 | 到达序;∈ {dig, flag_place, flag_pull, move, stop} |
| class(I) | enum 三类 | —— | 排序类别(批次初态求值) |
| ω | 意图 ∪ {∅} | —— | 胜者;∅ = 轮次继续 |
- Output Range:(path_tag ∪ {无}, continuation_hint ∪ {无}, RAP 增量, 每意图 ∈ {执行, voided, 拒绝})。Example:ap=3、rem=1、批次 [stop, dig(末格)]:C_dig 先结算 → try_spend true、ap 3→2、事务内 cleared 胜出 → 外发 (cleared, new_board)、RAP+0;stop voided。到达序翻转结果逐项相同(真值表 #1/#2)。
- 胜者出口映射键控细节:dig 胜 ∧ 结算时点 clears_map=true → (cleared, new_board)、RAP += 0(剩余 AP 清零,A3 Rule 5)——C_dig 胜者恒满足;非清 C_other dig 可因前序 C_other dig 执行变清图,按结算时点真值入此行。C_stop 胜 → 先发 flag_judged ×N(基线 = 事务开始旗位,停手不改旗)→ 委托 A3.request_stop() → (stopped, same_board)、RAP += remaining_ap(1:1)。耗尽 AP 的 C_other → (ap_exhausted, same_board)、RAP += 0(不变式 remaining=0)。
夹具登记常数记录
- spawn 坐标为新增登记项——b_chain/b_fog = (3,2);按默认"板中心"读法该两板 B3 = {2..4}² 会含 y=4 雷墙雷、违反不变式①、板不可安装(已修正,复核义务见 OQ3)。
已裁决设计争议(速查)
| 争议 | 裁决 | 要点 |
|---|---|---|
| GD-1 连锁是否越旗 | 不越旗 | 传播集 ∖ G 是集合减法非分支;旗 = 1 AP 链阻断器(经典 flood 惯例);G=∅ 域与 A1 算子①同构不变 |
| GD-2 挖雷后果 | 事实上报 + 可通行(有价捷径) | 1 AP + 敌方优势计价;A1 clearable 闸拦截"被迫挖雷"板;工程债登记 |
| UX-1 拒绝原因形态 | sub_reason 封闭枚举 | 批前免费窗口定稿;registry a2_event_surface.api_surface 已同步 |
| 到达序无关性范围 | 收窄 | (path_tag, hint, AP/RAP) 全批域不变;划分序无关仅异类四组合;同类批内由稳定序决定 |
| 联合清图 vs 停手 | 停手让位清图高光 | C_stop ≺ C_other 的显式设计后果;单意图帧下生产面不可构造,AC-10 义务不豁免 |
| round_end 发射者 | 双发射源 | 棋盘路径 A2 发、stopped 路径 A3 直发、payload 同构;A2 禁双发 |
| 事件序 | flag_judged ×N 先于 round_end | 全收轮路径统一;停手不改旗位故基线等价 |
| 已引爆雷格 | 可通行 | 工程债(systems-index 门禁修正记录),AC-15 承载 |
| D1 义务范围 | ×1 → ×6 扩容 | stop 经 settle_batch / 格态可辨 / 悬停预承诺+chord 提示 / 雷格可读 / 路径呈现 / 单意图帧+voided+拒绝可感知 |
| 移动语义 | 瞬移 | 规则层一次事务落位;逐格动画归呈现层;路径序固定 8 邻行主序 |
开放问题
| # | 悬案 | owner | 时机 |
|---|---|---|---|
| 1 | 标错惩罚(偏离登记——实测义务保留,不阻塞设计):候选 = 敌方伏击 +1(标错旗在轮末判定 hit=false 时为敌方追加 1 层伏击;量纲随 B2 ambush 定稿联动);兼任双重职责(A3 OQ2):误标税 + 停手轮/死 RAP 态下旗滥用的唯一价格;一致性推论(上线时生效,无特判):雾内旗恒受罚(A4 EC5)、判定载体 = design 件 flag_judged.hit=false 事实流(B1/B4 消费,A2 零改动);惩罚重复性裁决项(实测会话前钉死):hit=true 兑付有去重(每雷实例一次,B1 强制项③),hit=false 惩罚无去重声明——按现行轮末判定载体,忘拔的错旗默认每轮 +1 伏击(5 轮 = +5),与一次性收益严重不对称;候选 = 随旗实例去重 / 显式接受每轮累计("流血"设计),须在原型实测会话前落定,防实测数据混淆"一次性过重"与"累积过重";落地动作:原型 v3 补丁实测(可与 v3 终验合并会话)→ 实测支持则修订 design 件(判定批扩展)+ registry,否决则关闭 OQ 并在 A3 OQ2 另定价旗滥用;A2 /design-review 须核对本 OQ 在位,缺位即 blocking |
用户 + 原型小补丁会话 | 垂直切片前置 playtest 合并会话前 |
| 2 | 事件外发载体与捕获 API(实现期 ADR 确认项):signal vs 回调注册、事件捕获断言面的落地形态——依赖事件捕获列表的 THEN(AC-1/3/4/5/6/7–10/12/13/15–20 的事件序列断言)为纸面契约,ADR 未确认前该子集不视为可执行(A1 缺口 G1"度量独立入口"同型);返回值/诊断/静态扫描类断言(AC-1b/2/11/14/16/21/22 及各 AC 的 reject 分支)不在此限、现在即可执行 | 实现期 ADR | Technical Setup |
| 3 | 夹具登记常数第二人复核:各板(spawn 坐标、R₀ 成员集/级联集/digit)手工推导记录入版本库后安排复核——推导错误即假失配/假通过(A1 OQ5 同型);spawn 坐标为新增登记项(b_chain/b_fog=(3,2)——默认中心读法产出不变式①违例板) | A2 /design-review | A2 评审 |
| 4 | A5 探测道具接口预留:显影(未开雾格数字显影)对 A2 查询面的需求形态——接口归 A5 GDD 定稿,design 件不预写(见 design 件依赖 A5 行) | A5 | 第 11 位 |
| 5 | D1 输入接线确认:stop 意图经 settle_batch 提交的接线义务(D1 强制项①)与单帧多意图的真实构造性——单意图帧输入收集已升格为 D1 强制项⑥登记约束(stop 点击终结当帧收集或等效;若 D1 保证单意图帧,四组合仲裁退化为结构不可构造——义务仍由 AC-10 冒烟承载、不豁免) |
D1 | 第 10 位 |
| 6 | 拔旗价目与旗滥用观测联动:flag_pull_ap_cost 复核与"停手轮旗动作占比"指标的 A2 侧观测量(旗动作批占比)——A2 零改动,遥测口径随 A3 复核会话对齐 |
A3 OQ2/OQ3 | 低优先 |
附录 A:义务台账与审计记录(历史审计,活契约见 design 件依赖与输出节)
门禁义务落位表(门禁评审逐项核对用映射,缺项即 blocking;义务本体在 design 件)
| 编号 | 义务 | 来源 | 承载位置 |
|---|---|---|---|
| 1 | A2×4 ① EC4 连锁开雾格(无数字+级联停止+计入清图+奖励入库) | A4 | 规则 6 + EC4 → AC-6 |
| 2 | A2×4 ② EC5 雾内旗恒不中(含标错惩罚一致性推论) | A4 | 规则 8 + EC5 → AC-12 |
| 3 | A2×4 ③ 开格上报携带变体标记 | A4 | 规则 2 + F2 注 → AC-6/18/20 |
| 4 | A2×4 ④ EC8 生成期变异快照抗表重载 | A4 | 规则 3 + EC8 → AC-18 |
| 5 | 双包含臂① A2 展开域 ⊆ A1 排除域 | A1 | 规则 4 + F3 → AC-3 |
| 6 | 双包含臂② A1 求解器初始态 ⊆ A2 展开域(恰等,回退口径不触发) | A1 | 规则 4 + F3 → AC-3 |
| 7 | 初始展开定义落点(免费/计入清图/无奖励) | A3 EC5 委派 | 规则 4 → AC-1 |
| 8 | round_end 棋盘路径外发 + payload 同构 | A3 Rule 9 | 规则 2/10 → AC-7/8/9 |
| 9 | EC4 批次四组合仲裁 + RAP 随胜者 | A3 EC4 deferral | 规则 9 + F4 + EC6 → AC-10 |
| 10 | 已引爆雷格可通行(工程债) | systems-index 门禁修正记录 | 规则 11 + EC10 → AC-15 |
| 11 | 标错惩罚以 OQ 登记(实测义务保留,不阻塞设计) | systems-index 偏离登记 | OQ1(/design-review 核对在位) |
双向一致性核对(定稿时点审计)
A2 ← A1, A3, A4 ✅(索引依赖分层)· B4 ← A2,B3,D2 ✅ · D1 ← A2,A3,B1 ✅ · D4 ← A2,B1 ✅ · D5 ← A2,A3,B1 ✅ · A5 ← A2,A4,B4 ✅ · D2 表"A2 无直接依赖" ✅——无单向遗漏。
定稿复核注记
lean 门禁下 systems-designer 起草 Formulas(F1–F4 + 反例 B 阻断缺口)、qa-lead 起草/验证 AC(23 条 + 覆盖矩阵 + 夹具坐标规格);creative-director 的体验锚点情绪定位与 art-director 的呈现一致性未经咨询——生产前人工复核(art-bible §1–4 须在 D1 GDD 前创建)。
附录 B:去向映射(零丢失可审计证据)
| 原文节/表 | 落点 |
|---|---|
| 头部块(状态/版本/承载支柱/层级/一句话) | design 头部块 |
| 头部复核注记(起草分工 + CD/art-director 未咨询) | 本文附录 A「定稿复核注记」 |
| 速览表·定位行 | design 设计目的 + 依赖与输出引言(TD-SYSTEM-BOUNDARY 回边/瓶颈系统) |
| 速览表·拥有/不拥有行 | design 系统范围(负责/不负责) |
| 速览表·上游输入/下游输出行 | design 依赖与输出双向表 |
| 速览表·硬约束行 | design 规则 1(四零禁令 + headless 可驱动) |
| 术语表(8 条) | design 事件面与枚举·术语表 |
| 体验锚点表 + 反向护栏 | design 设计目的(4 条承诺 + 护栏);论证与参考感受 → 本文问题 1/问题 6 |
| 全局流程·装板与挖掘期字符画 | design 核心循环 |
| 全局流程·批次结算字符画 | design 批次结算与收轮 |
| 全局流程·出口分发表 | design 核心循环·出口分发表 |
| 规则 1/2(含三事件回边表) | design 事件面与枚举(规则 1/2 + 三事件回边表) |
| 规则 3/4 | design 棋盘状态·装板与初始展开(规则 3/4) |
| 规则 5/6/7/8/11/12(含旗价目表) | design 动作规则(规则 5/6/7/8/11/12 + 旗价目表) |
| 规则 9/10(含批次类别表 + 四组合真值表) | design 批次结算与收轮 |
| 枚举节 5 表(字段值/三源拒绝/sub_reason/装板违例诊断/API 面) | design 事件面与枚举 |
| F1–F4 结论/公式/Variables/Output Range/Example | design 行为契约节(Example 验算数据 design 与本文数值锚定节双录) |
| F1–F4 推导论证(同构论证/增量引理/双包含证明/反例检验/无关性收窄/让位条款论证/域非空推导) | 本文问题 2/3/4 + 数值锚定与验算记录 |
| 显式排除声明(归属表) | design 行为契约·显式排除声明 |
| 实现期红线 ×6 | design 行为契约·实现期红线 |
| 状态节(板态/矩阵/四不变式/补充不变式) | design 棋盘状态·装板与初始展开 |
| 边界情况 EC1–EC17 | design 边界情况表;EC1 反例 B 详述 → 本文问题 3 |
| 依赖节·上游/下游表 | design 依赖与输出双向表 |
| B1 强制项 ×3 / D1 强制项 ×6 | design 依赖与输出(同名两表) |
| 门禁义务落位表 ×11 / 双向一致性核对 | 本文附录 A(审计映射;义务本体散见 design 各节) |
| 跨 GDD 新登记义务汇总(A1-1/A1-2/B1×3/D1×6/B1/B4×2) | design 依赖与输出·跨 GDD 新登记义务汇总 |
| 呈现与 UI 契约 ×14 | design 依赖与输出·呈现与数据供给契约 |
| Tuning Knobs | design 调参表 |
| 验收标准·测试口径/夹具板清单/AC×23/覆盖矩阵 | design 验收标准(编号不动) |
| 验收标准·out-of-scope deferral | design P1 / P2 后置表 |
| 开放悬案 OQ1–OQ6 | 本文开放问题(编号不动) |
| 版本历史 ×3 行 | design 版本历史(原样保留 + 追加 v2.0 迁移行) |