From c585a6bd73476316fb886d73440c7b69f240875b Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sun, 1 Nov 2026 06:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=8D=A1(=E5=8D=A1=E2=91=A5v1.0?= =?UTF-8?q?=E2=86=92v1.1=C2=B7grilling+godot-master=E5=8F=8C=E5=AE=A1?= =?UTF-8?q?=E5=90=8E=E6=89=A7=E8=A1=8C=E7=BA=A7=E8=AE=A2=E6=AD=A3):=20T0?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E8=B7=AF=E5=BE=84=E8=AE=A2=E6=AD=A3game/test?= =?UTF-8?q?s/static=5Fscan.sh+=E7=A6=81=E6=89=8B=E6=94=B9=E5=9F=BA?= =?UTF-8?q?=E7=BA=BF;=20T1=E8=A1=A5=E7=B1=BB=E5=90=8D=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=AD=A5(--editor=20--quit,=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E7=BA=AA=E5=BE=8B5)+ui=5Fmodals=E5=A4=B4=E6=B3=A8?= =?UTF-8?q?=E5=90=8C=E6=AD=A5+=E6=96=AD=E8=A8=80=E5=B0=BE=E7=BC=80?= =?UTF-8?q?=E8=90=BD=E7=82=B9=E6=AD=A5+=E5=A4=8D=E8=B7=91=E9=9D=A2?= =?UTF-8?q?=E6=89=A9=E6=94=B9=E6=8C=87=E9=9D=A28=E6=96=87=E4=BB=B6+?= =?UTF-8?q?=E5=8F=A5=E6=9F=84=E5=90=8C=E4=B8=80=E6=80=A7=E9=93=BE:108;=20V?= =?UTF-8?q?3=E5=88=A4=E6=8D=AE=E6=94=B9gate=E7=BB=BF+=E8=AE=A1=E6=95=B0=3D?= =?UTF-8?q?14=E7=95=99=E7=97=95+=E8=A7=82=E6=B5=8B=E9=9D=A2=E5=B1=80?= =?UTF-8?q?=E9=99=90=E7=94=B3=E6=8A=A5(=E9=97=B8=E5=AF=B914/15=E5=90=8C?= =?UTF-8?q?=E9=9B=B6=E5=91=BD=E4=B8=AD);=20=E5=A5=91=E7=BA=A62=E8=AE=A1?= =?UTF-8?q?=E6=95=B0=E5=8F=A5(=E8=BF=87=E6=B8=A1=E6=9C=9F=E5=90=ABoverlay/?= =?UTF-8?q?=E7=BB=88=E6=80=81=E5=85=AD=E6=9E=9A)+=E5=A5=91=E7=BA=A63?= =?UTF-8?q?=E6=B3=A8S13=E5=85=9C+2=E8=B5=B7+=E5=A5=91=E7=BA=A64=E8=A1=A5ov?= =?UTF-8?q?erlay=E9=9A=8F=E5=8D=A1=E2=91=A3T3=E9=80=80=E5=BD=B9=E5=88=A0?= =?UTF-8?q?=E9=99=A4;=20F4=E8=BF=81=E7=A7=BB=E9=9D=A2=E5=AE=9E=E6=B5=8B8?= =?UTF-8?q?=E6=96=87=E4=BB=B640=E4=BD=99=E5=A4=84=E5=85=A5=E5=8D=A1;=20nod?= =?UTF-8?q?e()=E6=8E=AA=E8=BE=9E=E6=94=B9=E5=86=99=E5=88=86=E6=94=AFkey?= =?UTF-8?q?=E4=B8=8D=E6=94=B9=E5=90=8D+=E7=99=BD=E5=90=8D=E5=8D=95?= =?UTF-8?q?=E6=94=B6=E7=AA=84match=E5=B9=B3=E9=93=BA;=20T2=E5=88=87?= =?UTF-8?q?=E5=88=86=E9=A2=84=E6=A1=88=E2=80=94=E2=80=94=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E9=9D=A2=E9=9B=B6=E6=94=B9=E5=8A=A8,=E5=8F=8C=E5=AE=A1?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E4=B8=8E=E7=8E=B0=E5=BD=B9=E5=85=88=E4=BE=8B?= =?UTF-8?q?=E5=90=8C=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...œ€求卡片-营地模态句柄子容器批-2026-11-01.md | 44 ++++++++++--------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/reports/需求卡片-营地模态句柄子容器批-2026-11-01.md b/reports/需求卡片-营地模态句柄子容器批-2026-11-01.md index a1a99b0b..ccde2367 100644 --- a/reports/需求卡片-营地模态句柄子容器批-2026-11-01.md +++ b/reports/需求卡片-营地模态句柄子容器批-2026-11-01.md @@ -1,6 +1,6 @@ # 需求卡片:营地模态句柄子容器批(UiCampModals 分域句柄容器 · camp_overlay 句柄迁移)· 营地交互重做卡⑥(前置基建) -- 版本:**v1.0(现行有效卡)**。留痕:2026-11-01 用户裁(迭代 47 机检预算互斥停机呈报裁决=最小改动先走:营地域六句柄落子容器,全量分域分家登记待办清单另立批)。 +- 版本:**v1.1(现行有效卡)**。留痕:2026-11-01 用户裁(迭代 47 机检预算互斥停机呈报裁决=最小改动先走:营地域六句柄落子容器,全量分域分家登记待办清单另立批);2026-11-01 grilling+godot-master 双审后写卡段修订(v1.1,执行级四缺口+措辞订正,设计面零改动)——T0 命令路径订正 game/tests/static_scan.sh、T1 补类名缓存刷新步+ui_modals 头注同步+断言尾缀落点+复跑面扩改指面 8 文件、V3 判据改计数留痕+观测面局限申报、迁移面实测 8 文件入 F4、契约 2/4 计数与退役删除句、node() 改写分支措辞。 - 来源:2026-11-01 用户裁决(**唯一事实源**:本卡 §2 现状实测+`design/engineering/code-conventions.md` §1.1 拆分判据;需求性工程条目证据指认=迭代 47 机检预算互斥停机呈报〔ui_modals.gd 类变量 14,卡④⑤ 平铺合计 19>S13 上限 15〕+用户裁决留痕,属重构基建、无设计线前置) - 归属:呈现层/组合根(`game/presentation/`)——营地交互重做卡⑥,**迭代 47 执行序第一位**(卡④ T3 落五句柄、卡⑤ T1 落浮窗句柄的本批前提) - 开工门:U0(随迭代 47 `/iter` 发令,无独立开工令)+零待裁点 @@ -12,7 +12,7 @@ **完成定义**: 1. `ui_camp_modals.gd`(类名 UiCampModals,RefCounted)新件在役;`ui_modals.gd` 持 `camp` 成员一枚,`camp_overlay` 平铺成员删除——类变量 14→14; 2. `camp_overlay` 句柄寻址迁移 `ui.modals.camp.overlay`,全仓引用(组合根+探针)改指完毕,现役营地探针段复跑绿(行为零变化的证明); -3. `ui_registry.gd node()` 支持 `camp.*` 二层寻址(循现役 `modals.X` 一层形态顺延); +3. `ui_registry.gd node()` 的 `camp_overlay` 分支返回属性链改经子容器(`modals.camp.overlay`;**LAYER_CONTRACT key 平铺不改名**,camp.* 新增解析分支随卡④⑤); 4. `main_ui_build.gd` 装配赋值改经子容器;S13 读数 `ui_modals.gd`=14 不升; 5. 批末按改动域选档全绿;三份 `reports/` 产出物写齐(T2)。 @@ -23,18 +23,18 @@ | F1 | `ui_modals.gd` 类变量 14 枚=flow+13 模态句柄;gdstyle 直跑零命中(14≤15) | `game/presentation/ui_modals.gd:7-20` | | F2 | S13 类变量上限=15(gdstyle v0.4.0 默认 `quality/max-class-variables`,超即 NEW 键红);15 枚文件直跑零命中、20 枚合成文件实测 warn | `tools/gdstyle_gate.py`;停机呈报实测凭据 | | F3 | 卡④⑤ 原平铺写法合计 19>15(卡④ 净+4=场景根+四子界面−`camp_overlay` 退役;卡⑤ +1 浮窗)——迭代 47 机检预算互斥成因;2026-11-01 用户裁=子容器方案,禁基线特批 | 停机呈报-迭代47机检预算互斥-2026-11-01.md(iter47 worktree 在档,裁决已吸收本卡与卡④⑤) | -| F4 | `camp_overlay` 句柄现役消费面=组合根开合+探针(screen_flow_probe 营地旗标/回退段、ui_click_probe 营地段)——迁移面以 T0 grep 实查清单为准 | `main.ui.modals.camp_overlay` 全仓引用位 | +| F4 | `camp_overlay` 句柄现役消费面实测 **8 文件 40 余处**(2026-11-01 双审实查;T0 逐处列清单):`main_ui_build.gd`(约 10 处)/`ui_registry.gd:61`/`screen_flow_probe.gd`(3)/`ui_click_probe.gd`(16–20)/`ui_probe.gd`(8–9)/`shot_probe.gd`(2)/`ui_struct_probe.gd`(1)/`system_test.gd`(2——:108 句柄同一性链、:121 候选层清单,含 `game/tests/` 域) | `main.ui.modals.camp_overlay` 全仓引用位 | | F5 | `ui_registry.gd node()` 现经 `modals.X` 一层寻址;LAYER_CONTRACT 与 `apply_layer_contract` 与本批正交(句柄册结构≠场景树结构——子容器不挂树、零树序影响) | `game/presentation/ui_registry.gd`(node() 寻址段,T0 复核) | ## 3. 设计契约(红线,违反=L3 停机呈报) 🔴 **契约 1 · 行为零变化**:纯句柄搬家+容器新立;LAYER_CONTRACT/登记序/树序/`register_layer`/ModalFlow 零改动;现有探针断言**零改判据**(只改寻址)。 -🔴 **契约 2 · 寻址唯一形态**:营地六句柄(含本卡迁入的 `camp.overlay`)寻址一律 `ui.modals.camp.X` 二层;禁平铺回 `ui_modals.gd`(卡④ T3 落五句柄、卡⑤ T1 落 esc 时同规——两卡契约区已载)。 +🔴 **契约 2 · 寻址唯一形态**:营地域全部句柄(过渡期含本卡迁入的 `camp.overlay`;**终态六枚=场景根+四子界面+Esc 浮窗**)寻址一律 `ui.modals.camp.X` 二层;禁平铺回 `ui_modals.gd`(卡④ T3 落五句柄、卡⑤ T1 落 esc 时同规——卡⑤ 契约 7 已载、卡④ T3 步与文件表已载)。 -🔴 **契约 3 · UiModals 只减不增**:本卡后类变量 14(flow+12 平铺句柄+camp 容器成员),卡④⑤ 阶段终值保持 14;任何新句柄平铺回顶层=S13 NEW 红=L3。 +🔴 **契约 3 · UiModals 只减不增**:本卡后类变量 14(flow+12 平铺句柄+camp 容器成员),卡④⑤ 阶段终值保持 14;任何新句柄平铺回顶层=S13 NEW 红=L3。S13 红线实际兜 **+2 起**(14→15 闸零命中)——+1 漂移由 V3 计数留痕与独立验收审计兜,契约分工在此写明。 -🔴 **契约 4 · 禁无效成员**:子容器内不预占句柄——本卡只迁 `camp_overlay` 一枚实件;五枚新句柄随卡④ T3 创建视图时落、esc 随卡⑤ T1 落;禁空占位凑结构(code-conventions §1.1 第⑤条同款)。 +🔴 **契约 4 · 禁无效成员**:子容器内不预占句柄——本卡只迁 `camp_overlay` 一枚实件;五枚新句柄随卡④ T3 创建视图时落、esc 随卡⑤ T1 落;禁空占位凑结构(code-conventions §1.1 第⑤条同款)。**`camp.overlay` 枚随卡④ T3 CampOverlay 类退役一并删除**(禁悬挂——类删后类型悬挂即 parse error,删除义务显式归卡④ T3)。 🔴 **契约 5 · 拆分边界纪律**(判据权威=code-conventions §1.1,本卡写条款不复制定文):本卡新建分域容器沿**职责轴**——UiCampModals=可命名领域概念「营地交互域模态组」(营地场景图+其子界面+其浮窗)、单一变化原因=营地交互重做;非凑计数袋;实现报告逐件一行承载职责语句。 @@ -64,14 +64,14 @@ | `game/presentation/ui_camp_modals.gd` | 营地域模态句柄子容器(RefCounted;本卡 1 枚 `overlay`,卡④⑤ 落满 6 枚;头注自陈禁平铺回 ui_modals) | 行为改动 | 新建 | V1 | | `game/presentation/ui_modals.gd` | 持 `camp` 成员(_init 构造);删除平铺 `camp_overlay` 成员 | 行为改动 | 复用既有(改) | V1 | | `game/presentation/main_ui_build.gd` | 装配赋值改经子容器(`modals.camp.overlay = …`) | 行为改动 | 复用既有(改) | V1 | -| `game/presentation/ui_registry.gd` | `node()` 增 `camp.*` 二层解析分支(循 `modals.X` 先例) | 行为改动 | 复用既有(改) | V2 | +| `game/presentation/ui_registry.gd` | `node()` 的 `camp_overlay` 分支返回属性链改经子容器(key 平铺不改名);camp.* 新增解析分支随卡④⑤ | 行为改动 | 复用既有(改) | V2 | | 全仓 `camp_overlay` 句柄引用位(组合根+探针,T0 grep 列清单) | 寻址改指 `ui.modals.camp.overlay`(断言零改) | 非行为改动(寻址改指) | 复用既有(改) | V1 | ## 落位与可复用性预检 | 新件 | 复用面(grep 同职责实现) | 唯一面(grep 同名同义标识符) | 分层与交互面 | |---|---|---|---| -| `ui_camp_modals.gd` | grep 句柄分域容器/分组容器无先例;`UiModals` 本体=按技术角色平铺的注册面容器(职责不同);`ModalFlow`=调度器非句柄册 → 不能复用,须新建 | grep `UiCampModals`/`ui_camp_modals`/`camp_modals` 无第二处;营地句柄寻址唯一落点 | RefCounted 不挂树;`main_ui_build` 构造注入 `ui_modals.camp`;`register_layer`/LAYER_CONTRACT/树序零触碰 | +| `ui_camp_modals.gd` | grep 句柄分域容器/分组容器无先例;`UiModals` 本体=按技术角色平铺的注册面容器(职责不同);`ModalFlow`=调度器非句柄册 → 不能复用,须新建 | grep `UiCampModals`/`ui_camp_modals`/`camp_modals` 无第二处;营地句柄寻址唯一落点 | RefCounted 不挂树;`ui_modals._init` 构造 camp(与 flow 同拍,先例 ui_modals.gd:24)、`main_ui_build` 只向 camp 赋句柄;`register_layer`/LAYER_CONTRACT/树序零触碰 | **非新增件说明**:`ui_modals.gd`/`main_ui_build.gd`/`ui_registry.gd`/探针=存量改造;**数据件/RNG/Core 零触碰**(纯呈现层簿记);Core 零 UI 依赖不因新件绕过。 @@ -90,19 +90,21 @@ gdstyle v0.4.0 默认阈值:公开方法 ≤20、类变量 ≤15、单函数 ### T0 事实坐实(≈0.25d) -- 取用:§2 F1–F5、营地交互重做条(已编迭代 47)、卡④ v3.2/卡⑤ v1.5 契约 2。 +- 取用:§2 F1–F5、营地交互重做条(已编迭代 47)、卡⑤ v1.5 契约 7+卡④ v3.2 T3 步与文件表(寻址规则落点)。 - [ ] 复核 §2 全部 `file:line`;grep 全仓 `modals.camp_overlay` 引用位列清单(改指面:组合根+探针逐处)。 - [ ] 实读 `ui_registry.gd node()` 寻址形态,定 `camp.*` 二层解析的顺延写法(循 `modals.X` 先例,禁另造第三种寻址)。 -- [ ] 跑 `bash tools/static_scan.sh` 登记 S13 基线读数(`ui_modals.gd` 类变量 14)。 -- 产出:引用位清单、寻址形态结论、S13 基线读数。 +- [ ] 跑 `bash game/tests/static_scan.sh`(tools/ 下无此件——v1.0 路径失实订正)记录 S13 读数(**禁手改 `tools/gdstyle_baseline.txt`**——基线是欠账簿,重生成人工专用;`ui_modals.gd` 类变量 14)。 +- 产出:引用位清单、寻址形态结论、S13 读数留痕。 ### T1 实装与验证(≈0.25d) - [ ] 新建 `ui_camp_modals.gd`(RefCounted;`var overlay: CampOverlay`;头注自陈「营地交互域句柄子容器,终态六枚,新营地句柄禁平铺回 ui_modals」)。 -- [ ] `ui_modals.gd`:持 `camp: UiCampModals`(`_init` 构造);删除平铺 `camp_overlay` 成员。 -- [ ] `main_ui_build.gd` 装配改指;全仓引用位按 T0 清单改指 `ui.modals.camp.overlay`(逐处留痕)。 -- [ ] `ui_registry.gd` `node()` 增 `camp.*` 二层解析分支。 -- [ ] 验证:现役营地探针段复跑绿(screen_flow_probe 营地段+ui_click_probe 营地段——断言零改只换寻址);`system_test.gd` V1c 合同树序链复跑绿(:94-106);gdstyle S13 读数 `ui_modals.gd`=14。 +- [ ] **类名缓存刷新**(code-conventions 语言纪律 5——新 class_name 必步):新件落盘后、任何 headless 验证前先跑一次编辑器扫描(`--editor --quit`;新 worktree 无 `.godot` 缓存,缺此步 `--script` 模式 parse 假红)。 +- [ ] `ui_modals.gd`:持 `camp: UiCampModals`(`_init` 构造,与 flow 同拍——ui_modals.gd:24 先例);删除平铺 `camp_overlay` 成员;**头注同步**(「十三个模态覆盖层句柄」→「十二个平铺句柄+营地域子容器」——§1.4.1 头注如实义务)。 +- [ ] `main_ui_build.gd` 装配改指;全仓引用位按 T0 清单(8 文件)改指 `ui.modals.camp.overlay`(逐处留痕)。 +- [ ] `ui_registry.gd` `node()` 的 `camp_overlay` 分支返回属性链改经子容器(**key 平铺不改名**);camp.* 新增解析分支随卡④⑤。 +- [ ] 现役营地断言消息文本追加〔句柄子容器批 V1/V2〕尾缀(**判据零改、仅消息文本**——独立验收审计「尾缀能 grep 到」义务的落点步)。 +- [ ] 验证:改指面 8 文件逐件复跑绿(探针五件营地段+`system_test.gd`——screen_flow_probe/ui_click_probe/ui_probe/shot_probe/ui_struct_probe;断言零改只换寻址);`system_test.gd` V1c 合同树序链(:94-106)+句柄同一性链(:108)复跑绿;S13 读数=gate 绿(≤15 零 NEW)+`grep -c '^var '` 计数=14 留痕。 - 产出:子容器在位+迁移绿证+引用位改指留痕表;卡④ T3/卡⑤ T1 按契约 2 落新句柄。 ### T2 产出物落位卡(≈0.25d,末卡) @@ -112,27 +114,27 @@ gdstyle v0.4.0 默认阈值:公开方法 ≤20、类变量 ≤15、单函数 - [ ] 合并前写齐三份 `reports/`:实现报告/反哺点清单(§5 每条有落点)/验收审计。 - 产出:三份 `reports/` 齐全+闸全绿+审计通过;合回后本地 CI 全量复验。 -**估时合计 ≈0.75d**(T0 0.25+T1 0.25+T2 0.25)。 +**估时合计 ≈0.75d**(T0 0.25+T1 0.25+T2 0.25)。**切分预案**:T2 偏紧(闸+审计+三报告挤 0.25d)——三份 `reports/` 先行成稿、独立验收审计走并行子代理,不串行等。 ## 7. 验证闸:改动—验收对照表 | 需求点 | 改动(文件:行/行为) | 验收测试(名称+落点+尾缀) | 层级 | 真实入口 | 判据绑定面 | 能力行 | |---|---|---|---|---|---|---| -| V1 句柄迁移零行为漂移 | `ui_camp_modals.gd` 新件;`ui_modals.gd` 持 camp/删平铺成员;`main_ui_build.gd` 装配改指;全仓引用改指 | `screen_flow_probe.gd:_ready`(营地段)+`ui_click_probe.gd:_ready`(营地段)〔句柄子容器批 V1〕 | 探针 | 现役营地探针段复跑(断言零改、寻址新) | 全段绿=行为零变化证明;改指后全仓 grep 零 `modals.camp_overlay` 平铺寻址残留(静态判据) | 既有:模态覆盖层编排与输入锁 | -| V2 层序合同零漂移 | `ui_registry.gd` node() 扩展 | `system_test.gd:_ready`(V1c 合同树序链 :94-106 复跑)〔句柄子容器批 V2〕 | 系统测试 | LAYER_CONTRACT 单一事实源 | 树序链绿=合同与落位零漂移(子容器不挂树、零树序影响) | 既有:模态覆盖层编排与输入锁 | -| V3 S13 读数 | `ui_modals.gd` 类变量 14 | gdstyle S13 读数(T1 验证步留痕)〔句柄子容器批 V3〕 | 静态读数 | `bash tools/static_scan.sh` | `ui_modals.gd` 类变量=14(基线键零上升) | 既有:模态覆盖层编排与输入锁 | +| V1 句柄迁移零行为漂移 | `ui_camp_modals.gd` 新件;`ui_modals.gd` 持 camp/删平铺成员;`main_ui_build.gd` 装配改指;全仓引用改指 | 改指面探针五件营地段+`system_test.gd`(V1c :94-106+句柄同一性链 :108)〔句柄子容器批 V1〕 | 探针(+系统测试复跑) | 现役营地断言逐件复跑(断言零改、寻址新——改指面 8 文件全覆盖) | 全段绿=行为零变化证明;改指后全仓 grep 零 `modals.camp_overlay` 平铺寻址残留(静态判据);句柄同一性链绿=同一实例零漂移 | 既有:模态覆盖层编排与输入锁 | +| V2 层序合同零漂移 | `ui_registry.gd` node() 分支返回属性链改写 | `system_test.gd:_ready`(V1c 合同树序链 :94-106 复跑)〔句柄子容器批 V2〕 | 系统测试 | LAYER_CONTRACT 单一事实源 | 树序链绿=合同与落位零漂移(子容器不挂树、零树序影响;key 平铺不改名) | 既有:模态覆盖层编排与输入锁 | +| V3 S13 读数 | `ui_modals.gd` 类变量 14 | gdstyle S13 gate+`grep -c '^var '` 计数(T1 验证步留痕)〔句柄子容器批 V3〕 | 静态读数 | `bash game/tests/static_scan.sh` | gate 绿(≤15 零 NEW)+计数=14 留痕——**观测面局限申报**:S13 闸对 14/15 同样零命中,「=14」由人工计数承载(test-conventions §8.4 静态判据出口) | 既有:模态覆盖层编排与输入锁 | **测试方式两分法**:V1/V2 机检自动化;V3 静态读数留痕(gdstyle 基线机制域内)。**测试削弱申报:零削弱**(断言零改判据,只换寻址)。**独立验收审计**:合并前由未参与实现的会话/子代理执行(四件事口径同 test-conventions §8.7),报告落 `reports/iter-验收审计-<日期>.md`,未过禁合并。**闸口径**:轻闸每卡出口自跑;批末 `--code` 关联档全绿才合并;MC 零跑(零数值零行为)。回归措辞按模板:里程碑步出口一次全套闸,波内修复只跑红件。 ## 8. 异常分级 -- **L1(自救一次)**:改指拼写、探针寻址写法、node() 解析分支写法、manifest 登记遗漏。 +- **L1(自救一次)**:改指拼写、探针寻址写法、node() 分支写法、类名缓存失配 parse 失败(重跑 `--editor --quit` 即清)、manifest 登记遗漏。 - **L2(记录继续;同一红连续三次升 L3)**:行数较 T0 预期漂移但 S13 键不升。 - **L3(立即停卡写报告等用户)**:迁移后任一现役营地断言红且非寻址成因(=行为被意外触碰);机检预算互斥(`ui_modals.gd` 类变量被迫>14、或子容器被塞入非营地句柄=拆分边界破)——停卡退回写卡段,禁造第三条路。 ## 9. 代拍板白名单(超清单必呈报) -1. `node()` camp 解析的具体实现形态(match/字典——循现役先例域内)。 +1. `node()` 解析形态=match 平铺(现役唯一形态,ui_registry.gd:50-69;字典形态弃用、禁另造第三种寻址)。 2. 子容器头注措辞(契约 4 自陈内容域内)。 超出必须呈报:寻址形态、文件落位、契约数字、句柄归属。