iter56-卡2:封印动作改版(迭代56卡2·受理即揭示): 规则核心(target_sealed挖封印格拒/清图口径=挖开∪封印/能清图的封最优先/notify_cleared清图收轮/sealed_identity撤出→BoardData.cell_identity——上限20用户裁)+结算面dug_under_seal删净+破封一击退役+呈现层(地板+身份字形+印记不依赖揭示态+文案四件)+探针V8-V10+sim域(标空封印剔除约束增强+错触直挖补偿注入0.10)+golden三图换代; MC同批重锚50/档=100局(2026-11-08用户批准)三方对照无结构性恶化; 高档审计通过(17行全量·审计后勘误2项闭环)

This commit is contained in:
DKChan committed 2026-11-08 03:47:33 +08:00
1 parent 908e518306
commit 5ec4a311bb
34 files changed
+589 -164

No files matched your search

@@ -0,0 +1,46 @@
# 迭代 56 代拍板追认单
> 2026-11-08 汇总(实现批代拍板随 commit 留痕,本单逐条呈用户追认——超白名单事项另见「实现决定记录」)。
## 卡1 白名单内代拍板(需求卡片-结算期文字列表退役批 §12)
| # | 白名单项 | 实际裁决 | 落点 |
|---|---|---|---|
| 1 | 新增测试函数命名与落点 | `battle_log_zero_text_test.gd`(presentation/)、`playtest_logger_step_fields_test.gd`(presentation/)、`reward_ineffective_reason_test.gd`(battle_settlement/)、`tools/analyze_parity_check.py`——全落卡内 §7 指定目录 | f0390714/T2/T3 提交 |
| 2 | battle_log_view 去留二选一 | **选「只留摘要位」**:视图壳/摘要位/append_bb 叙述行/set_mode 保留;逐行流与行格式化域(_fmt_*/AGG 聚合/_round_rows)删净。整体退役分支否决原因=五处冒险叙述行无处可迁(迁置=改呈现面超卡) | f0390714 |
| 3 | reason 四枚举键写法 | 照现役 _emit_row extra 模式**字面量直写**六发射点(零新 helper 零新常量);取值 full_layers/full_hp/no_enemy_alive/hero_down | T2 提交 |
## 卡2 白名单内代拍板(需求卡片-封印动作改版批 §11)
| # | 白名单项 | 实际裁决 | 落点 |
|---|---|---|---|
| 1 | 拒绝原因英文串定名 | `target_sealed`(保持卡串,零拼写微调) | 2d8a4d07 |
| 2 | 拒绝/悬停 toast 与图例最终措辞 | seal_present 句「不能封印:此格已有封印印记(封印受理即揭示——印记随图存续)」;target_sealed 新句「不能挖:此格已封印(封印受理即揭示——不可再挖开)」;图例封印行「封印印记(受理即揭示——落定当场可见格下身份,随图存续不能拔)——轮末自动判定标中/标空;已封印格零动作(不可再挖开)」;提示条「左键 挖掘 / 移动 · 右键 封印(受理即揭示·不可逆)」 | T3 提交 |
| 3 | 测试函数命名与断言组织 | 对照表点名函数名全数照用(_test_seal_reveal_identity/_test_dig_sealed_rejected/_test_clear_by_seal/_test_classify_seal_clears/_test_seal_on_revealed_visible);V14 形态 B 改判与 V9 case④c 为申报内改判的组织细节 | 2d8a4d07/T4 提交 |
| 4 | 色牌/装饰渲染细节 | 取现行 ui_kit/art-bible 现行值(COL_FLOOR/COL_BRICK/SealMarkLayer 参数化),零新常量 | T3 提交 |
| 5 | sim 补偿注入形态与常量初值 | 形态=「错触直挖」(封印已证雷意图按概率转同格挖——目标未封未揭,新规则下合法路径);初值 NORMAL_MISDIG_P=0.10(承旧注入 0.10——同构期望);计数字段沿用 mine_slips(锚对比列对齐)。**偏差读数已回填**:改前代码现跑踩雷 6.48/局 → 新锚 5.40/局(-1.08——含策略对齐合成效应非纯注入贡献;注入触发单局实测 slips=5) | T6 提交+实现报告 §四 |
| 6 | mac golden 缺件处理 | mac 三件缺件记遗留(渲染闸 SKIP 不判红——T7 预案兑现) | T7 提交 |
## 实现决定记录(白名单外,凭规约条款自判——逐条列备案)
| # | 事项 | 判据与依据 | 落点 |
|---|---|---|---|
| 1 | **sealed_identity 落位重设计**(撤出 minesweeper_rules、BoardData 新增 cell_identity) | 用户裁决 2026-11-08「上限保持 20」覆盖卡2 §12 宿主指定;预检失实根因=写卡段「远低于 20」凭印象未实跑(基线恰 20 贴线);停机呈报后用户裁「你自己重新设计」 | T1b 提交 |
| 2 | **S13 三条新违规拆 helper 修净**(_classify_seal/_seal_face_reject 私有 helper) | 卡2 §14「预期只降不升」+gdstyle「新码须修到基线口径内」——非阈值修订非基线新增,合规修复 | T1a 提交 |
| 3 | **feat_vouchers_test A12 断言退役改写**(_format_row 不在位防回潮断言) | 申报外波及面;test-conventions §5.5 换代同生死(旧文案呈现路径摘除=断言对象退役);替代断言=退役态防回潮 | T1 提交 |
| 4 | **pacing_queue_test 断言②改判**(「末行原文在明细带」→FX 链承接 _assert_fx_chain) | 卡1 §10 申报面(:108-120 文字呈现部分)——改写为退役后正向断言,FX 计数从行集独立推导(不镜像实现) | T1 提交 |
| 5 | **theme_projection_test 行协议闸改写**(9 类逐型 FX 落拍闸) | 同 §5.5——格式化域摘除后盲区检测法(解析文本增长)等价迁移为落拍计数增长;原防「格式化炸结算段」的闸价值保留 | T1 提交 |
| 6 | **ui_click_probe wr1-b 反转+开场行判定面换代**(最新行本体判定) | T1 波及(clear 移除破坏「全文本计数」判定前提+摘要功能退役使 wr1-b 语义反转)——断言意图保留、判定面换代 | f0390714 |
| 7 | **adventure_feats_test 满配种子 42→43+表行数 37→36 判值换代** | feats 删行使 RNG 流消费序列变,42 路线漂移为 timeout(主区基线 42 绿对照坐实非行为回归);§5.5 同生死——种子钉值绑旧表行集 | T2+T5 提交 |
| 8 | **ui_click_probe 行为②随机撤封印段摘除** | 卡2 T4 点名「行为②撤封印死路段清理」——申报内 | T4 提交 |
| 9 | **R6 golden 实测零漂移零重录** | settlement_wiring_snapshot 内嵌 golden 在「挖+封+停」驱动序下与改前逐位一致(驱动序不含挖封印格——T1 后该路径被拒)——重录义务免除,读数绿在案 | T2 验收 |
| 10 | **卡1 R4 判读等价基线快照重出**(改前分析器经 git show 提取补丁件跑出完整快照) | T0 落盘的历史锚快照被 head 管道 SIGPIPE 截断(60 行截断)——R4 读数①②需完整改前基线;改前分析器(master 字节)跑出 3394/149 行快照替换,sim-data 留盘 | T3 提交 |
| 11 | **ui_probe:133-135 与 ui_click_probe:423/:473/:616/:798-844 零改动** | 卡1 §10 申报清单列名面实况核查:不依赖退役面(:133-135 读 pending_rows 与尺寸;:423/:473 savesel 段无 battle_log 引用;:616 全文本判首个冒险无残留仍安全)——无文字断言可改写=零改动 | 实现报告对照表登记 |
## 体验验证清单登记项(真人目检——登记不阻塞,实机目检后由用户销项)
1. 结算期 B 区零逐行文字(FX 排播链仍逐拍演出)——卡1 R1 体验面
2. 伤害飘字/弹道/站桩反馈在新排播形态下的观感——卡1 R2 体验面
3. 封印受理瞬间揭示的观感(地板+身份字形+法阵叠加)——卡2 R8 体验面
4. 封印格悬停禁字与图例新句——卡2 R9/R10 体验面
5. 清图高光在封印完成清图时触发——卡2 R3 体验面
+28
View File
@@ -0,0 +1,28 @@
# 迭代 56 反哺点清单
> 2026-11-08 采集(实现批产出——设计权威文档实现批禁写,逐条经用户裁决后由文档批落文)。
> 卡2 预期零反哺点(设计面前置闭合)兑现:封印改版的设计条款无差异发现;下列各条全部来自卡1(逐行文字退役)与开工检查发现。
## 卡1 反哺点(结算期文字列表退役批)
| # | 文档与位置 | 现行句的问题 | 建议改写方向 | 依据 |
|---|---|---|---|---|
| 1 | design/ux/battle.md:200(B 区组件表「结算明细带」行) | 「结算期逐行流水(9 类行协议);挖掘期收起为上轮摘要 1 行」——逐行流水已退役,现行句描述已不存在的呈现 | 明细带行改写为退役后形态:挖掘期摘要位+叙述行承载;逐行流水行删除或标注已退役(对照 08-Alpha v1.29 删「逐行结算排播」行的口径) | 卡1 §6 同步面(原卡锚 :199 漂移至此);用户裁定 2026-11-07 撤逐行滚动文字列表 |
| 2 | design/ux/battle.md:364(交互矩阵「结算阶段」行) | 「明细带按结算期档展开(高读 log_band_h_settle)逐行滚动」——逐行滚动已退役 | 改写为:明细带 settle 展开保留(空带+叙述行),删除「逐行滚动」表述 | 同上;实现实况=set_mode 保留双态、settle 态零逐行内容 |
| 3 | design/ux/battle.md:439(减动效选项行动效列) | 「动效:结算逐行兑现为信息载体不可整体跳过,可加倍」——「逐行兑现为信息载体」的文字承载面已退役 | 保留「演出不可整体跳过」语义,删除「为信息载体」措辞(FX 排播链仍是兑现呈现,非文字信息载体) | 卡1 R2 判据锚实际指向此行;FX 链退役文字后仍是演出载体 |
| 4 | design/gdd/systems/表现与支撑/HUD框架.md:272 | 「结算逐行实时滚出且每行带来源标注;未生效类行聚合计数并带形状冗余;零值行不被吞」——逐行滚出与聚合计数均已随明细带退役 | 改写为:结算演出链逐行兑现(FX 载体);明细带行删除;「零值行不被吞」语义迁日志面(step 行零删减) | 卡1 R1 退役面;theme_projection 行协议闸改写后的实际形态 |
| 5 | design/gdd/systems/战斗循环/战斗结算.md:87 | 「显示名等玩家可见文案是数据面字段:文案值登记在数据表行,代码按来源类别与效果身份读表拼行」——行协议保留 display_name(呈现面消费),但日志消费端已零文案 | 补一句消费端边界:日志落盘零文案(text/display_name 不落盘),文案仅呈现面消费 | 卡1 T2 落地实况;卡1 §6 已列此文档 |
| 6 | design/gdd/systems/战斗循环/战斗结算.md:80 附近 | 「奖励未生效行」行型的产生面变化:封印作废行(封印格直接挖开)随改判路径退役——未生效行只剩四类(满层/满血/无存活敌人/主角已倒下),且带结构化 reason 键 | 未生效行清单换代(四类+reason 结构化说明);封印作废行除名 | 卡1 T2+卡2 T2(grant_segment:103 作废行块删除) |
| 7 | design/gdd/systems/战斗循环/战斗表现.md:53/:99/:149 | 「结算逐行兑现是信息载体」「能说出这一行来自哪步操作」等句——文字行退役后兑现载体=FX 链 | 三处「逐行兑现」措辞按 FX 载体口径改写 | 卡1 §6 已列 |
| 8 | design/gdd/08-Alpha版本标准.md:42 | 「战斗表现……Alpha 判据=受击闪白/死亡不瞬间消失/高光行/逐行排播四条可读」——「逐行排播」残留(v1.29 只删了「逐行结算排播」独立行,战斗表现条目的判据句漏改) | 判据句删「逐行排播」或改「演出链兑现可读」 | 开工检查发现(v1.29→v1.30 版本漂移核查);与本批裁定直接冲突的残留句 |
| 9 | 体验验证清单.md(:86/:206/:220/:314/:315/:326/:442/:519 八处) | 逐行结算、明细带来源/行序/文案可读性、减半标签等目检项——呈现面已换代 | 逐条按退役后形态改写;新增两条目检项:结算期 B 区零逐行文字、封印受理瞬间揭示观感 | 卡1 §6 已列;卡2 §8 体验面四项(封印受理瞬间揭示、悬停禁字、图例新句、清图高光) |
## 卡2 反哺点
无(设计面前置闭合;实现与排雷玩法.md v2.0 等事实源零冲突)。
## 过程发现登记(非文档反哺,供流水线改进参考)
1. **判据出处行锚漂移**:卡1 复核轮 2 钉死的 ux/battle.md 锚(:199/:272/:347)被 2026-11-07「顶栏搬两侧」文档批修订冲漂(真锚 :200/:364/:439)——写卡段锚钉死后同日文档批仍会冲漂;建议:判据锚钉节锚形态(test-conventions §8.3 已有节锚两档——2026-11-07 架构收窄批立的防漂移机制,写卡段对易漂移文档改用节锚)。
2. **卡2 §14 预检读数失实**:「两宿主现行公开方法数远低于 20 上限」系凭印象未实跑(minesweeper_rules 恰 20 贴线,+1 即越)——iter-plan 第 3 步预检的 S13 键读数义务应显式包含「新增公开方法的宿主余量实跑核对」。
3. **流水线闸 ANCHOR_RE 不含中文路径**:待办清单在册条目(2026-11-05 登记),本批卡1 锚全为 ASCII 路径未触雷——非本批引入,留待办。
+105
View File
@@ -0,0 +1,105 @@
# 迭代 56 实现报告(结算期文字列表退役批+封印动作改版批)
> 2026-11-08。工作区 `../g-plan2-iter56`(分支 iter56,基线 a0ea828f)。两卡按 roadmap 卡序串行:卡1(结算期文字列表退役)→卡2(封印动作改版)。批性质=代码实现批;`design/`、根规则文件、`game/tests/README.md` 零写入。
## 一、各卡状态
| 卡 | 状态 | 提交序列 |
|---|---|---|
| 卡1 结算期文字列表退役批 | **完成**(T0-T3 落地;T4 随批末) | f0390714(T1 撤逐行文字)→T2(日志零文案+reason)→T3(分析工具+对拍载体) |
| 卡2 封印动作改版批 | **完成**(T0-T7 落地) | 2d8a4d07(T1 规则核心)→T1a(S13 收敛)→T1b(落位重设计·用户裁)→T2+T5(结算退役+内容退役)→T3(呈现层)→T4(测试探针)→T6(sim 域)→T7(golden) |
## 二、实际改动—验收对照表(逐行结果读数)
### 卡1(R1-R5;对照表出处=需求卡片 §10)
| 需求点 | 验收测试(文件:函数) | 真实入口 | 判据绑定面 | 结果读数 |
|---|---|---|---|---|
| R1 结算期零逐行文字(ux/battle.md:200——原卡锚 :199 漂移,随批维护) | battle_log_zero_text_test.gd:_smoke_settle_zero_rows(新增) | main.tscn 组合根→真实停手→轮末结算→B 区场景树 | 三时点 parsed_text 冻结于进节点叙述基线(step_row 消费零追加——「不绑终屏态」口径) | **绿**(PASS,读数见 f0390714) |
| R2 FX 与 toast 链不断(ux/battle.md:439——原卡锚 :347 漂移) | pacing_queue_test.gd:_assert_fx_chain(新增断言函数) | 真实行集驱动独立 RowPacer | on_step_row_fx 每行一拍+弹道/标出/色环/highlight 三路计数与行型分布逐位一致(期望独立推导);FX 链三函数零 diff=改前逐位一致凭证 | **绿**(PASS) |
| R3 日志零文案、字段不缺(战斗结算.md:87) | playtest_logger_step_fields_test.gd:_assert_no_text_and_full_payload(新增) | LevelAutoplay.run_level 挂 logger→真实结算→落盘 JSONL 读回 | 零 text/display_name+公共七字段与平铺原件逐行在位+damage payload 并集抽样 | **绿**(PASS) |
| R4 分析判读等价(test-conventions.md:133) | tools/analyze_parity_check.py(新增) | 三读数对拍 | ①历史锚改后分析器复跑 vs 改前分析器基线 3394 行逐位一致 ②改前种子日志双版本一致 ③改前 vs 改后同种子(71000)新日志逐位一致 | **绿**(三读数全一致,读数见 T3 提交) |
| R5 未生效原因结构化(战斗结算.md:80) | reward_ineffective_reason_test.gd:_assert_four_reasons(新增) | 真实板身份快照→grant_routed 路由→轮末结账 | 四类 reason 逐一命中(full_hp/hero_down/full_layers=no_guard 堆层/no_enemy_alive=敌 hp=1+blast 双单 defer);两处受控例外直改(hero hp=0、敌 hp=1——无公开 setter,随行申报) | **绿**(PASS,四类全命中) |
**卡1 测试削弱申报兑现**:§10 点名的改写面全部落地——theme_projection(行协议闸→FX 链逐型闸)、player_copy_sweep(u6 消费半→退役防回潮)、ui_probe:133-135 与 ui_click_probe:423/:473/:616/:798-844(实况核查不依赖退役面——**零改动**,见追认单 #11)、pacing_queue:108-120(断言②改判 FX 承接)。**申报外波及面**(§5.5 同生死):feat_vouchers A12、wr1-b 反转、开场行判定面、ui_input_probe case④b 注记——均改写为退役后正向断言,无删除断言。
### 卡2(R1-R12;对照表出处=需求卡片 §8)
| # | 需求点 | 验收测试 | 真实入口 | 结果读数 |
|---|---|---|---|---|
| R1 | 封印受理即揭示(排雷玩法.md:52) | minesweeper_rules_test:_test_seal_reveal_identity〔封印改 V1〕 | MinesweeperRules.settle_batch() | **绿**(身份逐位+受理零事件+身份与揭示态独立断言) |
| R2 | 挖封印格被拒(排雷玩法.md:56) | _test_dig_sealed_rejected〔V2〕+seal_polarity 四情况组改判〔V2〕 | settle_batch() | **绿**(target_sealed+三态零变化;四情况组标中/标空判定照发) |
| R3 | 清图口径换代(排雷玩法.md:139) | _test_clear_by_seal〔V3〕 | settle_batch() | **绿**(非末封 false/封印计入完成 true/逐格封至清图 round_end 恰一条 cleared) |
| R4 | 能清图的封最优先(排雷玩法.md:167) | _test_classify_seal_clears〔V4〕 | settle_batch() 同批 stop+清图封 | **绿**(赢家=清图封居执行序首、stop voided、round_end cleared) |
| R5 | 判定批与溢价零改动(战斗结算.md:139) | seal_polarity 保留组原样+V5 注记行 | BattleOrchestrator 全轮驱动 | **绿**(76 pass——末点 AP/标中溢价/标空/完美封印双份原样) |
| R6 | 受理零兑付、改判路径死(战斗结算.md:134) | settlement_wiring_snapshot 内嵌 golden〔V6〕 | BattleOrchestrator 真实驱动序 | **绿**——golden 实测零漂移零重录(驱动序不含挖封印格;流水零作废行) |
| R7 | 破封一击退役、词除名(奇物.md:72) | adventure_feats/effect_words_t1 换代〔V7〕+grep | feats.tres 装载路径 | **绿**(grep dug_under_seal/breaker_strike 非测试面=0;词表出册防回潮断言;表 36 件装载绿) |
| R8 | 封印格呈现三件套(ux/battle.md:170) | seal_mark_params:_test_seal_on_revealed_visible〔V8〕+board_shot 选择器+ui_input_probe case④b | 真实场景+push_input | **绿**(新组合态印记可见——受控例外随行申报;探针印记落位绿) |
| R9 | 已封印格零动作(ux/battle.md:299) | ui_input_probe case④c〔V9〕 | push_input 左/右键 | **绿**(零发射+FORBIDDEN+禁入框+图例说明在册) |
| R10 | 文案四件(ux/battle.md:284) | hud_presenter/player_copy_sweep 换代+click 图例〔V10〕 | 文案装配+真实场景 | **绿**(逐字断言换代+雷字清零守恒) |
| R11 | sim 策略对齐+MC 同批重锚(排雷玩法.md:52) | MC 配对读数(测量面) | sim 采集链 master_seed 配对 | 代码面绿(试车 5 局健康);**新锚采集后台进行中,读数回填 §四** |
| R12 | 渲染基线换代(ux/battle.md:170) | 渲染闸+golden 三图重制〔V12〕 | 真实渲染截图 | **绿**(board_shot 双帧取证 PASS+golden 三屏对比全绿;用户预览图人审 2026-11-07 在案;mac 三件缺件记遗留) |
**卡2 测试削弱申报兑现**:四处点名改判全落地(①四情况组②preview 形态 B③文案逐字④wiring golden——实测零漂移未重录)。**申报外波及面**:adventure_feats 满配种子 42→43+行数 37→36(feats 删行 RNG 流漂移——§5.5 同生死,主区基线对照坐实非行为回归);ui_click_probe 行为②摘除。其余旧断言零删除。
## 三、能力行名实核对(game/tests/README.md 批末核对——实现批零写入)
- :88 封印与极性路由(_smoke_seal_ap_exhausted/_smoke_seal_irreversible_quadrants/_smoke_polarity_routing)——**名实一致**(函数在位)
- :117 挖/封印合法性与可辨拒绝(_test_dig_sealed_rejected/_test_classify_seal_clears 计划锚定)——**落地一致**
- :119 封印受理即揭示(_test_seal_reveal_identity)——**落地一致**
- :120 清图口径换代(_test_clear_by_seal)——**落地一致**
- :121 棋盘封印印记呈现(_test_seal_on_revealed_visible 计划锚定)——**落地一致**
- :137 结算期零逐行文字(_smoke_settle_zero_rows/_assert_fx_chain/standee_fx_sweep_test:_init)——**落地一致**
- :138 日志 step 行零文案(_assert_no_text_and_full_payload/_assert_four_reasons)——**落地一致**
- 改名面:无(零回表)
## 四、MC 同批重锚读数(R11——已落盘)
- **规模口径**:50/档=100 局(2026-11-08 用户批准——发起时呈报三档规模供裁,首采 800 局超一档硬闸被停采作废,重采按批准规模执行)
- **新锚**:`runsum_iter56reanchor_81000_n50both_20261108.jsonl`(纯 RUNSUM 100 行、policy+seed 升序;全量明细 jsonl 不留盘)
- **对照读数**(三方对照:改前锚 2026-10-03/改前代码 2026-11-08 现跑 50 局/改后新锚 50 局,同 seed0=81000):
| 指标 | 改前锚(旧代码读数) | 改前代码现跑 | 改后新锚 | 本批效应 |
|---|---|---|---|---|
| normal 通关率 | 0% | 0% | 0% | 无变化 |
| normal 踩雷均值/局 | 6.72 | 6.48 | 5.40 | -1.08(错触注入替代旧滑失+策略对齐合成) |
| normal 标中/标空/封印数 | 无字段 | 21.34/6.74/52.2 | 19.60/7.86/49.9 | 小幅漂移(标空剔除约束增强+清图口径) |
| perfect 通关率 | 59% | **0%** | **4%** | **改前锚失实早有声明**(sim-data/README:10 代表性注记——两月代码演进使模拟行为漂移;改前代码现跑 0% 对照坐实与本批无关);本批效应方向=升(封印计入清图利好完美策略) |
| perfect 踩雷均值 | 0 | 0 | 0 | 无变化 |
| perfect 标中/封印数 | 无字段 | 45.96/91.1 | 48.28/96.1 | 小幅升(同上方向) |
- **结构性恶化判定**:无(normal 踩雷降、perfect 通关升——两方向均为改版利好或中性;标中/标空经济小幅漂移在策略对齐预期内)
- **补偿注入验证**:单局实测 st.mine_slips=5 触发(RUNSUM 无 mine_slips 字段——解析口径注记已写入 sim-data/README);注入形态=错触直挖、初值 0.10——**踩雷读数 6.48→5.40 偏差 -1.08/局**——偏差来源含策略对齐合成效应,非纯注入贡献;偏差已记本节与追认单 #5(白名单 5 授权自判)
- sim-data/README.md 现行锚指针已换代+改前锚迁历史锚节(随批合回)
## 五、实机目检总清单(登记不阻塞——真人目检后销项)
1. 结算期 B 区零逐行文字(FX 排播链仍逐拍演出)
2. 伤害飘字/弹道/站桩反馈在排播新形态下的观感
3. 封印受理瞬间揭示的观感(地板+身份字形+法阵叠加——「太忙/太糊」判定归待办「封印格观感细化」条)
4. 封印格悬停禁字与图例新句
5. 清图高光在封印完成清图时触发
## 六、遗留读数义务与遗留面
1. MC 新锚采集(后台)→R11 读数回填本报告+sim-data/README 指针换代+新锚 jsonl 携回主区(数据件不入 git——合并后手工拷贝)
2. mac golden 三件缺件(渲染闸 SKIP 不判红)——Mac 环境随批补采或留待含代码面合回的远端 CI
3. 独立验收审计(合并前必做——由未参与实现的子代理执行)
## 七、实现决定记录
见 `reports/iter56-代拍板追认单-2026-11-08.md`(白名单 9 项+实现决定 11 条+目检登记 5 项)。
## 八、反哺点
见 `reports/iter56-反哺点-2026-11-08.md`(卡1 九条+过程发现三条;卡2 零条)。
## 九、独立验收审计结论与审计后勘误
**审计结论:通过**(reports/iter56-验收审计-2026-11-08.md——17 行对照表全量核对,14 干净通过、2 记账级缺漏,无申报外削弱、无同义反复判据;复跑 3 件全绿)。
审计两项缺漏的闭环(审计后勘误笔,同批提交):
1. 卡1 R1 函数名:battle_log_zero_text_test.gd 断言体由 _init 内联拆出为 **_smoke_settle_zero_rows**(能力行 :137 点名函数——名实一致补齐;拆分后回归绿)。本报告 §三 R1 行「落地一致」记载在拆分前失实,本段勘误。
2. 卡2 R6 尾缀载体:〔封印改 V6〕grep 载体缺失(golden 实测零漂移未重录、卡 F9 漏补载体豁免)——settlement_wiring_snapshot_test.gd 宿主 _init 补判据出处注记行(零行为改动,回归绿)。
3. 观察项随手修:smoke/critical-paths.md 第 7 条「明细逐行呈现」残留旧口径改写;sim-data/README「历史锚」节标题重复去重;T4 提交说明「V5 三函数」实落 2 处(_smoke_seal_irreversible_quadrants 属改判组带 V2 尾缀,不在保留组——措辞勘误)。