Commit Graph
1531 Commits
Author SHA1 Message Date
DKChan cdccd6d69d docs(active): 线头收编批记账——快照更新于行换代/文档域回执行改指分支尖/未决面在途分支行清零(两线头收编:art-standee 合并、doc-adr-fixes 判废删除);追加状态记录 511(合入内容三面/立绘抢救归档/判废依据);500 条清理核注补记 2026-10-17 17:33:03 +08:00
DKChan 4a65f9eb6d Merge branch 'master' into art-standee-20261006
# Conflicts:
#	design/art/art-bible.md
2026-10-17 17:31:22 +08:00
DKChan 0a16495842 docs(active): 迭代 30 卡①收口记账——快照换代(更新于/最新闸态/已裁在册三行:卡①已合并 7ffd1dc0,代码域末次读数冒烟 1151/0、单元 34 套件、golden 0.10-0.14%、09 基线红→现绿;11 号 parity 未触面 SKIP);未决面待发令行改为卡②③(带卡片路径,U1 预授权适用性注明);在途分支行增记 g-plan2-iter30-glow 已合并在盘待删;追加状态记录 510(实现/停机呈报与裁定/断言三件/渲染取证/变异 M1-M5/验收/坑档两条/产出物/遗留七项)。体量闸 PASS(11 条/9 行)。只动 active.md——主区其他并行未提交件(game/project.godot/M4 卡片删除/未跟踪文档)零触碰。 2026-10-17 10:34:47 +08:00
DKChan 7ffd1dc0e1 docs(reports): 订正 .uid 状态读数——type_glow_test.gd.uid 已由批末编辑器导入通行补齐并随断言三件笔提交,自产 .uid 实为 4 个(原写「无 .uid 伴生、不随本批提交」滞后于编辑器通行事实);存量 9 个未跟踪 .uid 仍归卫生批。实现报告 §六-2/反哺点附注/追认单第 7 项三处同步。 2026-10-17 10:21:58 +08:00
DKChan 2aa7e8fdc1 Merge branch 'master' into iter30-glow-20261017 2026-10-17 10:20:28 +08:00
DKChan 161d90c38e docs(reports): 迭代 30 卡①三份产出物落位(T4 末卡收口)——实现报告(各卡状态 T0-T4/停机呈报与裁定留痕:群伤组初版 #FF1A31 ΔH 5.40° 触冻结色相 L3 停机呈报→用户裁「换更暗档 #A61D37」=冻结 #FF2D55 的 V=0.65 档色相零移动/board_shot 双帧 glow=0 假绿根因修复(裸视图未接身份解析)/合成空间阶梯口径订正/闸读数表:冒烟 1151 项、单测 51/51 34 套件、探针十八断言、判据源探针 CR 最弱 1.232、双帧 outside=0、golden 0.10-0.14%/变异验证记录表 M1-M5 五组反例实证含红输出实录/实机目检总清单 V10 人闸登记不阻塞/遗留读数义务:阔视野带 desc「微光范围 8→12 格」与卡 §4「不扩微光」冲突属数据文本批、type_glow_test.gd.uid 卫生缺口、golden 基线未重制、群伤暗档 provisional 待样张转正);代拍板追认单(§9 白名单 7 项逐项留痕:命名落点/shader 距离场取舍/uniform 参数表/呼吸未启用/夹具配置/阈值 provisional/提交切分);反哺点清单(§5 七条逐条落点:06 条目状态+措辞修正、HUD框架 :140/:269、08 表现表新增行、art-bible 明度档修订条目、roadmap 批内状态、Q3 两带分工+06 新待办、07 目检人闸条)。零 design/ 与根规则文件直改(v1.3 口径);active.md 状态记录另随主区会话批更新。 2026-10-17 10:19:16 +08:00
DKChan e5c03eb3ab test(render): 双帧像素取证+判据源探针(迭代 30 卡① T2-④)——board_shot_probe 每关抓微光开(生产默认态)/关(golden 基线保护面)双帧:前置 UiKit.motion_scale=0.5 冻结接触带呼吸相位(静态带色,双帧差异唯一定位在类型微光开关),_check_dual_frames 逐格窗口矩形+到格缘距离判据(de < cell÷8——带外含砖心零侵入=禁整格染色/禁越圈)+每生效格须有实绘像素(微光不空转)+开关快照须在关开关前取;读数落 board_dual_frame_readings.json(报告读数表源)。身份解析接生产同源面(main.gd:251 同构:板在守卫+Active 相位守卫+query_reward_identity 只读代理——裸视图不接则作用集恒空、PASS 假绿,本批实跑两次 glow=0 的根因即此;附带排 Callable.bind 动态派发 Object 硬校验坑,改成员现值+直接方法引用)。新建判据源探针 type_glow_shot_probe(夹具面五组齐现:glow_cells=5、groups=[1-5]、changed_outside=0、相邻组实测 CR 最弱对 1.232、组4/组5=1.423)——真实面随板摇号(双帧 glow=2/4/4),五组齐现互辨取证在夹具面承载,两面分工不混。off 帧对 2026-09-30 代 golden 三基线漂移 0.13/0.11/0.10%(≤2%,接触带静态化预期面,契约 6 未触发、基线未重制);render_gate.sh 整闸全绿(含菜单 golden 0.14%)。 2026-10-17 10:18:55 +08:00
DKChan 80ac80ef1a test(断言三件): 未开格类型微光机检面(迭代 30 卡① T2-①②③)——①冒烟 smoke_all.gd 新增 _smoke_type_glow 八相 24 项(相0 作用集恒等+默认开+已开/r0 零微光/相1 八邻派八型五组逐格映射/相2 清单外"keystone"显式登记+零微光/相3 封锁格零微光零登记/相4 解封复位/相5 off/on 两态+关前快照逐位复现+零玩法写入三面/相6 换图 rebuild 重算/相7 契约 1 同板同序列 on/off 双实例结算逐位一致 12 步 digest 对照);夹具 = seed 4242 L1 板+novice 驱动(初始展开覆盖 8 邻故必驱动)+八邻派型+哈希兜底九型全集;冒烟 1127→1151 项。②单测 type_glow_test.gd 五段 51 检查(归组封闭含清单外 6 负样本+两带并存锚定/冻结色相面 HSV 稽核 ΔH≤0.2°·ΔS≤0.01+群伤 V=0.65 专项/呈现参数锚定 α170·band 0.125·组号域 0-5/伽马合成空间阶梯单调+相邻组模型 CR≥1.20/probe API 形状),登记 run_all.gd(33→34 套件);extends SceneTree+Kit/UiKitScript preload(--script 模式禁 class_name 裸引用)。③ui_input_probe case⑰ 活板面走查(生产身份面:作用集==diggable 键集/真实点击挖开即灭/移动复亮出圈灭/相位门控两态/开关两态零扰动),十八断言全绿。批末变异验证五组反例实证:M1 归组错映(单测+冒烟红)/M2 清单外静默(冒烟红)/M3 相位切换不重算(冒烟+探针红)/M4 α=0 不绘(渲染闸红)/M5 派生路径误触玩法 API(冒烟相7 分叉红)——红输出与还原结论实录见 reports/iter30-实现报告-2026-10-17.md §四。 2026-10-17 10:18:35 +08:00
DKChan bd44e658e8 feat(views): 未开格类型微光五组实装(迭代 30 卡①·Q1 丙案主路径)——色板与归组单点落 ui_kit(TG_GLOW_* 五组+GLOW_* 组号+glow_group_for_cell_type 九值封闭/glow_color_for_group;α170/带宽 cell÷8/软边 0.55/圆角 2 参数常量);shader 面新建 cell_type_glow.gdshader(canvas_item 距离场内缘带柔光:SDF 圆角掩码+mask_rect 豁免区,参数全经 ui_kit 注入守「呈现层裸 Color8=0」)+承载件 cell_type_glow_layer.gd;board_cell_unit 微光子件生命周期(有组才建、组变即换、无组即撤——作用集 ≤8 格常驻、零节点零绘制成本);board_view 作用集派生 _recompute_glow(= _diggable ∩ 身份可查 ∩ 灯光区 − r0,清单外 cell_type 显式登记禁静默空光)+开关 set_type_glow_enabled(Q4 丙案默认开、生产写入面组合根单点)+相位门控与接触带同源(set_dig_glow_enabled 尾链 _sync_glow_to_units 增量重绘)+取证面 type_glow_probe/cell_rect_probe。群伤组色值 = 冻结绯红 #FF2D55 的 V=0.65 档 #A61D37(2026-10-17 契约 5 停机呈报用户裁定「换更暗档」,色相零移动——初版 #FF1A31 ΔH 5.40° 已废);明度档 provisional 值按 Q2 甲案取、复核归样张批;五组 ΔH ≤0.13° 全数「只动明度不动色相」;生成口径 = 渲染合成空间(伽马)阶梯,相邻组模型 CR 1.245/1.234/1.239/1.270。静态无呼吸(Q5 甲案)。铁律:_glow 容器参数化 Dictionary[Vector2i, int](R1A 无类型容器红线);新文件头注 ≤8 行(S10)。 2026-10-17 10:18:14 +08:00
DKChan bd6ab32e94 merge: GDD 反哺点八条+一条建议逐点裁决写入与三笔旧账清零(worktree g-plan2-gddfb-20261017,分支 gdd-feedback-20261017,两提交)——2026-10-17 用户令「全部按推荐案执行」:architecture.md v1.8 新增「战斗域装配现状」「呈现层装配与会话生命周期」两节+启动后置条件六条(迭代 27 反哺①③④⑤/28 反哺三条合并承接,16 层/十断言读数按代码实态订正为 17 项/六组 11 条);code-conventions.md §4 第 7–12 条(迭代 27 反哺②);test-conventions.md 新增 §7 判定三硬闸、§8 判定可靠性优先于覆盖率(迭代 29 反哺①②+§六第 4 项建议);07 v1.4 ㉖① 保留不注销加机检承接注记(迭代 29 反哺③)。旧账:三份实现报告 git mv 往 reports/(06 条③清零)、roadmap 死指针清零、iter29 报告 §六第 0 项按合并现实改写、06 补登迭代 29 反哺专条并按吸收即死退役三条。文档域闸零新增红(回执 commit=ed47b2f7 与分支尖一致,domain=docs,all_green=true);纯文档合入(diff 不触 game/)。active.md 按 508 批自述「等下一次动 active.md 的批一起入库」收录本批提交;主区其他并行未提交件零触碰。 2026-10-17 06:29:14 +08:00
DKChan ed47b2f740 docs(active): 反哺写入批记账——快照更新于行/末次回执读数/簿记出清换代;未决面去掉迭代 27/28/29 反哺待裁三条、追认行报告指针改 reports/ 新位;追加状态记录 509(编号唯一,体量闸 PASS 10 条/9 行);508 批自述随批入库的主区未提交行改动随本笔提交 2026-10-17 06:28:21 +08:00
DKChan abe5f180fb docs(反哺): 迭代 27/28/29 GDD 反哺点八条+一条建议逐点裁决写入(2026-10-17 用户令「全部按推荐案」)——①③④⑤architecture.md v1.8:新增「战斗域装配现状」(结算五段/RunLedger 四账)与「呈现层装配与会话生命周期」(三屏壳/装配合同立条款不摘录表/RunScope 九阶段×五引用面矩阵认账/ModalFlow tags)两节+初始化顺序补启动后置条件六条,呈现层 D1 行与实现实证读数换代;②code-conventions.md §4 第 7–12 条(S9 三规则口径/:= {} 不算债/type-hint-ignore 与 rng-seed-exempt 两豁免通道/禁裸 autoload/Variant 参数化口径);⑥⑦⑨test-conventions.md 新增 §7 判定三硬闸(含新写测试件全类型标注写法纪律)与 §8 判定可靠性优先于覆盖率(含脚本错误静默中断断言的机制事实与自证义务);⑧07 v1.4:㉖① 保留不注销、加 screen_flow_probe 机检承接注记。同步清三笔在册旧账:iter27/28/29 三份实现报告 git mv 往 reports/(06 条③迁位账清零,全库引用改指新路径、iter24/25/26 等已删报告死指针改「已退役(git 历史可考)」);iter29 报告 §六第 0 项按合并现实(fff4f120,两红各自结案 dac9a94b/fcb8c3f8+8c18b52b)改写;06 补登迭代 29 反哺专条(该批漏登)。登记时「16 层/十断言」读数按代码实态 17 项/11 条订正。非迭代批不占迭代号;active.md 改动留主区工作副本不随本批提交,等闸回执。 2026-10-17 06:25:28 +08:00
DKChan d984d47c8c merge: roadmap 迭代30卡片版本读数订正 v1.2→v1.4 入库(worktree g-plan2-roadmap-v14,分支 docfix-roadmap-v14-20261017)——迭代进度行:27 与迭代 30 表行:89 两处陈旧读数订正为卡片实际版本 v1.4;非迭代批不占迭代号。文档域闸零新增红(回执 commit=3f9ec7c5 与分支尖一致)。用户令:只合本批自有改动,主区其他会话未提交件零触碰。 2026-10-17 05:57:11 +08:00
DKChan 3f9ec7c57d docs(roadmap): 迭代30卡片版本读数 v1.2 → v1.4(两处)
roadmap.md 迭代进度行(:27)与迭代 30 表行(:89)仍写「卡片均 v1.2」,
与 2026-10-17 合回 master 的三卡实际版本不符:卡片现为 v1.4(v1.3 文档
同步闸 v3 口径换代 + v1.4 开工前预授权 U1)。本批只订正版本读数,卡片
指针与其余表述零改动。

闸:tools/run_all_gates.sh --docs 零新增红。非迭代批,不占迭代号。
2026-10-17 05:56:49 +08:00
DKChan eabaeee04c merge: 迭代 27/28/29 代拍板追认单落状态入库(worktree g-plan2-ratify-20261017)——2026-10-17 用户令「追认单的所有我都是同意的」,40 项追认结果写进三份实现报告+06 闸分域批条①②改判+roadmap 三处字样换代;iter28 第 14 项维持待裁、06 条③迁位欠账补计 iter29 报告。文档域闸零新增红(回执 commit=9a7dfcf6 与分支尖一致)。主区其他会话未提交件零触碰(active.md 就地改动不随本批提交) 2026-10-17 05:38:24 +08:00
DKChan 9a7dfcf619 docs(追认): 迭代 27/28/29 代拍板追认单落状态——2026-10-17 用户令「追认单的所有我都是同意的」,40 项全部同意(27 十五项/28 十三项含四条白名单外/29 十二项),三份实现报告追认单节各加追认结果行;iter28 第 14 项只认本批动作、「req-card 双副本是否取齐」维持待裁;06 闸分域批条①②改判已追认、③迁位欠账补计 iter29 报告(原条漏计);roadmap 迭代进度行三处「追认单待用户」换代为已追认 2026-10-17 05:38:09 +08:00
DKChan db032fb513 merge: CI 残留落地——删除 .github/workflows/tests.yml(worktree g-plan2-ci-removal,按 2026-10-16 既裁重做:只保留删 .github/,ADR 两条撤去;rebase 现行 master 后单提交)——文档「无远端无 CI·不建不留不参考」口径与仓库现实对齐。全量档闸零新增红(09 基线红→现绿改善;回执 commit=ab4b2653 与分支尖一致) 2026-10-17 04:31:30 +08:00
DKChan 8aa70d46c7 merge: 迭代30三卡 v1.3+v1.4 口径换代与开工前预授权 U1 入库(worktree carddoc-20261017)——v1.3 按 2026-10-17 文档同步闸 v3 换代(同步面全转 reports/ 反哺点、末卡改产出物落位卡、闸口径按域 --code、目检转 reports/ 实现报告、D4「迭代29未合入」依赖改写为已结案 fff4f120);v1.4 落用户开工前四项一次性预授权(卡①原型帧判据自判+调参上限2轮、卡③Q2判据自动裁、卡③目标带批内自定、L3分类预授权;卡②不适用并留分类结论注)。文档域闸零新增红(回执 commit=480d8118 与分支尖一致)。用户令:只合本批自有改动,主区其他会话未提交件零触碰。 2026-10-17 04:23:57 +08:00
DKChan ab4b2653e0 chore(ci): 移除 .github/workflows/tests.yml——无远端无 CI runner,文档已按「无 CI」口径成文,不留死配置(2026-10-15 用户令;2026-10-16 既裁「分支重做:撤 ADR 两条、只保留删 .github/」) 2026-10-17 04:23:47 +08:00
DKChan 7657a2e74f merge: 迭代30三卡 v1.3+v1.4 口径换代与开工前预授权 U1 入库(worktree carddoc-20261017)——v1.3 按 2026-10-17 文档同步闸 v3 换代(同步面全转 reports/ 反哺点、末卡改产出物落位卡、闸口径按域 --code、目检转 reports/ 实现报告、D4 迭代29依赖结案 ggg4f120 更正为 fff4f120);v1.4 落用户开工前四项一次性预授权(卡①原型帧判据自判+调参上限2轮、卡③Q2判据自动裁、卡③目标带批内自定、L3分类预授权;卡②不适用并留分类结论注)。文档域闸零新增红(回执 commit=480d8118 与分支尖一致)。用户令:只合本批自有改动,主区其他会话未提交件零触碰。 2026-10-17 04:23:19 +08:00
DKChan 480d811820 docs(cards): 迭代30三卡 v1.4——开工前预授权 U1 落卡
用户在开工前一次性决断四项,防开发中反复打断;不写进卡片则
/iter 仍会按原文停机等话,故逐条落卡(2026-10-17):

卡① 未开格类型徽章批
- T0-③ shader 原型帧改「判据自判」:满足三条像素判据(五组去色相
  可分/砖心不遮数字/接触带不越圈且非生效格零变化)即自行推进铺码,
  不等回话;调参轮次上限 2 轮,超限停线回 Q1 复议(原「目检不过不过夜、
  不承诺轮数」)
- §8 增设「L3 预授权类」:共存撞墙退 a 案程序绘制兜底/golden 换代按
  契约 6 显式流程/色弱不可分先在 provisional 梯度内自调一轮——三件
  批内处置+留痕;触既有裁决面类(翻动五组色相/on-off 位差/T3 触发/
  重开裁点)维持停机
- §10 开工门新增 U1 预授权条

卡③ 二三关棋盘观感批
- Q2 甲/乙由「延裁·T1 出口现场裁」改「判据自动裁」:甲案候选样张读数
  达标即走甲不停机,仅读数证伪「纹理太碎」才呈报裁乙
- V2 定向目标带授权批内按 T1 实测读数自定、随定性报告呈报即生效;
  T1 出口定性人闸(06 已裁硬步骤)只确认轴归因与修法方向
- §10 开工门新增 U1 预授权条,其余 L3 维持停机

卡② 战斗一屏样张批(复查结论留痕,零机制改动)
- U1 预授权对本卡不适用:两处人闸(T1 方向稿选划/T3 气质终审)是
  防不满意机制本体,取消即拆机制
- 四项 L3 经分类全部属「触既有裁决面/超本批面」,维持停机呈报;
  §6 留分类结论注防重复呈报

闸:tools/run_all_gates.sh --docs 零新增红。roadmap/CLAUDE.md/
game/tests/README.md 与闸脚本零触碰。
2026-10-17 04:04:55 +08:00
DKChan d5fe747083 docs(cards): 按 2026-10-17 文档同步闸 v3 换代迭代 30 三卡(补遗)
在分支既有 v1.3 口径修订基础上补齐缺口,三卡对齐"代码实现批禁写
design/ 与根规则文件、产出物只落 reports/"的新批次规则:

卡① 未开格类型徽章批
- T2 末条「全闸」改「代码域闸(批末重闸)」:tools/run_all_gates.sh
  --code 对基线零新增红,并明示文档域闸不属本批改动域
- §11 grilling 审查记录末尾加 v1.3 口径注记:「三文档闸」一类闸件
  枚举只读为历史记录,闸清单唯一出处=run_all_gates.sh

卡② 战斗一屏样张批
- §7.5 D4「迭代 29 门禁语义改动先后」由待定依赖改写为已结案:
  2026-10-16 合入 master(fff4f120,roadmap.md:88 状态=已入库),
  闸口径直接按当期语义跑 --code,原两分支消解
- §0 与开工门两处「迭代 29 自身 U0 未解」陈旧读数同步作废(与 D4
  同源,避免卡内自相矛盾),「不构成排期承诺」口径不变
- §9 grilling 审查记录末尾加 v1.3 口径注记:「doc 三闸」一类闸件
  枚举与「写入文档/登记 06」类落文表述只读为历史记录

卡③ 二三关棋盘观感批
- T1 采样源与 V2 判据两处「读数表进实现报告」补落位路径
  reports/iter30-实现报告-<完成日>.md

闸:tools/run_all_gates.sh --docs 零新增红(回执 commit=d6b0c9fc 与
分支尖一致)。CLAUDE.md/roadmap.md/game/tests/README.md 与闸脚本零触碰。
2026-10-17 03:35:48 +08:00
DKChan d6b0c9fc86 merge: 同步 master(闸按改动域分跑批 60c25ca3)入卡doc分支 2026-10-17 03:31:29 +08:00
DKChan e65e967dd8 docs(cards): 迭代30三需求卡片v1.3——文档同步闸v3口径修订
按 2026-10-17 用户六条裁定(纯文档批 carddoc-20261017):
- 实现批禁写 design/ 与根规则文件:三卡同步面义务全部改列
  reports/iter30-反哺点-<完成日>.md,用户会话裁决后归文档批落文
- 产出物落位换代:实现报告/代拍板追认单/反哺点清单落 reports/,
  不再 design/qa/
- 末卡改「产出物落位卡」(三份 reports/ 文件写齐才算收口)
- 闸口径按域选档指路 tools/run_all_gates.sh,摘除死闸件名单与
  「全量档全绿」「文档三闸」字样
- 实机目检项转 reports/ 实现报告目检总清单,「入册 07」转反哺点
- 裁定留痕原文不动,落文类表述加执行口径注记(卡①§10/卡②§7/§7.5)
- roadmap/CLAUDE.md/game/tests/README.md 零触碰
2026-10-17 01:24:50 +08:00
DKChan 60c25ca395 merge: 闸按改动域分跑批入库(worktree g-plan2-gatedomain-20261017)——四提交:01 篇流程图结案 R5/run_all_gates 分域 --code --docs+素材齐盘预检+SKIP 误判修正+PYTHONIOENCODING/渲染闸缺盘由空跑判绿改判红/reports/ 新顶层目录收实现批产出物/CLAUDE.md+process-conventions+doc-conventions+architecture+06+roadmap+tests/README 口径同步/基线 06 条目改回绿。全量档 12 闸零新增红(回执 commit=d3a616cf 与分支尖一致);合回闸正反例实测(docs 回执配跨域批 rc=2 拦、full 回执 rc=0 放)。用户令:只合本批自有改动,主区其他会话未提交件零触碰。 2026-10-17 01:16:41 +08:00
DKChan d3a616cf9e docs(口径): roadmap 与 tests/README 的闸口径随分域改造同步
漏改即成第二份互相矛盾的清单(本批正是要消灭这种漂移):
- roadmap.md 迭代循环骨架第 5 步「重闸=全量档全绿」→ 按改动域选档;第 8 步收口五步③
  「里程碑移动更新本文件」加注:实现批禁写 roadmap,该步归文档批,实现批在 reports/ 反哺点
  列明该改哪一行。
- game/tests/README.md 门禁行与「本地闸」节的「(全量)唯一入口」→ 按域选档 + 回执含 domain
  + 合回闸按 diff 推域校验。

连带(仓库外本地配置,同批已改):~/.zcode/skills/req-card/SKILL.md 六处——description 版本注、
§5 关联文档同步面(实现批禁写 design/、产出只落 reports/、07 入册转反哺点)、§6 末卡改「产出物
落位卡」、§7 闸口径改按域并禁卡内写死闸件名单、目检两分法落点、变异验证记录表落点。
2026-10-17 00:56:58 +08:00
DKChan 8c18b52ba2 chore(基线): 06 gdd_lint 条目由存量红改回绿——R5 已修,人工确认后重生成
af94ce97 把 06 记为存量红(指纹 454510f66168=01 篇 R5 缺流程图),走的是「容忍存量」路线;
fcb8c3f8 已按 R5 意图补齐流程图把红因消掉,本批 --docs 域实测 06 exit=0(回执判「基线红→现绿(改善)」)。
基线按 baseline.json 自陈口径「人工确认后重生成」改回绿,禁让后续每次跑批都空报一条改善。
2026-10-17 00:41:46 +08:00
DKChan b27e4710b6 feat(闸): 验证闸按改动域分跑 + 迭代批禁写 design/ + 新建 reports/ 收实现批产出物
用户裁定(2026-10-17)五条:①代码批只跑代码闸、文档批只跑文档闸;②迭代批是代码实现批,
禁写 design/,文档只读、是实现批写测试与代码的输入依据;③迭代实现报告不写在 design/ 内;
④不设文档编写 skill——文档由用户在会话中讨论后落地;⑤本批属工具/规则面,不占迭代号。

一、tools/run_all_gates.sh(域划分唯一出处)
- 新增 `--code`(01 冒烟/02 单元/03 探针 --click/04 探针 --full/05 渲染闸/09 静态扫描/11 回放对拍)
  与 `--docs`(06 gdd_lint/07 doc_link/08 doc_term/08b active.md 体量);10 熵增闸两域都含
  (文档批新增或挪动 .md 同样会绊它,且纯文本秒级);不带参数=全量,改闸件本身或跨两域时用。
- 域外闸不入 NAMES,不产生假变化;同时修「基线绿 → 现 SKIP」被误判为闸况变化(--quick 回执
  此前永远自带三条假红)。
- 回执增 domain 与 not_run 字段。
- 导出 PYTHONIOENCODING=utf-8:GBK 控制台下 06/10 两闸打印 ✅/✗ 直接崩(假红)、09 的 FAIL 行
  写成乱码字节致指纹漂移(假「红项清单变化」)、末尾汇总自身崩打不出结论——2026-10-16 实踩。
- 新增代码域素材齐盘预检:game/assets/art/** 与一切 *.import 边车都不入 git(2026-09-29 裁定),
  worktree 冷检出必空盘 → main_theme.tres 解析失败 → 冒烟 V1 七项假红。缺位即拒跑并列缺哪件,
  附处置命令(cp 主区素材 + --editor --quit 刷导入;--import 不生成新素材边车)。

二、tools/render_gate.sh(空跑判绿改判红)
- 棋盘/菜单两段 golden 在素材缺位时原为 SKIP,而闸末照样打印「全绿」exit 0——一个像素都没比
  却报通过。2026-10-16 菜单废基线事故正是靠这个信号盲区混过 worktree 自检的。现改判红。

三、reports/ 新顶层目录(实现批唯一可写目录)
- 收迭代实现报告/代拍板追认单/GDD 反哺点清单;repo_structure_audit.py TOP_DIRS 与 CLAUDE.md
  Project Layout 两处白名单同批改齐(熵增闸自陈的强制口径);reports/README.md 立范围与生命周期。

四、规则文本五处同步
- CLAUDE.md:验收口径改按域;硬性红线新增「两类批」条(迭代批禁写 design/ 与根规则文件、
  产出只落 reports/、只跑代码域闸;非迭代批不占迭代号);Project Layout 登记 reports/。
- process-conventions:§3.10 批末按域验收;§3.12 补 active.md 例外(会话状态唯一源,钩子本就
  豁免);§3.13 重写为「实现批禁写文档、产出物落 reports/、反哺点由文档批裁决后写入」;
  §4 分级周期口径改三档;§2 三段流程「三·实现」行加禁写面。
- doc-conventions 载体分工表:迭代实现报告落位由 design/qa/ 改 reports/。
- architecture.md「测试与质量域」:新增「改动域划分」节(域表+唯一出处声明+素材预检缘由),
  本表是现状登记非第二份清单。
- 06-待办清单:登记本批两处代拍板(active.md 例外读法、reports/ 新顶层目录)与旧实现报告
  iter27/iter28 两份仍在 design/qa/ 未迁位的欠账。

五、连带(不在本仓库,gitignored 本地 harness 配置)
- .zcode/hooks/worktree-guard.sh:合回校验由「不碰 game/ 即全免」改为按 diff 路径推定所需域、
  要求回执 domain 覆盖之;未登记路径按最严处理,禁默认放行。旧豁免的漏洞:改闸件本身反而零验证。
- ~/.zcode/skills/iter/SKILL.md:顶部加批性质与闸域两条强制声明;批末重闸移出 doc 三闸;
  总收口产出物改落 reports/、roadmap 换代移出本批;定义面入库注明是搬运非撰写。

验证:--docs 域全绿(06 由基线红改善为绿,因 fcb8c3f8 已补 01 篇流程图);素材预检反例实测
(移走 button_stone.png → 拒跑 exit 1,还原后正常);渲染闸缺盘反例实测(exit 1 并报 FAIL);
--code --docs 互斥与非法参数 exit 2;guard 内嵌 python 编译通过并按 docs 域回执放行 docs 批。
2026-10-17 00:40:53 +08:00
DKChan fcb8c3f843 docs(gdd): 01 篇「一场战斗的流程」节补轮次流程图——06 闸 gdd_lint R5 红灯结案
根因:9846a29f 把节标题从「一场战斗:扫雷的因,战斗的果」改为「一场战斗的流程」,R5 按节名含
「流程」触发,该节内容自始无代码块图——改名即造红,非本批引入亦非内容缺失(272cc1ad 提交说明已
自陈系并行会话既有问题并另报)。

改法:按 R5 意图补图而非改节名规避(节确为流程描述,图属应有内容)。流程图内容取自本节四条编号
步骤与实现事实源逐条对齐:轮末判定优先级先判 hero 再判敌人(verdict_segment.gd:18-21 三裁定
defeat/victory/continue)、清图轮发清图奖励后换图、未清图同图续挖(battle_orchestrator.gd:1068
cleared 轮恒走 new_board)。轮内刷新与清图奖励的守卫规则归行动经济权威面,本图不复述以免双载体。

验证:gdd_lint 本文件 PASS(0 不通过,表格占比 43%/最长括号跨度 33 字/最大节点直接内容 12 行);
doc_link --strict 死链 0;doc_term --strict 疑似现行 0。
2026-10-17 00:23:41 +08:00
DKChan 053248deec docs(active): 迭代 29 已合入 master(fff4f120)——撤销「待合回」条目
用户令「直接合入,不用重测」:合并提交 fff4f120,分支 iter29-testlayers-20261016 十提交入库。
合入前卡的两个红均非本批引入——菜单 golden 已由并行会话 dbgfloat 批重制基线(332KB→319KB),
01-核心循环 R5 缺流程图归其引入批。遗留:11 号闸 parity 待批准、GDD 反哺三条、06 七项。
2026-10-17 00:15:09 +08:00
DKChan fff4f120d3 merge: 迭代29测试分层与门禁语义修正批入库(十提交, worktree g-plan2-iter29-testlayers) 2026-10-17 00:13:57 +08:00
DKChan 746c1bb46e merge: 调试入口全局浮层角标批入库——UI 最顶层、任何 UI 不遮挡(worktree g-plan2-dbgfloat-20261016)
用户定稿(对置顶钮模式的修正):不做按需出现,要「UI 最顶层浮层、不被任何 UI 遮挡」。
实现=三枚屏内角标(菜单右下/战斗 HUD/地图顶栏)合并为一枚全局浮层角标:LAYER_CONTRACT
末位新增 float 类(只落树序不注册 ModalStack——open() 遮挡记账只动登记层,故任何模态
开都不遮它,用户需求的机制根因);右下角 16px,地图屏抬至底栏上方,战斗状态角标
MarginContainer 让位;屏内三角标全退役。断言换代:smoke V2f/click_probe 遮挡判据
(设置面开中仍可见=直接验需求)/tune_probe ①⑨ 点击路径(T2 防线不动)。基线 06 刷新
(01-核心循环.md 表格占比越线为今日 9846a29f 引入的存量,本批零 design/ 改动,主区实测
同红)。全量闸验收通过;合并后主区冒烟兜底。
2026-10-17 00:13:17 +08:00
DKChan af94ce9750 fix(基线): gdd_lint 06 指纹刷新——01-核心循环.md 表格占比越线为存量(非本批引入)
本批零 design/ 改动;主区实测 gdd_lint 同红(共 10 文件 1 不通过=01-核心循环.md 表格
占比 43%),来源=今日 9846a29f 删主菜单副标题行后散文量下降推高表格占比。按「人工确认
后重生成」条款对齐指纹(exit 0/green → 1/454510f66168);文档修复归该文件属批,不在
本批范围。另 09 静态扫描本批转绿(并行会话文件头 R0 载体锁批清偿 127 处存量)——改善项
按规则不拦。
2026-10-17 00:04:45 +08:00
DKChan b6776bf097 docs(active): 补登调试入口修正批状态记录(主区遗留未提交件)并顺延编号
该会话(752c9a0a 入库)把状态记录写在了主工作区却一直没提交,这笔内容自那以后挂在主区
工作区,挡住后续任何合入。代为补登入库,内容照抄未改一字。

编号顺延:原文标 504,但 504 已被「需求卡片升 v2.0」批占用(提交 849e4b1c)——两个会话
在不同 HEAD 上各写了 504,合并即撞号(active.md 体量闸判红)。故补登笔顺延为 505,
本批(迭代 29)记录由 505 顺延为 506。三条记录按 504→505→506 排定,体量闸复验
「编号唯一、指针全活」PASS(状态记录 11 条 / 快照 10 行)。
2026-10-17 00:04:18 +08:00
DKChan 6b1e447d27 feat(调试入口): 全局浮层角标——UI 最顶层、任何 UI 不遮挡(2026-10-16 用户令)
用户定稿:调试入口不做置顶钮式按需出现,要的是「UI 最顶层浮层、不被任何 UI 遮挡」。
实现=三枚屏内角标(菜单右下/战斗 HUD 右下/地图顶栏)合并为一枚全局浮层角标:

- LAYER_CONTRACT 末位新增 {"key": "debug_badge", "kind": "float"}——只落树序(最顶绘制序)、
  不注册 ModalStack:open() 遮挡记账只隐藏登记层,故任何模态/覆盖层开都不遮它(用户需求
  的机制根因);_layer_node 补映射;main 直接子层、构建走 ui_assembler.build_debug_badge
- 位置:右下角 16px 惯例位;地图屏底栏 85px 常驻→_sync_status_entry 按 map_on 抬 offset
  至底栏上方 16px;战斗屏状态角标经 MarginContainer 让位(right 16/bottom 52)不再被压
- 屏内角标全退役:menu_screen/board_zone_view/level_map_screen 三处 debug_badge 删除,
  main 两处接线与 _sync_status_entry 四条可见性/置灰行清除(浮层常显不置灰——点它就是开浮窗)
- 浮窗 desc 文案改「UI 最顶层「调试」浮层角标随时可开——任何界面不遮挡」
- 断言/探针换代:smoke V2f 查 main.debug_badge boot 可见;click_probe 遮挡判据移至设置面
  开中段(浮层角标此时仍应可见=直接验「不遮挡」);tune_probe ①点击路径与⑨对局中角标
  全改 main.debug_badge(T2 防线断言不动——浮窗 non_locking×遮挡复活×has_open 组合回归)

冒烟 1127/0 过;全量闸待跑。
2026-10-16 23:53:57 +08:00
DKChan cc575b2ce3 feat(闸): 文件头闸增补 R0 载体锁死——头注非空时首行必须 ## 文档注释开头
清偿批落地后按 §1.4.1 收尾条款生效;盲测=旧式 # 头注命中/## 与无头注放行
2026-10-16 23:28:09 +08:00
DKChan 9a72394652 chore(代码卫生): 头注存量清偿批——82 文件按两类白名单改写为 ## 文档注释载体
按 code-conventions §1.4.1 第三轮定稿执行:core 22+schemas 18+presentation 根 14+views 28,全部头注 #→##、删日期/变更叙事/GDD 与架构反向链接/字段与域清单/机制描述,保留职责摘要+真实使用约束(防事故禁令/单一入口/信号契约每信号一行)。main.gd 31→5 行、save_manager 45→5 行、adventure_runner 37→5 行为最大单件。子代理分模块执行(波一 core+schemas、波二 presentation+views,并发≤2)。验收=tools/verify_comment_only_change.py 逐字节校验(82 文件头注区外逐行一致=零行为变更)+audit_file_headers 全绿;纯注释批免冒烟(先例 5843270)
2026-10-16 23:28:07 +08:00
DKChan 1c034f555f chore(冒烟): 菜单 golden 基线主区重采——旧基线锚在字体回退态,05 渲染闸判红消解
触发原因(呈现类改动批换代强制说明项,双成因):
① 字体回退态——入库基线 game/tests/golden/menu_boot.png(dac9a94b 于 menusub worktree 重采)
   的左侧标题与按钮文字是平滑比例字,即自定义像素字体未生效时的回退渲染;当前 master 渲染
   为 Fusion Pixel 像素字。基线锚在回退态违反 Q5「基线禁锚回退态」。
② 右侧世界预览层位置与缩放不同——基线整体偏右约 16px、怪物更淡;shot_probe 日志存
   「Can't change the size of a SubViewport with a SubViewportContainer parent that has
   stretch enabled」警告,该层尺寸随采集容器状态漂,是 worktree 采集与主区采集结果不同的成因。

判定依据:同环境连采两帧逐像素差 0.00%(排除采集抖动),基线 vs 当前 4.61%(47,187/1,024,000
像素,失败线 2%),差异 94.7% 集中在左侧文字区/右侧预览层/右下调试角标三处;差值分布含 14,783
个 129-255 硬翻转像素(两套字形签名)。经用户目检确认当前实现为正确画面。

处置:主区跑 tools/golden_baseline_refresh.sh --menu 重采(禁在 worktree 采,本次即该成因);
render_gate 复验 menu_boot.png changed=0.00%、棋盘三张 0.00%、整闸全绿(exit 0)。

未结案(另一批处理,本提交不含):① SubViewport stretch 警告根因与该预览层目标尺寸/位置的设计
口径;② 重采脚本只守卫字体文件在位、不守卫字体真生效,缺机检自检(整块区域中间灰阶占比方案实测
不区分,需改测标题字形墨点邻域);③ 菜单 golden 整屏一比区的分区化判据。
2026-10-16 23:16:28 +08:00
DKChan 5c99c84414 merge: 成长系数条定性落账入库(worktree g-plan2-growthcoef-20261016)——用户口径数值校准类,并入数值欠账组随组重新归属(Beta阶段面);待裁两读消解;纯文档合入,三闸全绿 2026-10-16 20:08:48 +08:00
DKChan 04df1ede5f docs(06): 成长系数条定性落账(2026-10-16 用户口径「与 M4 数值任务就是一类」)——条目标题「语义待澄清」改「同日用户定性=数值校准类」;状态行 待裁→已定性:并入数值欠账组随组重新归属(按里程碑立规属 Beta 阶段面,Alpha 不排期),甲/乙两读随定性消解;维持不进 08(数值调优义务 v1.6 起不入版本标准)。三闸全绿(gdd_lint 0 不通过/doc_link 死链 0/doc_term --strict 疑似现行 0) 2026-10-16 20:08:32 +08:00
DKChan 683a79b92e merge: playnote二轮对照批入库(worktree g-plan2-playnote08-20261016)——08 v1.8 状态面板行名随改名批换代+瘦身义务入册(部分在役);成长系数节奏语义两读挂06待裁不进08;路径长度统计补进06节点图重构专条;06新立状态面板瘦身专条(08同步面);纯文档合入,三闸全绿 2026-10-16 19:33:54 +08:00
DKChan d728c52996 docs(playnote二轮): playnote 增量三条按讨论必要性框架入库(2026-10-16 用户令:不需要讨论的写进 08 并同步 06、需要讨论的挂 06 待裁)——08 升 v1.8:①「三 · 界面」暂停层行改名状态面板(局内)(随 2026-10-13 改名批换代,08 行名漏扫)并在役→部分在役:瘦身义务入册(去跨关解锁内容〔秘宝匣解锁态 12 行概览/天赋树已购概览〕、只留本局五件〔带的秘宝/已获专长/当前属性/现有 GP/钥石总量〕,零待裁点=用户原话清单);②成长系数节奏条语义两读(读法甲节奏缺陷归数值欠账组/读法乙设计哲学归难度曲线反哺)不进 08、挂 06 专条待裁;③路径长度统计与递增增幅补进 06 关卡节点图重构专条作设计输入(验收方向:实测三关基线→定递增曲线与增幅尺度)。06 新立两专条(状态面板瘦身=08 同步面〔含 camp.md/元进度双入口框架反哺点待裁〕+成长系数待裁条)。三闸全绿(gdd_lint 本批 2 文件 0 不通过/doc_link 1224 链接死链 0/doc_term --strict 疑似现行 0) 2026-10-16 19:33:44 +08:00
DKChan 5167775a72 docs(迭代29): 登记「暂不合回 master」裁定与两个非本批红的取证
实现报告第六节与 active.md 未决面各加一条:本批九提交留在分支 iter29-testlayers-20261016,
待 master 侧两红处理完后重跑重闸再合回。取证=在主区(不含本批改动)跑同一渲染闸同样
menu_boot changed=4.61%,gdd_lint 的 01-核心循环 R5 红灯亦由 master 提交信息自陈非本批引入。
明确不代为刷新基线——避免把真实视觉差异固化成存量。
2026-10-16 16:49:18 +08:00
DKChan 3dc168cd3d merge: 同步 master(60449941 迭代 30 编入批 + 08 状态刷新批)并解决 roadmap 冲突
roadmap 冲突面:本批改了迭代 29 行与「迭代进度/近期主战场」两处,master 同期编入了迭代 30
(UI 呈现三卡批)并把空位行顺延为「迭代 31+」。以 master 为基重新应用本批三处换代:
迭代 29 行(卡片 v1.4→v2.0、门列→实耗、状态→已入库)、迭代进度行、近期主战场行
(下一前沿改指迭代 30,迭代 29 收口遗留注明 11 号闸待批准)。
active.md 与 06 无冲突(自动合并):状态记录 505 在册,快照三行换代保留。
2026-10-16 16:33:15 +08:00
DKChan 2e9850a633 docs(迭代29 T8 收口): roadmap 换代 + 实现报告 + active.md 快照与状态记录
roadmap:迭代 29 行换代为已入库(需求卡片 v1.4 → v2.0、估时 5.5–7d → 6.0–7.5d、门列改为实耗),
并去掉「卡片事实基线待 v2.0 重核」的开工前警告(v2.0 已成立);迭代进度行与近期主战场行同步换代,
注明遗留=11 号闸 parity 对拍待批准发起。
active.md:快照三行(更新于/最新闸态/已裁在册)换代,追加状态记录 505。
实现报告落 design/qa/iter29-实现报告-2026-10-16.md(九节:概览/四件事/代拍板十二项/经裁四项/
闸与读数/待裁与遗留)。
2026-10-16 16:31:19 +08:00
DKChan c3b6403018 docs(迭代29 T8): 回写架构事实源三张表 + 06 登记遗留七条
architecture.md「测试与质量域」节(测试域唯一事实源)按批末真实状态回写:
· 五模块归属表:run_all 承载由「27 套件」改「33 套(单元+L2 集成)」,判定口径列由「SCRIPT ERROR
  扫描缺失/断言数下限缺失」改为三硬闸齐备,并记下「子进程输出须落盘再读——OS.execute 管道在本机恒空」
  这一本机事实;probe_gate 增 screen_flow_probe 与 verdict 判定口径。
· 三条判定硬闸矩阵:probe_gate 的「退出码优先」与「SCRIPT ERROR 扫描」由缺失改在位;run_all 的
  「SCRIPT ERROR 扫描」「断言数下限」由缺失改在位;render_gate 的脚本错误扫描维持缺失并注明本批未收。
· 静态扫描域 S 表:S3 由「未落地…路径不存在恒零命中」改「在位(warning 级,路径已修正+零命中自检)」;
  S5 由未落地改「在位(硬失败)」。
· 新增「三层承载与判定原则」小节:L1/L2/L3 各自的判什么/承载/入闸,以及判定原则——三硬闸是底线、
  PASS 串不作判据,两类静默失效(扫描面为空、子进程输出丢失)都以显式自检拦住。

06 待办清单新增「测试域遗留」条,集中登记本批未收的七项(均不阻塞不排期):余下 3 个 core 零指名
模块、render_gate 的脚本错误扫描缺失、S7/S8(S6 亦仍在 TODO)、E 级卫生件、行覆盖率度量、
smoke_all 拆分、parity 触面判定偏粗。
2026-10-16 16:18:17 +08:00
DKChan 7daa92f61f docs(迭代29 T7): 游离脚本台账 + golden 时效判定
台账:game/smoke/ 15 个不带 .tscn、不入任何闸的手动入口件逐个定性成表(用途 + 触发方式 +
结果由谁判),判据=头注自陈用途 + 有无外部引用(工具脚本/产品码/CLAUDE.md 在册入口)。
存疑一律按在役登记并标注(禁「没看见=死件」式清理):adventure_monte_carlo/verifier_batch/
reward_expectation 三项是 CLAUDE.md 在册入口,auto_player/battle_driver/level_autoplay 是被
preload 的库件,board_stat_probe/calibrate_boards 是工具脚本取数端,damage_probe/defense_scan/
skill_rhythm_probe/rhythm_batch/monte_carlo 是诊断与批量采集件,dump_battle/experiment_density
标注为一次性历史取数件。纪律写进表下:新增手动件必须同批登记,退役走 doc-conventions 第 10 节。

golden 时效判定:**先判再动**——跑渲染闸实测棋盘三图 changed 0.00%/0.00%/0.00%、菜单 0.15%,
均远低于 2% 阈值 ⇒ 判有效,基线留在位不重制(禁「重制一下就绿了」掩盖真实视觉回归)。
新建 game/tests/golden/README.md 记载判据纪律与本次判定记录,供后续换代面按同一把尺复核。
2026-10-16 16:06:14 +08:00
DKChan c5a433b1d3 fix(迭代29 T6): 扫描域——S3 路径修正与零命中自检,补 S5 规则
S3 此前扫的是裸路径 `core`(仓根无此目录,2026-09-24 布局迁移后实际为 game/core)⇒ 恒零命中恒绿、
什么都不扫,白守了「数值单一事实源」这条红线。修正为 game/core,并豁免注释行与 config_db.gd 自身
(数值单一事实源的正主,它的单点 load 是本规则的例外)。
补 S5(core 禁裸引用 autoload 全局标识符——--script 模式 parse error):形态=标识符后紧跟 `.`
的成员访问才算裸引用,排除注释行与被引号/斜杠包裹的字符串字面量("[ConfigDB/%s]" 日志前缀、
"/root/ConfigDB" 取节点路径都属文案与路径,不是标识符引用)。core 层实测零命中。

新增零命中自检:每条规则的扫描路径收为单点变量(DIR_CORE/DIR_PRES),规则自己先数一遍扫描面
文件数——数为零一律判红,且规则体包进自检成立的分支(避免判红之后又打出「ok」的自相矛盾输出)。
这样路径写歪时自检会跟着一起歪、一起红,不会再出现「恒零命中恒绿」的静默空转。
变异验证:把 DIR_CORE 改回原错误值 `core` → S3/S4/S5 三条同时判红「扫描面为空」。
2026-10-16 16:01:39 +08:00
DKChan d091c98163 feat(迭代29 T5): L1 覆盖补洞——4 个零指名 core 模块 + 呈现层两件直接单测
新增六套(run_all 27 → 33 套),全部进 manifest,全绿:
· core/board_generator_test(9 条):尺寸与 board_gen 表一致、每个安全格数字恒等于八邻雷数
  (全盘逐格复算)、同种子雷集/数字集逐位一致、可推理性度量与清图判定自洽。
· core/minesweeper_rules_test(12 条):装板带初始扩张揭示且未铺满安全格、安全格余量=总数−已揭示、
  挖已揭示格拒(target_revealed)、挖非相邻格拒(not_adjacent)、fx_reveal 推进揭示并递减余量、
  插旗落旗态与计数、目录外意图被拒。
· core/config_db_resolver_test(8 条):ceil 进度键偏难语义(请求 (1,1) 命中 (1,3) 而非 (1,0))、
  行集按表文件行序返回、ceil 行集、难度乘数 clamp 上下限、未登记坐标返回空修饰。
· core/config_db_cross_validator_test(4 条):正向全对齿零错(防误伤)、悬空 skill_id 必报、
  buff 挂主角侧状态必报(cast_side)。
· presentation/hud_presenter_test(5 条)+ battle_narrator_test(9 条):文案逐拒绝原因正确、
  兜底不吐空串、数值带入、胜负互异、关卡收束态恒定、Boss 名带入。
三屏壳的断言面由 T4 screen_flow_probe 承担(六步流程每步判屏级互斥),不另起第二载体。

变异验证:hud_presenter 的「AP 不足。」改漏句号 → hud_presenter_test 精确见红。
另有一批「写反的断言被实现抓出」的证据(首跑即红、逐条订正后转绿):装板并非零揭示而是带初始扩张、
挖受英雄邻接约束、插旗需 flag_range_free 或相邻且要先给足 AP、技能 type 是 basic 不是 attack、
状态表 id 键是 effect_id 不是 status_id、battle_end_text 在 level_end=true 时恒为「关卡通关!」。

顺带实证本批核心命题:config_db_resolver_test 首跑因诊断回调的 lambda 形参类型写错
(首参是表 id 字符串而非 int)触发 Callable 调用失败——脚本错误不改退出码却让整个解析函数静默
返回 null,套件仍会报「全绿」。正是脚本错误扫描存在的原因。
2026-10-16 15:55:33 +08:00
DKChan 1458d94b0e feat(迭代29 T4): L3 屏壳切换探针 screen_flow_probe,入轻闸默认段
新建 game/smoke/screen_flow_probe.gd/.tscn:走 菜单→营地→菜单→冒险→(关卡屏⇄战斗屏)→放弃→终局→菜单
六步主流程与两条回退路径,每步断言屏级互斥 + 流程状态位。与 ui_click_probe 分工:那件走「点某个按钮
有没有反应」的行为走查(含战斗推进与结算数值面),本件只走屏壳与流程状态,不推进战斗不碰结算数值
——全库 change_scene 零命中、屏切换全靠 visible 互斥,这正是最容易被装配顺序改动悄悄破坏的面。

判据两处订正(首跑实测抓出,都写进注释防复发):
① 屏标记不能裸看 visible——战斗容器 battle_root 在局外也 visible,会把 boot 态误判成「菜单与冒险
   同时在场」;冒险屏改取流程状态位 run_scope.is_adventure。
② 互斥不能用「可见屏计数 ≤1」——终局覆盖层合法叠在冒险内容之上(终局态 is_adventure 尚未收束,
   是设计如此);改为冲突对判定,合法叠加仅「终局+冒险」这一对。
变异验证:boot 后强置 camp_overlay.visible=true → 精确命中「菜单与营地同时在场」两条断言见红。

run_all.gd:负面套件(negative=true)全文输出折叠、只回显结论行——它输出里的 Parse Error 是预期产物,
回显出去会让编排层的日志扫描把集成/负面用例的正常输出误判成真实脚本错误(首跑即撞)。

入轻闸默认段(ui_contrast 之后);轻闸 --quick 墙钟 363s → 405s(新探针约 40s),轻闸上限内。
2026-10-16 15:41:01 +08:00