From 8a01dfc4fd7d46cbf17ae0b7889731748d2438c7 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Sat, 26 Sep 2026 01:29:20 +0800 Subject: [PATCH] =?UTF-8?q?docs(state):=20=E8=90=BD=E6=A1=A3=E5=B9=B6?= =?UTF-8?q?=E8=A1=8C=E4=BC=9A=E8=AF=9D=E9=81=97=E7=95=99=E7=99=BB=E8=AE=B0?= =?UTF-8?q?=EF=BC=882026-09-26=20=E5=86=85=E5=AE=B9=EF=BC=8C=E4=BC=9A?= =?UTF-8?q?=E8=AF=9D=E5=B7=B2=E7=BB=93=E6=9D=9F=E6=9C=AA=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=8C=E7=94=A8=E6=88=B7=E6=8E=88=E6=9D=83=E4=BB=A3=E4=B8=BA?= =?UTF-8?q?=E6=94=B6=E5=8F=A3=EF=BC=89=EF=BC=9A06=20=E4=B8=A4=E6=9D=A1?= =?UTF-8?q?=EF=BC=88=C2=A78.2=20=E7=BC=A9=E6=94=BE=E7=BA=AA=E5=BE=8B?= =?UTF-8?q?=E5=88=86=E7=BA=A7=E4=BF=AE=E8=AE=A2+=E5=91=88=E7=8E=B0?= =?UTF-8?q?=E5=B1=82=E6=B5=8B=E8=AF=95=E5=88=86=E7=BA=A7=E4=B8=8E=20UI=20?= =?UTF-8?q?=E9=A9=B1=E5=8A=A8=E5=A4=B9=E5=85=B7=E5=91=A8=E6=9C=9F=E5=8C=96?= =?UTF-8?q?=EF=BC=89+active.md=20=E5=8F=B0=E8=B4=A6=20160-164=EF=BC=88?= =?UTF-8?q?=E8=8B=B1=E9=9B=84=E7=B2=BE=E7=81=B5=E7=B3=BB=E5=88=97=E4=BA=94?= =?UTF-8?q?=E6=89=B9+TD=20=E5=A4=8D=E6=A0=B8+=E9=AB=98=E5=A2=99=E7=93=A6?= =?UTF-8?q?=E7=89=87=20v9.3+=C2=A78.2=20=E7=99=BB=E8=AE=B0=E6=89=B9?= =?UTF-8?q?=EF=BC=89=E2=80=94=E2=80=94=E5=86=85=E5=AE=B9=E9=9B=B6=E6=94=B9?= =?UTF-8?q?=E5=86=99=EF=BC=8C=E4=BB=85=E4=B8=BA=E8=A7=A3=E6=8C=A1=E6=9C=AC?= =?UTF-8?q?=E6=89=B9=E8=90=BD=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/gdd/06-待办清单.md | 30 +++++++++++ production/session-state/active.md | 84 ++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) diff --git a/design/gdd/06-待办清单.md b/design/gdd/06-待办清单.md index 31243ade..2b85b083 100644 --- a/design/gdd/06-待办清单.md +++ b/design/gdd/06-待办清单.md @@ -293,6 +293,21 @@ **状态**:待办(档位已定案,条款修订随表现层升级批) +#### art-bible §8.2 缩放纪律分级修订(改规则不豁免,2026-09-26 登记) + +**现状**:棋盘小人贴图批(台账 158-162)用户实机拍板小人 1.5×(32×32 源在 46px 格),与 §8.2「运行时只允许整数倍缩放,禁非整数缩放」一刀切规则冲突。用户裁示:**更改规则,不做个案豁免**。 + +**修订方向(待 art-bible 并行在飞批落籍后实施,暂未动文档)**:§8.2 缩放纪律按资产类别分级—— + +- **甲类·文本与语义件**(数字、图标、旗、砖面 tile、格面纹样):维持严格整数倍缩放硬规则(可读性/语义精确性优先,禁非整数不变)。 +- **乙类·角色与单位精灵**(有机形体、非文字):允许运行时非整数倍缩放(NEAREST 过滤不变),容忍轻度像素宽窄不均;判据=实机目检,可感不适即回整数档。 + +**影响面**:甲类判据零变化;乙类今后免逐案豁免(豁免蔓延断根);规则文本与实际实践重新一致;§8.2 内「1920 档 1.5× 全局缩放策略」待决项(上一条②)与本分级同构,样张批可按此口径一并裁。 + +**归属**:[art-bible](../art/art-bible.md) §8.2 · art-bible 并行批落籍后的修订批(owner 明示修订,结构冻结语义内合法) + +**状态**:待办(2026-09-26 用户裁「改规则不豁免」;修订窗口=art-bible 在飞批收口后) + #### 美术资产规格两项待样张批裁决(1920 档缩放策略 / 帧数规格) **现状**:art-bible §8 已成文(2026-09-23)但留两项缺口,用户指令「保留缺口,样张批时提醒」。 @@ -307,6 +322,21 @@ **状态**:待办(样张批开工时先呈本条提醒再动工) +#### 呈现层测试分级与 UI 驱动夹具周期化(2026-09-26 登记) + +**现状**:2026-09-20 卡断 bug 实证「模拟/冒烟全 headless 逻辑层,UI 渲染类盲区」、当时「UI 驱动夹具待立项」欠账至今。2026-09-26 用户拍板补 A 档(台账 163:ui_input_probe 七→十一断言,呈现层状态/几何面已单元化);B 档(视口截图像素断言)/C 档(黄金图逐像素 diff)重、暂缓。用户裁示:**重测试不进每次变更,统一周期执行**——测试分级如下: + +**分级(判据=成本×回归价值,轻闸便宜到可每次跑,重闸统一周期)**: + +- **每次变更必测(轻量闸,headless 秒–分钟级)**:`run_smoke` 全量 + `ui_input_probe`(含呈现层十一断言)。触碰 presentation/ 还需加跑 `ui_click_probe` + `ui_layout_probe`。此三件不涉渲染,任何改动后即可跑。 +- **周期内测(重闸,统一周期=样张批/表现批收口 或 固定周检)**:B 档视口截图像素断言(需真渲染进程)、C 档黄金图对比(需视觉冻结后建基准,美术未冻结前基准图会反复重制)、真人实机目检清单(走路/挖掘/朝向/观感类)、MC 大扫描。 + +**前置依赖**:C 档硬前置=样张批冻结视觉(否则黄金图基准反复作废);B 档可与样张批同窗试点。 + +**归属**:测试基建批(B/C 档立项)· 周期执行入批收口清单 + +**状态**:待办(2026-09-26 用户拍板分级口径;A 档已落地清偿状态/几何面,像素面盲区归 B/C 档) + ### 数据配置 diff --git a/production/session-state/active.md b/production/session-state/active.md index 850d3ef4..b19e5949 100644 --- a/production/session-state/active.md +++ b/production/session-state/active.md @@ -12,6 +12,34 @@ ## 当前状态快照(收口批先更新本节,再追加台账;≤10 行) +- **更新于**:2026-09-24(**棋盘立体中档定稿冻结批**,worktree depth-freeze-20260924,批次 b4e7200/快进合并,台账 157):用户实机三档对比拍板「中档没有问题」——DEPTH_PX=8/DEPTH_BEVEL=0.6 常量定稿默认生效(每战棋盘即中档厚度);原型入口全退役=F9 键+D 区「立体:X」按钮+depth_cycle_requested 信号链(ApBarView/BoardZoneView/main 组合根同批拆除,净 −59 行),BoardWorld 头注随改。**验证**——worktree 缓存刷新零解析错+冒烟 557/0+ui_input/click/layout 三探针绿;主区冒烟 557/0。**欠账**——art-bible §1.4 立体参数注记待并行美术批(art-bible v2.2 在飞)落籍后补写。**标旗**——board10 旧 worktree(分支已并)残留并行会话未提交实验(board_gen.tres/enemy.tres/qa-data 标定数据)未动 + +- **更新于**:2026-09-24(**状态图标接入批**,worktree status-icons-integrate-20260924,批次 d799b4b/合并 71ae51c,台账 156):用户验收定稿九枚后指令「可以去使用」——战斗 HUD 状态槽程序化占位字形退役换定稿 PNG(`game/assets/ui/icons/status_.png` 九键独立文件,effect_id 恒定映射,命名圣经 §8.3),叠层 ×N 角标保留,极性染色与清场 ✕ 前缀删除(绿↑红↓极性语言内化于图标本体);C 区槽 24px/B 区站桩 16px。**验证**——worktree 冒烟 557/0+四探针 PASS(ui_probe 占位字形断言改纹理判据+九键全覆盖)+布局探针改前改后零差异+doc 三闸对基线一致;合并后主区冒烟 557/0 + +- **更新于**:2026-09-24(**状态图标需求定稿+清盘批**,台账 155):用户诊断「参考来源就错了」(杀戮尖塔等业界示例方向性作废)并逐键口述纹样定稿——**主体三轴白剑/白盾/白眼+右下角箭头语言(绿↑一档/红↓一档/双绿↑两档蓄力),同族共用同图(attack_up=enrage、weaken=sapped、ac_up=fortify),归属方由 HUD 挂位表达**。落文 art-bible §4.6.1 v2.2;候选批全清(历轮候选+代理五包+业界参考+笔记全删);程序化初稿 9 枚已生成(`candidates/status-icons-2026-09-23/图标初稿/`+`04-初稿九枚对照.png`)待验收;剑朝向按「剑尖朝右上」实现、原文存歧义已注记 + +- **更新于**:2026-09-24(**垂直切片转正结构批**,worktree rename-game-dir-20260924,批次 13f93c7/合并 6cfeae0,台账 150):用户拍板正名——`prototypes/dungeon-sweeper-vertical-slice/` 迁为 **`game/`**,26 文件路径同步(CLAUDE.md/tools/tests/QA 脚本/GDD/架构文档),钩子零改动,active.md 历史条目旧路径刻意不动;static_scan 规则集首跑收敛(S1/S2 签名收敛+注释排除,S4 实扫 game/core)。并行撞车已解:与伤害管线批(149)rename/edit 冲突两文件,damage_controller 按其内容落 game/ 新路径,两批共存。**事故入账**:删旧目录连带删除 179 个未入库格面试产 PNG(代码零引用+色板已过时+冒烟探针证零依赖;教训=删未跟踪目录先隔离)。**验证**——master 冒烟 557/0+五探针全绿+三闸 8/7/1+static_scan 绿。试玩改在 game/ 布局下进行 + +- **更新于**:2026-09-24(**伤害管线单据化批**,worktree damage-pipeline-20260924,批次 5 笔/合并 d8be468,台账 149):伤害对象抽象补全——新建 `core/damage_controller.gd`(九栏伤害单据+五兑付配方封闭+唯一管线),battle_orchestrator 六调用点退化开单点(掷点/折扣/暴击/克制/池乘/下限/行文本全迁入,`_defender_ac`/`_clamped_pool` 留薄委托),unit_container 增 `unit_died` 死亡事件信号(单位自行宣布)。用户三裁决:目标结账时刻照规则解析;现行=段界结账 B(授予段尾/清图批同步点/战斗段尾),开单即结 A 留回切位;死亡事件怪死作废其未结单据、主角死终止兑付。**验证**——冒烟 557/0 双模式全绿+A/B 对拍四配置全确定且真实分岔(行数恒等纯次序位移)+三探针 PASS+doc 三闸基线一致;战斗结算 v0.24。**遗留**——历史基线读数以段界结账口径重测归曲线调参批;批内提交信息"台账 148"字样系撞号前旧称,以本批 149 为准 + +- **更新于**:2026-09-24(**状态图标代理下载批**,台账 148):用户开启网络代理(本机 127.0.0.1:7897 系统代理),itch.io 五包直取成功全落 `_手动放入/`——**Akami Buff&Debuff Vol.1(CC0,20 枚手绘徽章)/Softgrid Tiny Pixel(可商用,40 枚×16/32px 像素)/Vivid Motion 23(动画帧,演出参考)/SoggySocks 免费样例 3 效果(动画)/aland Indie Game Feel(可商用无署名,16 张 1024² 精灵表)**;语义硬货=akami 全套+softgrid 全套+aland 切图集(红剑下箭/红盾破/沙漏/眼球/肌肉臂/魔眼)。九键候选已换装(akami__+softgrid__ 共 34 枚),新主审图 `03-终选总览.png` 待用户终选;aland 切图供补选 + +- **更新于**:2026-09-24(**状态图标 v3 终局否决+用户接管自采**,台账 146):用户裁决三轮候选(game-icons 剪影/7Soul 技能画/Kenney 符号)全不达审美关,采购权移交用户自助——itch/craftpix 手动下载丢 `_手动放入/`(挑选标准在批内 `_手动入口.md`:CC0/CC-BY/明示可商用+像素游戏风+统一容器正负成对+32×32)。根因自陈=沙盒网络墙(itch/craftpix/icons8/flaticon/svgrepo 全 000)隔断优质包聚集地,可达域内无更优源。方向 A 程序化白符自产=口头备选未启动。九键候选作废待清理;01 业界笔记/参考板与 02 语法验证存档有效。本会话钩子缓存故障需重启会话解除(config.json 绝对路径修复已落盘) + +- **更新于**:2026-09-24(**棋盘 Node2D 渲染迁移 Phase A 实施批**,worktree board-node2d-phase-a-20260923,批次 e312072/合并 1679d25,台账 145,单子 agent 实装+主会话集中验证):D 区棋盘本体 Control→Node2D 落地——BoardView 公共面契约逐项保持(探针/组合根零改造),内部=壳+SubViewport+BoardWorld/CellUnit 五层叠序程序化 `_draw`(texture 槽位全留,终稿 1:1 换入);输入=`_gui_input`+板级公式单点 `_cell_at`(stretch 钉死 1:1);新增 ui_input_probe 端到端输入探针六断言×2 绿;`cell_size` 契约化+`set_world_font` 挂点;架构注记三处(architecture.md v1.3/HUD框架 v0.9/battle.md)。**验证**——冒烟 557/0 双跑+五探针 PASS+doc 三闸 8/7/1 零新增。**遗留**:draw calls<200 真机验证项;2px 格间隙死区语义变化(左/上邻格);Phase B(B 区舞台)硬前置=样张批冻结。同会话前批=停点前移实施批(d326df5,台账 143)已收口,批内代拍板三项待追认 + +- **更新于**:2026-09-24(**状态图标符号语法候选批 v3**,素材候选零代码,台账 144):用户认可通用符号语法后令再筛免费可商用站。可达域=OGA/GitHub/已落盘包(svgrepo/craftpix/icons8/flaticon 四站新探全墙)。v3 主推 **Kenney 两包 CC0 符号**(九键 26 枚入 `九键候选/`,新主审图 `02-符号语法候选总览.png`=白符+金/红极性筹码示范);语义缺口=怒目/裂盾/眼三纹样无现成件(补法=方向 A 程序化或 itch 手动包);三对纹样跨键重复(broken-heart/arrowDown/hexagon_out)挑时避让。剔除=Admurin(CC-BY-SA)/Daneeklu(纯攻击特效,转演出参考)/DCSS(无状态件出局);7Soul 转徽章格面参考池。待用户逐键点名 + +- **更新于**:2026-09-23(**停点前移实施批**,worktree stoppoint-shift-20260923,批次 8eddcdd/合并 d326df5,台账 143,双子 agent 并行实装+主区双跑):用户授权「开工,子 agent 逐步推进」。**代码**——LevelRunner `start_level_external` 加 `defer_entry` opt-in 尾参+`present_entry_choice()`(入口候选呈现零 RNG 消耗,pick 走同一 `_enter_node`);AdventureRunner 按 level_started→choices_presented 顺序接线;LevelStripView 整体退役(gp/钥石行最小面迁 C 区角色信息底行——子 agent 代拍板偏离项);底行 520→548;headless 驱动面(MC/verifier/冒烟四段/点击探针)同步 pick 入口。**GDD**——HUD框架 v0.8/battle.md/关卡节点地图 v1.2/冒险结构 v0.9 四文件对齐三区;art-bible v2.1 连带(四区→三区+1036×504);06 条目解决移除。**验证**——冒烟 557/0(worktree+主区双跑,旧 553→+4 停点断言);三探针+ui_tune PASS;零漂移=MC 12 局 RUNSUM+verifier 16 局 VJSON 与基线逐位一致;doc 三闸 8/7/1 零新增。**批内代拍板三项待追认**:B/C/D 字母不重编/28px 归 C/D 底行/进度呈现由选路覆盖层节点态承载不另设组件。遗留:RouteOverlay 入口停点标题沿用「继续前进(战斗房)」措辞,归表现微调批 + +- **更新于**:2026-09-23(**状态图标业界参考调研批**,纯调研零代码,台账 142):7Soul 技能画九键候选被用户二次否决(「我要的是那种状态图标」)——诊断为**技能图标≠状态图标**(状态图标=符号系统:单色简笔+极性色+数字角标,非插画)。已扒 Slay the Spire 1/2+WoW 实机截图四张(网络墙绕行=图片代理 OSS+--ssl-no-revoke),抠七处特写拼参考板 `candidates/status-icons-2026-09-23/01-业界参考对照.png`+笔记 `01-业界参考笔记.md`(五条业界语法+九键符号直译表)。圣经 §4.6 金/红极性通道与业界同构获实证。三方向待拍板:A=⚙程序化模板自产(推荐)/B=itch 手动包/C=混合;7Soul 不删转徽章/格面参考池 + +- **更新于**:2026-09-23(**停点前移批 06 登记批**,worktree todo-stoppoint-register-20260923,合并 c221742,台账 141,纯文档):用户拍板登记。06-待办清单 冒险循环/关卡节点地图 节新条目「**Alpha 第一批:冒险开局停点前移——关卡画面常驻枢纽(节点图先于首战+进度条退场落地)**」——现状段(倒置反馈+两裁定:进度条退场 B/C/D 三区/LevelStripView 退役不迁移 RouteOverlay 承接)+执行面四项(①LevelRunner 停点模式+RouteOverlay 常驻开合 ②LevelStripView 删除面含 ui_probe :77-78/:188 ③GDD 修订面三项 ④冒烟停点断言)+随批三待裁决(B/C/D 重编字母/28px 归属/关卡画面进度呈现形态)+归属(Alpha 第一批,建议先于棋盘 Phase A,零硬依赖)+状态(待点名开工)。doc 三闸对基线一致(8/7/1 既有零新增)。关联:ADR-0006+迁移方案已落籍(台账 140),两实施批(停点前移/棋盘 Phase A)均待用户点名 + +- **更新于**:2026-09-23(**棋盘 Node2D 迁移批起草**,worktree board-node2d-plan-20260923,批次 3 笔/合并 ce56e27,台账 140,纯文档):用户拍板 Node2D 重构只迁战斗棋盘(B 区战斗画面舞台后续批)。三件落籍——①ADR-0006 新立:渲染技术分工表(Node2D=D 棋盘〔Phase A〕+B 舞台〔Phase B〕;Control=A/C 区+D 区 AP 条/toast+B 区明细带/日志+全部弹层)、SubViewportContainer 模式、板级公式命中(非逐格 Area2D)、素材槽位按 §8.2 暂定档预留(程序化占位继续服役,零素材依赖);②ADR-0003 Status 部分取代注记(「禁盲目迁移」解除,探针成本实证收敛=`_cells` 键面+`click_cell`+`cell_size` 三点,公共面契约保持则探针零改造);③Phase A 迁移方案(改造清单/探针实证表/1–2 天估时)。**同批追加两裁定落文**:战斗屏进度条退场(战后回关卡画面,进度只留关卡画面,目标形态 B/C/D 三区);LevelStripView 退役不迁移——关卡画面由 RouteOverlay 升级承接(节点态语义与压缩条同族 UiKit token),逻辑层数据面零改动,停点前移批删除面清单已列(ui_probe :77-78/:188 两断言在内)。GDD 四区表/常显条款/battle.md 28px 再分配三项修订面归停点前移批 + +- **更新于**:2026-09-23(**状态图标复用重选批**,素材候选批零代码零提交,台账 139):用户否决 game-icons 矢量剪影风九键候选(「不太适用,太难看」)并令移除——旧 26 枚 SVG 已从 ui-reuse 批删除(节点图/营地十枚保留,批指引同步注记)。另起 `candidates/status-icons-2026-09-23/`:主推 **7Soul 496 包(CC0,OGA)** 像素游戏风——九键 27 枚精选(总览图 `00-九键挑选总览.png` 语义自检三轮)+ S 族整池 111 枚待翻;itch.io/craftpix 本机网络不可达,三款口碑包留 `_手动入口.md` 待用户手动下载。OGA 其余候选全验货剔除(700+ 剪影同族/painterly 与 200 合集与 neon 系 CC-BY-SA/magic 仅 6 纹样平滑风/Sara 16px 过糙/DCSS 系弹道特效非状态件)。待用户审阅挑图;挑中后改色+出 PNG 归接入批 + - **更新于**:2026-09-23(**关间大奖励+L2 收紧双刀批**,worktree hp-bonus-scan-20260923,批次 a4edb1e/合并 b39ee62,台账 134):用户确立**双合格线**(零强化过墙率得低+循环成长后逐渐上升达可观值)并指令数值判定改真实游玩口径(与并行批次 132/133 直入口退役同向衔接,本批扫描只跑 adventure+campaign 两段)。两刀——adventure.tres 关间大奖励 10→5;enemy.tres L2 群行 22→26×3/24→28+卓尔 112→130(B 包第 7 轮留档候选 L2 部分,L3 未动);满配锚 (400,200)→(900,400) 先例式抬锚(L2 抬血后旧档不再满通,11 项冒烟同根因连锁;抬血不够改抬攻)。读数(同种子 8000):零强化过第二关率 普通 15→2%✓/完美 40→15%(模拟上界,真人更低);营地循环爬升成立(普通档过 L2 第 4 局 0%→第 19 局 50%→第 37 局 100%,L3 第 31 局起通关)。用户拍板收敛转真人试玩;第三刀候选(卓尔 150)与检查点带重划留档。冒烟 553 绿三闸(worktree+合并后主区双跑——主区笔含 132/133 改动共存验证) - **更新于**:2026-09-23(**测量面去单关直入口批**,worktree measure-adventure-only,批次 d5783a5/合并 61874f7,台账 133):用户拍板续批——直入口模拟数据失真曾误导数值调优,全部测量链改造:verifier level 段删除,逐关读数改冒险条件口径派生(通关数/到达数);判定端直入口验收带退役(带重锚归曲线调参批,重锚前只测不判,营地检查点判定同批暂停);退役 level_monte_carlo/level_debug;run_level 降格机制夹具/单战锚专用(smoke 机制断言与 rhythm/defense/damage 单战扫描保留零改动)。--quick 端到端 36 局 2.7 分钟实证新口径(完美档逐关 87.5%→42.9%→0%)。冒烟 553/0 + doc 三闸对基线一致(8/7/1 既有) @@ -370,3 +398,59 @@ 136. **美术圣经 §6–9 四章补全批(2026-09-23,本会话——用户指令「§6–9 还缺什么信息?我希望你现在也可以把它给完成了」;D 框架 D1/D2/D4/D5 落地,圣经自此全章成文;worktree art-ch6-9-20260923,纯文档;同 worktree 首笔 5f1f9b0=主角批收口,台账 135)**:**§6 环境与场景**——6.1 战斗舞台背景(明亮地窟/低对比自然后退/明度恒定适用/`wall_ambient` 槽联动/紫赤仅 Boss 战入背景)、6.2 营地场景(烛光黄×木色/三柜台一字排开+钥石顶栏/柜台亮起走饱和不动明度/系统语义归元进度 GDD)、6.3 三关图类型色板候选(dungeon 地精洞窟=掩尘暖石棕基准档/underdark 幽暗地域=苔绿偏灰候选/deep_underdark 灰矮人矿城=冷灰岩候选;均方向性候选,按 §4.3 现行规则重跑 §1.4 冻结;新增「三套色相与五组微光抽测互辨」共同纪律)、6.4 关卡间下探过渡(渐变取下一关槽值,只动色相饱和;演出编排归冒险结构/战斗表现);**§7 UI 设计**——7.1 视觉基准(§3.3/§4.4 上位法按引用整合)、7.2 布局栅格(四区结构+尺寸锚点事实源归 battle.md/HUD框架,4px 步进档候选)、7.3 字体与字号(Kenney Fonts CC0/Fusion Pixel OFL 候选+整数倍缩放禁非整数+下限 18/14/13 与数字字号公式事实源 HUD框架+禁字重区分禁描边阴影伪加粗)、7.4 组件库语义(面板/按钮/蜡封三类容器+§4.5⑦极性冗余+破坏性确认不同位)、7.5 营地界面(§6.2+清单 §3.5 联动,终稿以表现层样张过审为前置);**§8 资产与技术规范**——8.1 分辨率两档定案+格边长口径(1280×800 基座锚点 45px〔10×10〕/36px〔12×12〕事实源 battle.md;扩板 13×13/14×14 与 1920 档换算归表现层升级批)、8.2 像素基准 32px 候选(active.md 第 58 条「需拍板」挂账清偿入章)+1× 基准整数倍缩放纪律+1920 档适配策略(独立 2× vs 全局 1.5×)候选归样张批+画布档位候选(棋盘小人 ≤0.75× 格边长/立绘 48/64/96px 级/主角 32×32 与 32×48 两档)、8.3 导出格式(PNG 透明底/SpriteFrames)+命名规范候选草案(`<域>_<对象键>_<状态|变体>[_<序号>].png`,对象键=数据表主键——图标键契约 §4.6 的文件侧延伸;图类型后缀=board_type 键)、8.4 帧数规格候选档(待机 4/准备 6/受击 2/碎裂 4–6,战斗一屏样张批冻结);**§9 参考与反参考**——9.1 正面三款取/弃表(ITB/Moonlighter/Peglin)+扩池候选(Forager/杀戮尖塔)仅登记不入池待审阅+反面条款已成文注记、9.2 反面四条绑条款(Darkest Dungeon 压暗违 §2/Gungeon 粒子色相爆炸违 §3.4+§4.2/Hades 特效密度=§2.2 上限警示/传统扫雷八色违 §4.1——明细自修订指导 D2 框架全文承接),反面图证待素材生成。**缺口处置**——真缺口(像素基准/1920 档缩放/帧数/三关色值/命名规范)全部以「候选值+冻结点标注」入章不阻塞;事实面(两档定案/格边长锚点/字号下限/双舞台四区/三关主题/字体候选)自 battle.md/HUD框架/03-内容规模/清单 §3.5–3.6 核实搬入。**同步面**——头注状态行改「第 1–9 节定稿」+Sign-Off 注记(full 门禁时机待用户表态)+参考池行(反面条款已成文)、art-assets-checklist 头注/§0 交付格式与像素尺寸行/参考图行/§6 依赖链、04-美术音频方向.md 参考指引补 §9。**代拍板四项待追认**——①D5 框架「§3.3/§4.4 迁入」按引用整合执行不物理迁移(保持形状/色彩两章完整性);②命名规范候选草案;③栅格/画布/帧数候选值系起草非裁决;④扩池候选两款不入池仅登记。**验证**——纯文档批冒烟不适用;doc 三闸 worktree 复跑与 master 基线逐项一致(本批验证段);退役词 grep 零残留。 137. **§8.2 待决注记批(2026-09-23,侧会话——用户指令「你在这里直接把这件事给做了吧」,将侧会话对数发现的两处缺口登记进圣经;worktree art-s82-note-20260923,纯文档)**:§8.2 增两条待决注记——①**36px 板×32px 源摩擦**:32px 源在 45px 格 1× 占 ≈71% 合规、在 36px 格 1× 占 ≈89% 超「≤0.75 格边」红线且禁非整数缩放回退,出路二选一(棋盘小人独立更小源档如 24px 级 vs 两种板各出一版),样张批随格边长终值一并裁决,裁决前棋盘小人源图不排产;②**主角 B 区站桩立绘未单独立档**(现行 48/64/96px 阶梯按敌种 archetype 写),随战斗一屏样张锁「角色剪影方向/战斗空间」时一并定。圣经版本历史 v1.9、头注「现行为」随批。**验证**——纯文档零代码冒烟不适用;doc 三闸 worktree 复跑与 master 基线一致。 138. **美术圣经 v2.0 修订批——UI 章迁入+画布定档+色板方向+扩池否决(2026-09-23,本会话——用户对 v1.8 代拍板四项逐条表态+五缺口给口径;worktree art-ch69-amend-20260923,纯文档)**:**四裁决落文**——①§3.3/§4.4 物理迁入 §7(用户拍板 UI 具体选择须在 UI 章定义、三/四章留方向指导;v1.8 代拍板①推翻):§3.3/§4.4 降方向指导节+指路,细则全文迁 §7.1 形状语法/§7.2 UI 色板,§7 重排 7.1–7.5(原组件库节并入 7.1 零损失),§6.2/§7.3/§7.5 与清单引用随改;②命名规范草案获确认(代拍板②收口);③候选数字追认+两问确认(48/64/96 三档=普通怪小/精英中/Boss 大体量档对应关系确认;棋盘小人系独立人物图,上批漏立画布行本批补);④Forager/杀戮尖塔否决不入池且撤登记(代拍板④收口)。**缺口口径落文**——缺口一=画布暂定值(主角原图 48×72/战斗侧向图 48×72/棋盘小人 32×32 二头身允许更小):§8.2 重写,v1.9 并行批两条待决注记顺势收口(主角立绘档空缺→48×72 收口;36px 板×32px 源摩擦→独立小源档路线样张批定终值),旧「像素基准 32px」通用候选退役;缺口二/三(1920 档缩放策略/帧数规格)按用户指令保留缺口,06-待办清单表现与支撑/HUD框架节新立条目「美术资产规格两项待样张批裁决」作提醒载体;缺口四=§6.3 色板方向(underdark 幽暗地域=冷调幽暗:灰白蓝主调+少量紫黑点缀〔紫系紫罗兰域 ≈256° 避 300°–345° 禁入带〕;deep_underdark 灰矮人矿城=灰黑主调+矿脉金属色点缀〔金属质感族冷银/铜灰候选,奖励金亮金禁上格底 §4.2 不变〕)。**验证**——纯文档批冒烟不适用;doc 三闸 worktree 复跑与 master 基线逐项一致;圣经新增行退役词零残留。**待办**——缺口二/三提醒义务=样张批开工时先呈 06 条目再动工。 + +139. **状态图标复用重选批(2026-09-23,本会话——用户审 ui-reuse 批时裁决「图标不太适用/太难看」,令改找游戏素材向 RPG/roguelike 像素状态图标并移除旧批;素材候选批零代码零提交)**:①**否决与移除**——ui-reuse 批 `2-效果图标-SVG候选/` 九键 game-icons 剪影 26 枚整批删除,`_camp`/`_node_*` 十枚不受影响;批指引三处同步(怎么审步骤 2/授权总表 36→10 枚/§2 墓碑注记)。②**新批 `design/art/candidates/status-icons-2026-09-23/`**——OGA「7Soul 496 pixel art icons」(**CC0**,页面徽章+作者声明为准,zip 无 license 文件)为主推:九键 ×3 = 27 枚精选入 `九键候选/<键>/`,主审图 `00-九键挑选总览.png`(语义自检三轮:alert 行「设置齿轮」误读纹样与 weaken 行蓝色非削弱款已换;enrage 第三枚天使感已换怒灵);S 族整池 111 枚(`_sources/7soul/`)供翻补挑; itch.io 与 craftpix 本机网络不可达(HTTP 000,0x72 同类),Antahonist Status Icons 32x32 / Buff & Debuff Free Vol.1 / craftpix 100 枚三款留 `_手动入口.md`+`_手动放入/` 待用户手动下载。③**验货剔除留档**(防重复踩,全记批指引剔除表):OGA 700+ RPG Icons(白剪影同被否族)/painterly-spell-icons、fantasy_icons_200、16px neon(三者 CC-BY-SA 闸④不过)/magic-spell-icons(CC0 但仅 6 纹样平滑风)/Sara rpg-status-icons(CC-BY 但 8/16px 过糙)/DCSS rltiles(effect 目录系弹道特效非状态件)/GitHub 检索(无可用镜像)。④清单 §3.4 现状行更新(候选 v1 否决退场+候选 v2 待审)。**待用户**:照新批指引逐键挑图;不中可翻整池点名或手动拉 itch 包丢 `_手动放入/`。素材不入库(.gitignore 规则),两份 md 指引随收口批提交;冒烟不适用 + +140. **棋盘 Node2D 迁移批起草(2026-09-23,本会话——用户拍板「先只迁棋盘」+审后「可以合并」;worktree board-node2d-plan-20260923 三笔 28f6dd2 收口/合并 ce56e27,纯文档,worktree 已清)**:**落籍三件**——① `adr-0006-board-node2d-rendering.md` 新立:渲染技术分工表(Node2D=D 区棋盘〔Phase A 本批立项〕+B 区战斗舞台〔Phase B 后续批只定分工〕;Control=A/C 区、D 区 AP 条与按钮与 toast、B 区结算明细带/回合指示/战斗日志、全部弹层与开始菜单);SubViewportContainer+SubViewport+BoardWorld 选型(Alternative 直挂 Node2D/逐格 Area2D/TileMapLayer/B 区同批四案否决留档);命中测试=板级公式换算单点;素材槽位按圣经 §8.2 暂定档预留(格面 32×32),程序化占位继续服役——迁移零素材依赖,美术缺口只卡换皮不卡开工。② ADR-0003 Status 部分(2026-09-23)修订注记:Decision 3 形态条款由 ADR-0006 部分取代、「禁盲目迁移」解除、Alternative 2 否决理由更新(表现层升级需求成立);探针耦合实证收敛=ui_probe `_cells` 键面(:73/:187)+ui_click_probe `click_cell` 直调(:257–277,合成鼠标事件零命中)+ui_layout_probe `cell_size` 读 null 三点——公共面契约保持则三探针零改造,行协议 9 类同步闸系战斗日志行与棋盘无关。③ `board-node2d-migration-plan.md` Phase A 方案:改造清单(BoardView 壳+SubViewportContainer、CellUnit 叠层序槽位、`_gui_input` 公式换算、`cell_size` 只读属性增补、push_input 端到端新探针=唯一新增自动化面)、不做清单(B 区/素材接入/格边长数值/无障碍)、Phase B 预留(同构复制+theme/字体注入挂点)、排期(Phase A 1–2 天零素材依赖)。**同批追加两裁定落文(用户本会话追问)**——战斗屏进度条退场:战后返回关卡画面、节点链进度只留关卡画面、战斗屏目标形态 B/C/D 三区(A 区现状代码继续服役至停点前移批——流程未倒置前是战斗中唯一节点链可视面,先删致盲);LevelStripView **退役不迁移**:关卡画面不重新实现,由 RouteOverlay(整幅节点图+全套节点态语义同族 UiKit token+候选按钮+放弃入口在役)升级承接,唯一继承面=逻辑层 runner 只读出口零改动;停点前移批删除面清单=LevelStripView 类+ui_assembler :28+main.gd :52+ui_probe :77-78/:188+battle.md A 区条款。**GDD 修订面三项归停点前移批**(HUD框架 四区表含 B/C/D 重编字母待裁/关卡节点地图 常显条款/battle.md 28px 纵向再分配)——现改会造成文档写未来代码是旧态的过期账,刻意不动。**验证**——纯文档批冒烟不适用;三探针耦合面全数 grep 实证非推断;worktree 合并后 master 干净(本批文件集零撞他会话脏文件)。**待办**——停点前移批 06 登记未落(等用户点头);Phase A 实施批随时可开(批准即开工) + +141. **停点前移批 06 登记批(2026-09-23,本会话——用户于台账 140 收口后二选一点「②先登记停点前移批进 06」;worktree todo-stoppoint-register-20260923 199d116/合并 c221742,纯文档单文件,worktree 已清)**:06-待办清单 冒险循环/关卡节点地图 节新条目「**Alpha 第一批:冒险开局停点前移——关卡画面常驻枢纽(节点图先于首战+进度条退场落地)**」——**现状段**:倒置反馈+目标形态(先见关卡画面选节点再进节点屏、战后返回)+同批两裁定(战斗屏进度条退场 B/C/D 三区/LevelStripView 退役不迁移 RouteOverlay 承接)+方案依据已落籍 ADR-0006 与迁移方案 §1(台账 140);**执行面四项**:①流程停点前移(LevelRunner 加停点模式——关卡开始不自动 `_enter_node` 改出图选路;RouteOverlay 开合时机改常驻:进关卡即开、战后返回即开)②LevelStripView 删除面(类本体/ui_assembler :28/main.gd :52/ui_probe :77-78 与 :188 两断言/battle.md A 区条款)③GDD 修订面三项(HUD框架 四区表/关卡节点地图 节点链常显条款/battle.md 像素布局表)④冒烟面(新停点行为断言+探针同步);**随批三待裁决**:B/C/D 是否重编字母、28px 纵向空间归属、关卡画面进度呈现形态;**归属**=Alpha 开工第一批、建议先于棋盘 Phase A(零硬依赖,先正流程后迁棋盘最省);**状态**=已立项登记待点名开工。**验证**——doc 三闸 worktree 复跑=lint 8/死链 7/疑似现行 1,与 master 基线(8/7/1 既有)逐项一致零新增。**待办**——两实施批(停点前移/棋盘 Phase A)均待用户点名;点名停点前移批时三待裁决随批呈报 + +142. **状态图标业界参考调研批(2026-09-23,本会话——用户二次否决后指令「参考别的游戏怎么做,搜索 RPG 游戏图标设计并反馈」;纯调研零代码零提交)**:①**二次否决诊断**——7Soul 候选栽在「技能画≠状态符号」:技能图标是一物一画,状态图标是同构符号系统(业界实机 24–40px、单色简笔、极性靠色、数字角标、血条下一行排)。②**参考采集**——fandom/wikia 全域网络墙、zamimg 403、搜图引擎首两轮全还封面图;可行路径=image 代理 OSS 重托管(CRYPT_E_REVOCATION_OFFLINE 用 `--ssl-no-revoke` 绕过)取 StS1×2/StS2/WoW 实机截图四张,PIL 抠七处状态图标特写拼 `01-业界参考对照.png`。③**笔记落盘** `01-业界参考笔记.md`——五条语法+九键符号直译映射(attack_up=剑+上箭头/ac_up=盾/alert=眼/weaken=断剑/enrage=怒目/off_guard=裂盾(Vulnerable 同款)/sapped=沙漏/empower=充能球/fortify=石壳);圣经 §4.6 金满框/红缺框极性通道与业界同构获实证(方向早已正确,缺的是「符号化+统一容器」层)。④**三方向待拍板**:A=⚙程序化模板自产 9×2(推荐:统一可控/过灰度闸/零授权/快)/B=itch 手动三包(正是状态徽章类,网络墙需手动)/C=混合;7Soul 不删转徽章格面参考池。**待用户**:拍 A/B/C;素材不入库,笔记 md 随收口批提交 + +143. **停点前移实施批(2026-09-23,本会话——用户授权「完事之后你就开始开工,使用子 Agent 逐步推进」;worktree stoppoint-shift-20260923 批次 8eddcdd/合并 d326df5,代码+文档双子 agent 并行实装(互斥文件集),主会话集中验证合并,worktree 已清)**:**执行面四项全落**——①流程停点前移:LevelRunner `start_level_external` 加 `defer_entry: bool = false` opt-in 尾参(缺省 false 既有调用方零变更;单关 `start_level` 夹具路径一字未改),defer 时置 `_awaiting_choice=true`/`_candidates=[entry]`/node_index 保持 -1,新增 `present_entry_choice()`(非入口停点态拒绝;呈现零 RNG 消耗);AdventureRunner `_start_current_level` 按 `start_level_external(...,true)`→`level_started.emit`→`present_entry_choice()` 顺序接线(信号顺序契约:呈现层先重取 runner 才能接住选路口,顺序反了被 `_on_choices_presented` 的 runner==null 防御静默丢弃);RouteOverlay 开合逻辑零改动即承接常驻(进关卡即开=新停点信号自然到达,战后回开=既有行为)。②A 区退役:LevelStripView 类+.uid 删除(删后 `--editor --quit` 刷类名缓存);ui_assembler A 区 28px 顶栏组装删除、C/D 底行 520→548(SIZE_EXPAND_FILL 吃满,装板校验 1036×460 样本不受影响);main.gd strip_view 引用清零;**子 agent 代拍板偏离项=gp/钥石标签随顶栏退役按最小面迁 C 区角色信息底行**(hero_info_panel_view 新增钱包行,句柄经 ui_assembler 原键透传,读数装配路径零变化);ui_probe :77-78 构建断言与 :188 报告 strip 字段删除。③GDD 修订面:HUD框架 v0.8(三区表+装板校验变量 476→504/460→488、12×12 得 40≥36、10×10 得 48≥45)/battle.md(布局表删 A 行+ASCII 线框重绘三区+Navigation Position 关卡画面=选路常驻枢纽)/关卡节点地图 v1.2(进度承载=关卡画面本体节点态)/冒险结构 v0.9(P0 第 2 条改「停在入口选路停点,行进自玩家首次选路开始」);**主会话连带 art-bible v2.1**(§6 开篇+§7.2 双舞台四区→三区、扫雷图区锚点 1036×476→1036×504——子 agent B 收尾报告的遗留项,属本批结构变更直接连带);06 条目按「解决即移除」删除。④冒烟面:`_smoke_adventure_api` 重写为停点断言段(次序契约+入口单候选+首战未开+pick 后 node_entered);⑥⑩ 两处 start_adventure 直达战斗驱动改先 pick 入口;ui_probe 新增入口停点断言+真实按钮 press_candidate(0) 路径;ui_click_probe 启动后真实路径 pick 入口再计「首格可点」AC(104ms≤500ms);ui_tune_probe ⑧ 段同步;level_autoplay 加 `node_index >= 0` 守卫使入口 pick 不计 `st.choices`(保 MC RUNSUM 口径)。**测量零漂移实证**:`git archive HEAD` 抽基线对跑——MC 12 局 RUNSUM 逐位一致、verifier adventure 段 16 局 VJSON 逐位一致(results/battles/rounds/承伤/踩雷/行进序列/choices 全同)。**验证**——冒烟 557 项 0 失败(worktree+合并后主区双跑,旧 553→+4;主区先刷类名缓存);ui_probe/ui_click_probe/ui_layout_probe/ui_tune_probe 四探针 PASS;doc 三闸 8/7/1 对基线零新增。**批内代拍板三项待追认**(用户授权推进下的代决):①B/C/D 字母保持不重编;②28px 归 C/D 底行(520→548,1920 档换算仍归表现批);③关卡画面进度呈现由选路覆盖层节点态承载(暗金已过/金当前/亮金候选/旗朱 Boss),不另设进度条组件。**遗留**——RouteOverlay 入口停点标题沿用「继续前进(战斗房)」措辞(语义可读,归表现微调批);ui_click_probe L2 段岔路选路既测已同步。**待办**——棋盘 Phase A 实施批进行中(同会话接力);三项代拍板待追认 + +144. **状态图标符号语法候选批 v3(2026-09-23/24,本会话——用户认可通用符号语法后指令「再从免费可商用站找相关图标,筛好列出待挑」;素材候选批零代码零提交)**:①**可达域再确认**——svgrepo/craftpix/icons8/flaticon 四站全墙(HTTP 000),免费可商用可达域收敛=OGA+GitHub+已落盘 Kenney 包。②**v3 候选=Kenney CC0 两包符号**(board-game-icons 513 枚+game-icons 425 枚,kenney.nl,CC0 零署名义务):九键 26 枚拷入 `九键候选/<键>/`(kenney__ 前缀;enrage 仅 2 枚),新主审图 `02-符号语法候选总览.png`(PIL 极性筹码示范=符号重涂白+金 #D9A24A/红棕 #A63B2A 圆角容器,正式色值随改色批过 §4.1/§4.6)。③**语义缺口与避让留痕**——怒目(enrage)/裂盾/眼三纹样 Kenney 无现成件(alert 已用瞭望塔+警示号+旗补位),缺口补法=方向 A 程序化白符或 itch 包;三对纹样跨键重复(suit_hearts_broken×weaken+off_guard/arrowDown×weaken+sapped/hexagon_out×ac_up+fortify)两键同挑需换纹样(图标键契约);kenney__sword 疑读作枪待复核。④**剔除留档**——Admurin's skill icons(CC-BY-SA 4.0 闸④不过)、Daneeklu 法术合集 19 枚(CC-BY 3.0 但全系攻击法术特效零状态语义→转演出批参考,`_sources/daneeklu/` 留盘+sheet)、DCSS 全树终审(misc/icons=血迹贴图,无状态件,源出局)、OGA skill-icons 系补扫(swordsman/paladin/pirate/knight 等皆攻击技能画,语义不合未采)。⑤批指引重写 v3(批史:v1 剪影否决→v2 技能画否决→v3 符号语法现行)。**待用户**:看 02 总览逐键点名;挑完统计缺口再定补法。**事故注记**——主会话 shell cwd 卡进带括号目录(kenney-(CC0))致 worktree-guard 钩子相对路径解析带括号语法错误、主会话 Bash/Edit/Write 全程不可用,收口由本 agent 代执行;教训=cd 进括号目录前先把所需文件复制到无括号路径。素材不入库,md 指引随收口批提交 + +145. **棋盘 Node2D 渲染迁移 Phase A 实施批(2026-09-24,本会话——用户授权「开工,使用子 Agent 逐步推进」后的接力批,方案=ADR-0006+迁移方案(台账 140);worktree board-node2d-phase-a-20260923 批次 e312072/合并 1679d25,单子 agent 实装+主会话集中验证合并,worktree 已清)**:**D 区棋盘本体 Control→Node2D 迁移落地**——BoardView 类名/extends Control/三信号(action_requested/hover_forbidden/chord_attempted)/公共方法(board/set_desaturated/set_identity_resolver/set_variant_mask_resolver/set_cell_area/rebuild/refresh)契约逐项保持,探针与组合根零改造;内部重构=Control 壳+SubViewportContainer+SubViewport+BoardWorld(Node2D)+每格 CellUnit(Node2D),五层叠序(砖面底<变异纹带<数字/徽章<旗<焦点高亮)程序化 `_draw` 等价平移,texture 槽位全留(§8.2 格面 32×32 暂定档,终稿 1:1 换入零结构返工);禁新 class_name(board_world/board_cell_unit 均 preload 脚本)。**输入换板**:`_gui_input`+板级公式单点 `_cell_at`(结构上钉死 stretch 1:1=SubViewport 逻辑分辨率=容器尺寸+CenterContainer 居中,减容器偏移后 `floor(局部/(格边长+2))`——既不用 make_input_local 也不用比例换算,全仓唯一公式函数;cell_center_local 同公式族供探针用);真实输入路径由**新增 ui_input_probe**(push_input 端到端,六断言=悬停金框+十字光标/hover_forbidden 信号+红框/路径预览点迹+移动光标/flag_place 到组合根+旗态落位/chord_attempted/dig 到组合根+揭格落位)×2 次自证。**契约化增量**:`cell_size` 只读属性(旧私有 `_cell`,ui_layout_probe 由读 null 变 46.0)+`set_world_font()` 字体注入挂点(Phase B 义务位)+`REWARD_BADGE` 常量保留(ui_probe 图标键回归面);删 `_grid`/`_cell_sb`/`_marker`(grep 零外部引用后删)。**行为等价自检**:数字三档/旗/徽章栈位/危险红/R₀ 豁免/变异遮蔽/悬停三态/路径预览/chord 350ms/光标三语义/呼吸微光(`_process` 累加 headless 照跑)/set_desaturated(材质挂 BoardWorld+CellUnit use_parent_material 链)/装板校验公式一字未改。**架构注记三处**:architecture.md v1.2→1.3 BoardView 形态行、HUD框架 v0.9 渲染技术注记行、battle.md 修订记录实现注记行。**验证**——冒烟 557 项 0 失败(worktree+合并后主区双跑,主区先刷类名缓存);五探针 PASS(ui_probe/ui_click_probe SEED=7/ui_layout_probe/ui_tune_probe/ui_input_probe);doc 三闸 8/7/1 对基线零新增。**已登记偏差与遗留**——①2px 格间隙旧为零命中死区、现落入左/上邻格(公式固有,视觉无差);②draw calls<200 实测 headless 不可回填(dummy RenderingServer),结构估计与旧 144 Button 量级相当,**留真机验证项**;③呼吸微光的动效本身 headless 不可视验(写路径与旧代码逐行同构,探针覆盖静态前置);④CellUnit 文字 draw_string+ThemeDB.fallback_font(与旧 Button 同源),字体注入挂点留 Phase B;⑤ui_layout_probe 打印 board= 系基线既有行为非本批引入。**待办**——Phase B(B 区战斗舞台 Node2D)开工硬前置=样张批冻结剪影与动画方案;真机视觉验证项归下次开窗试玩 + +146. **状态图标 v3 终局否决+用户接管自采(2026-09-24,本会话——用户裁决「这些图标还是很丑,你找不到我自己想办法」)**:①三轮全否实况——v1 game-icons 剪影(丑)/v2 7Soul 技能画(不是状态符号)/v3 Kenney 符号(语法对但气质是软件图标非游戏图标),审美关三次未过,采购权移交用户。②根因自陈——本机沙盒网络墙(itch/craftpix/icons8/flaticon/svgrepo 全 000)恰隔断优质游戏状态图标包聚集地;可达域(OGA/GitHub/Kenney)内无更好货,诚实结论=「不是没有好图标,是我够不着」。③用户自助通道已备——`_手动入口.md` 三包+itch 免费标签页(itch.io/game-assets/free/tag-icons/tag-status-effects)+挑选标准(授权认 CC0/CC-BY/页面明示可商用;像素游戏风+统一容器+正负成对;32×32 PNG/精灵表皆可),下载丢 `_手动放入/` 由下会话切图过闸。④方向 A(程序化白符自产,语法已业界实证)保持口头备选未启动。⑤登记面:快照节+本条+批指引终局注记+记忆两文件同步。**事故收尾**——本会话工具瘫痪(钩子缓存解析括号 cwd)全程子代理代执行;`.zcode/config.json` 三处+SessionStart 钩子路径已修绝对路径,新会话生效。素材不入库 + +147. **停点前移批三项代拍板追认落文批(2026-09-24,本会话——用户对代拍板三项表态「内容都是没有问题的,可以按照这样进行」;worktree ruling-confirm-20260924 批次 ab5116d/合并 bc43393,纯文档四文件各一处标记,worktree 已清)**:HUD框架 v0.8 行/battle.md 2026-09-23 修订行/关卡节点地图 v1.2 行/冒险结构 v0.9 行的「**批内代拍板三项待追认**」标记就地翻「**已追认(2026-09-24 用户确认)**」——三项正式收口:①B/C/D 字母保持不重编;②28px 纵向空间划归 C/D 底行(520→548,1920 档换算仍归表现层升级批);③关卡画面进度呈现由选路覆盖层节点态直接承载、不另设进度条组件。art-bible v1.8 行的旧批「待追认」系历史记录且已由 v2.0 行收口,不动。**验证**——doc 三闸 worktree 复跑 8/7/1 对基线零新增;纯文档批冒烟不适用。**随批确认同步面**——记忆两文件+MEMORY.md 索引「待追认」措辞翻「已追认」。**停点前移批至此全链闭环**(登记 141→实施 143→追认 147) + +149. **伤害管线单据化批(2026-09-24,本会话——用户四轮讨论后三裁决拍板"开工吧";worktree damage-pipeline-20260924,批次 291c5aa/edc7eb1/86ecb2a/4312998/8dd5c64,合并 d8be468,台账 149)**:**背景与裁决**——伤害此前无对象抽象(五族来源六调用点各自内联组装管线;类型轴与 DamageMath 算术层已收口、管线次序散落,未来减伤环节漏挂即静默跳过)。用户三裁决:①兑现时机走 B 模式(攒批段界统一结账),A 模式(开单即结=迁移前行为)留回切结构位——试玩体感不对一步回切;②目标结账时刻照规则看现场解析(最前存活敌/主角/全体存活敌),开单不冻结对象;③死亡事件由单位自行宣布——怪死其未结单据作废(死亡即不动手),主角死终止兑付(Game Over 归判定段读数)。**实施两步走**——第一步 DamageController 新建(九栏单据:兑付配方/来源三件/显示名/通道/攻击类型〔""=无类型恒不查矩阵〕/威力基数/目标规则/必中附加/context)+六调用点收口+开关 A(edc7eb1,冒烟 557/0 逐位等价迁移前);第二步开关拨 B+死亡事件接线生效(86ecb2a)。段界结账点=授予段尾+清图批同步点(flush_submit 保序——完美第二份/高光份数流程依赖需同步读数)+战斗段尾。**验证**——冒烟 557/0 双模式全绿三闸(worktree+合并后主区双跑);A/B 对拍探针(临时脚本未入库)四配置(L1/L2×双种子)两模式各自逐位确定、全部真实分岔且行数两两恒等(纯次序位移:伤害行攒批位移+治疗满血判定时机挪移);三场景探针 PASS;doc 三闸与 master 基线一致(gdd_lint 8/8 既有/死链同集/战斗结算 R7 同条既有)。**文档**——战斗结算 v0.24 新节「伤害单据与伤害控制器」+授予段/战斗段结账时点句+验收标准单据管线条目(4312998);README 修改记录同步;06 条目解决移除(8dd5c64)。**遗留与注记**——历史基线读数(验收带/MC/verifier)自本批以段界结账口径为准、重测归曲线调参批;批内五笔提交信息中"台账 148"字样系登记时点与状态图标代理下载批撞号前旧称,本批台账号以本条 149 为准(合并提交信息已更正 d8be468);未来减伤等管线新环节挂点=控制器单点一处改动(本批立批动机) + +150. **垂直切片转正结构批(2026-09-24,本会话——用户令「先进行替换,确保所有文档程序依赖路径不受影响」;worktree rename-game-dir-20260924 批次 13f93c7/合并 6cfeae0,worktree 已清)**:**`prototypes/dungeon-sweeper-vertical-slice/` → `game/`**(git mv 220 文件,prototypes/ 壳删除)。**路径同步 26 文件**——CLAUDE.md(目录表改「游戏工程本体(转正)」)、tools×4(run_smoke DEFAULT_SLICE/balance_verifier SLICE 改 `ROOT/"game"`、doc_link_audit PROTO_PREFIX、loop_dashboard 分类分支)、tests×3(run_all.gd 注记、static_scan.sh 目标、README)、QA 脚本×3(conversion-calibration .sh)、GDD×6、qa-data README、docs 架构文档、design/research 存活指针。**钩子面零修改**(.zcode/hooks 两脚本+git hooks 实证无旧路径引用)。**active.md 台账历史条目旧路径刻意不动**(条目 15 等系历史记录)。**static_scan 规则集首跑收敛**(原脚本因扫不存在的根目录 core/ 而恒跳过——S1/S2 违规签名改「裸 randomize/rand* 调用〔排除 .randi() 实例法〕+rng_service 外 RandomNumberGenerator.new()」,接收服务注入流的类型标注 15 处实证豁免+注释行排除;S4 修正为实扫 game/core)——终态 S1/S2 ok+S4 ok+exit 0。**并行合并撞车与解决**:合并时撞上并行会话伤害管线批(d8be468,台账 149,动 core 旧路径)——rename/edit 冲突仅 damage_controller.gd(.uid) 两文件,git 重命名追踪将其映射至 game/ 新路径,按其内容受理(git add 语义),合并态=两批共存。**仪表盘处置**:并行会话未提交的 loop-dashboard 再生成版 stash 暂存(`git stash` 可取回),本批用同步后工具再生成更新版。**事故如实入账**——删除旧目录时连带删除 179 个未入库格面试产 PNG(assets/art/board/board_floor_*,.gitignore 忽略面):代码零引用(grep 全仓无 board_floor+棋盘渲染系程序化 _draw)、冒烟 557/0+五探针双跑证游戏零依赖、且按 09-23 三关色板新裁定本就要样张批后重产(清单 §3.3 前置未跑)——损失=可再生性存疑的早期试产物(生成脚本不在仓内),教训=删未跟踪目录前先隔离备份勿直接 rm。**验证**——worktree:缓存刷新 0 error+冒烟 557/0+五探针 0 fail+三闸 8/7/1+static_scan 绿;master 合并后(含伤害管线批共存态):缓存刷新 0 error+冒烟 557/0+五探针全绿+裸跑 run_smoke.py 成功(DEFAULT_SLICE 同步实证)+git status 零 tracked 删除。**待办**——真人试玩改在 game/ 布局下进行 + +148. **状态图标代理下载批(2026-09-24,本会话——用户开启网络代理令再找;素材候选批零代码零提交)**:①网络路线=Windows 系统代理 127.0.0.1:7897(curl -x http 形式;7890/1080 等常见端口全不通;本机 curl 8.8.0 schannel 的 -w %{http_code} 有 bad-argument bug 改用退出码判断)。②itch.io 匿名下载全流程打通=GET 资产页取 csrf→POST /download_url→再 POST /file/?source=game_download 取 R2 签名直链(60s 时效);tag-icons/tag-status-effects 列表页被 Cloudflare 挡,tag-status-effects 页可用。③入包五个(详单 `_手动放入/` 各包 `_来源.md`):Akami Vol.1(**CC0**,20 枚手绘 buff/debuff 徽章 128/256/512 三档)/Softgrid Tiny Pixel(LICENSE.txt 明示个人+商业可用,AI 绘制已披露,40 枚×16/32px+表)/Vivid Motion 23(页面标可商用,352×64 动画帧+256 静帧,归演出参考)/SoggySocks 24FX 免费样例(仅 charmed/confused/stunned 三条动画,全包 $6.99 未购)/aland Indie Game Feel(README 明示可商用无署名,AI 披露在页面,16 张 1024² 精灵表+冷却环/计数角标/状态徽章)。跳过=Mega RPG 800+(322MB 且页面无授权标注)、RPG Maker 插件与设计文档两件非素材。④九键候选换装=清 kenney 旧件,akami__ 15 枚+softgrid__ 19 枚按语义映射入位(映射表见批内 03 生成脚本 `_手动放入/_tools/gen_03.py`),新主审图 `03-终选总览.png`(akami/softgrid 双组 96px 展示);aland 16 表切图(14 表成图 130 片,counters_badges 两表点阵碎片化跳过)`sliced/`+联系表供补选。⑤待用户终选逐键点名;风格裁决=akami 手绘精品 vs softgrid/aland 像素原生,两族可混搭但一键一图恒定。素材不入库 + +151. **registry 行动经济 AP 两行登记漏账补同步批(2026-09-24,本会话——用户问「AP 回 8 是哪个改的」牵出核对,发现 Package B 批拨表漏改 registry;worktree registry-ap-sync-20260924 批次 b054934/合并 78b6cdb,纯文档两行,worktree 已清)**:**溯源**——ap_per_round/rap_refresh_cost 现行 8 系 Package B 七轮数值批(8acd107,2026-09-22)6→8 回拨:B1 敌人 HP 大抬后「首轮全标旗→减伤削弱堆满→零承伤通关」退化自然失效、压速阀门松动,批内自带复测条件(盯 analyze.py 零承伤轮指标,明显回升按计划书 §6.5 做 8→7 回调)但漏同步 registry 两行(仍登记压速批旧值 6)。**补同步**——entities.yaml 两行 6→8+Package B 溯源与回调条件全文补登+漏账注记;系统文档 行动经济.md 无需动(正文已指路化不抄数值);残留检查=余下 ap_per_round 引用皆字段名结构规则非数值。**验证**——doc 三闸 8/7/1 对基线零新增。**附注**——AP 值归属曲线调参域,回调与否归该批统一重锚时定 + +152. **SubViewport 尺寸警告清除微批(2026-09-24,本会话——运行时取证探针复核棋盘 Node2D 时暴露;worktree boardview-svp-fix-20260924 批次 6649dc1/合并 3d79cec,单行修复,worktree 已清)**:用户质疑「如何证明棋盘已是 Node2D」→主会话写一次性运行时取证探针(真实冒险首战态 dump 场景树)发现 `_update_world_size` 在树内 stretch=true 下直设 `_viewport.size` 被引擎拒绝并刷警告(SubViewportContainer 接管尺寸)——修复=树内跳过直设(`is_inside_tree()` 守卫),树外冒烟直建路径保留 1:1。**取证结论(用户问询的证据包)**:运行时场景树=BoardView(Control)→CenterContainer→SubViewportContainer→SubViewport→Node2D 世界→格单元 100 个全 Node2D(该种子 10×10 板);GridContainer=0(旧实现=1)/Button=0(旧实现=144)。**验证**——冒烟 557/0(worktree);取证探针警告零复现。探针系临时件跑完即删未入库 + +153. **棋盘立体三档原型批(2026-09-24,本会话——用户看 ITB 参考图提出立体感诉求(保持正俯视方格、伪立体不违反 09-22 禁等距裁决)并拍「先实现看效果」;worktree board-depth-proto-20260924 批次 0f041a7/合并 d333a15,worktree 已清)**:**F9 循环四态**——平面(现行)/薄 4px(缩小帽档)/中 8px/厚 14px(纸雕织梦岛档),toast 报档名。**画法**——BoardWorld 板块悬崖(正面背光暗+右侧微受光+列分隔竖缝对齐格边界〔ITB 悬崖列感〕+岩层横纹+口沿高光 1px+顶面接触 AO+底线收边;中厚档加三层渐隐悬浮影=离地感)+ CellUnit 顶面倒角(上左受光/下右背光 2px,内缩 2px 让呼吸微光边框保持最外沿);材质锚色=掩尘 #C9AF83 派生明暗。**零布局/命中改动**——悬崖向网格矩形外延展(世界尺寸+D,装板预算公式单点加 D 防溢出),顶面方格与输入公式不变(数字可读性硬指标零伤害)。**验证**——worktree 冒烟 557/0+运行时四档循环切探针 DEPTH_CYCLE_PASS(临时件跑完即删);master 冒烟 557/0。**待用户**——实机 F9 对比四态挑档(或提调整:厚度值/侧面明暗/悬浮影强度),定稿参数进格子样张批 §1.4;F9 入口定稿后退役归表现批 + +155. **状态图标需求定稿+清盘批(2026-09-24,本会话——用户诊断「参考来源就错了」并逐键口述纹样定稿;清删+文档+初稿生成)**:①**全清**——批内参考与图标全删:`_参考-业界状态图标/`(StS1/2+WoW 截图与对照板)、01 业界笔记与对照板、00/02/03 三张总览板、`九键候选/`(kenney/akami/softgrid 历史候选)、`_sources/`(7Soul 包/Daneeklu/crawl_tree/OGA 存档)、`_手动放入/`(代理五包+aland 130 切片+联系表+工具)、`_手动入口.md`;杀戮尖塔示例随参考退役,不再作为依据。②**需求定稿落文 art-bible §4.6.1(v2.2)**——纹样系统九行逐键改写:主体白剑(斜向剑尖朝右上)/正面白盾/白眼三轴+右下角小箭头语言(绿↑一档/红↓一档/双绿↑两档蓄力);同族共用同图(attack_up=enrage、weaken=sapped、ac_up=fortify),归属方由 HUD 挂位表达不入图;极性列保留为数据语义;旧语义锚文字九行退役;版本历史补 v2.2。剑朝向按「剑尖朝右上」实现(用户原文「由左上角向右上角朝向」存歧义,批内注记,纠偏=改一行参数)。③**初稿生成**——脚本管线(`_tools/gen_icons.py`,256 稿几何绘制→NEAREST 32×32)生成九枚+3x 预览+对照板 04,输出 `图标初稿/`,待用户验收反馈。④清单 §3.4 现状行随批更新。**当轮反馈修正**——红箭头翻转朝下(weaken/sapped/off_guard);empower 双绿↑确认为横向平行排布(初版即正确,中途误改竖叠已改回),九枚重生成待再验收。素材不入库 + +154. **立体档位设置按钮批(2026-09-24,本会话——用户反馈「先按 F9 不知道当前对应哪个档」令改设置按钮;worktree depth-ui-btn-20260924 批次 9b35cf8/合并后 master,worktree 已清)**:D 区 AP 条右键组新增「立体:X」按钮(图例旁,原型临时件定稿后随 F9 入口一并退役)——**标签常驻显示当前档**(平面/薄/中/厚短名),点击循环、F9 同效,两者共享 main 组合根 `_cycle_depth_tier`(切档后回写按钮标签+toast 报全名)。接线=ApBarView `depth_cycle_requested` 信号+`set_depth_label` 回写 → BoardZoneView 转发 → main 组合根(视图零直写纪律)。**验证**——worktree 冒烟 557/0+运行时按钮循环探针 BTN_CYCLE_PASS(初始平面→薄→中→厚→平面,标签逐次联动,临时件跑完即删);master 冒烟 557/0 + +156. **状态图标接入批(2026-09-24,本会话——用户逐键验收定稿九枚后指令「可以去使用」;worktree status-icons-integrate-20260924 批次 d799b4b/合并 71ae51c,worktree 已清)**:战斗 HUD 状态槽占位符号退役换定稿 PNG——九键 effect_id 恒定映射禁换图(attack_up/ac_up/alert/weaken/enrage/off_guard/sapped/empower/fortify,`game/assets/ui/icons/status_.png` 九文件独立落盘,enrage/sapped/fortify 为同图副本按各自键复制),命名按圣经 §8.3 候选草案「对象键 = 数据表主键」域键式(status_,无偏离)。**改动面**——C 区 StatusSlotRow 槽 icon Label→TextureRect 24px(线性过滤匹配抗锯齿矢量风源图)、B 区站桩血条下小图标 16px(32px 源 ÷2 整数档,≥16px 下限无糊化);叠层 ×N 角标与剩余结算点呈现逻辑不动;**删除面**=占位字形绘制(▲◇▼◎⚔✕☾⇧▣)、按极性染色(金/蓝/旗朱——绿↑红↓极性语言内化于图标本体)、清场反馈 ✕ 前缀(灰化即清场);EFFECT_ICON 值改纹理+EFFECT_POLARITY 极性词表(tooltip 益/害第三通道保留);未知键 fail-fast 断言+? 占位回退(release 槽内 meta ? 前缀/站桩 ? 标签)保持。ui_probe 断言同步(本批合理改动面):占位字形判据("▲"/text=="?")改纹理判据+九键全映射断言。**验证**——worktree:editor --quit 刷导入 0 error+冒烟 557/0(=基线 557)+ui_probe/ui_click_probe/ui_tune_probe PASS+ui_layout_probe(dump 诊断无判定)输出 stash 改前改后逐字节一致+doc 三闸对 master 基线一致(gdd_lint 8 文件 8 不通过 69 项/死链 7/退役词 214+疑似现行 1——均既有基线,本批零 .md 改动);合并后主区:刷导入+冒烟 557/0。图标源=candidates 批图标初稿(用户逐键验收,圣经 §4.6.1 v2.2 纹样系统);素材入库面=游戏工程资产九枚 PNG(candidates 忽略规则不涉及游戏工程资产;.import 全局忽略,fresh checkout 需 editor --quit 刷导入);生成脚本 `_tools/gen_icons.py` 参数化留档,后续微调=改参数重跑 + +158. **棋盘小人贴图替换批(2026-09-25,本会话——计划书 design/art/hero-board-sprite-replacement-plan-2026-09-25.md 开工授权直批;worktree g-plan2-herospr,批次 4c8ab0d/合并 b088091,worktree 已清)**:英雄棋盘呈现=BoardWorld 独立 Sprite2D(移动实体不进 BoardCellUnit——格面五 texture 槽 tex_base/mutation/glyph/badge/flag 零改动);站/走两帧 NEAREST+flip_h 朝向(素材只入库朝左帧,右向镜像)+refresh diff last_hero_pos 位移 Tween 140ms(旧 tween 先 kill;到位回站帧);素材缺位=load_tex exists 守卫回退格内字形「人」(UiKit 新增 TEX_HERO_IDLE/WALK 路径单点+load_tex;素材 PNG 不入 git 故禁 preload——fresh checkout 冒烟安全);挖掘演出解耦=BoardFxView.play_shovel_swing 挥铲三帧 f0→f1→f2 80ms/帧(握把锚 18,12 对齐英雄格与目标格共享边中点+12% 格宽目标向偏置,dir.x>0 翻转)+角色弹跳 scale.y 1→0.82→1 150ms 脚底锚收敛(offset 上移半高;三 tween 分管避属性争抢);零位移移动(排雷玩法「目标=当前格」幂等受理=撞墙语义)=main 受理分支 notify_hero_move() 帧闪 ~180ms 不位移;B 区站桩=battle_stage_view 装配处 set_portrait_texture(UiKit.load_tex(TEX_HERO_IDLE)) 一行接线(NEAREST 归 standee_view set_portrait_texture 创建点单点;null 回退字形)。**代拍板三项**——①显示缩放取 cell_edge/32 非整数档填充(计划书「整数倍优先」现场改判:与后续 16×16 地砖批同乘区一致性优先,NEAREST 下实机若见宽窄不均改一常量可回 1× 整数档);②挥铲锚定=共享边中点+12% 目标向偏置(计划书「对齐目标格沿」的具体化);③挖掘/移动演出触发点=main._on_board_action 受理分支后置一拍(计划书风险②「dig 命令落点」定位结论:settle_batch 同步返回后、refresh 前调 notify,refresh 后拍读数无害)。**验证**——worktree:editor --quit 刷导入 0 error+冒烟 557/0(=基线)+ui_input_probe 六断言 PASS+ui_click_probe 问题=0(19771 预算全组合根真实路径)+ui_layout_probe cell_size=46.0 无漂移;合并后主区:刷类名缓存+冒烟 557/0。ui_probe「人」断言面核对=三探针+冒烟零字形断言(grep glyph 唯一命中为注释),计划书步骤 5 预防性改判据未触发。**待实机目检**——走路两帧/挖掘挥铲+弹跳/双向朝向(用户验收闸,HEAD=计划书步骤 6 终项)。 + +159. **棋盘小人修正批——用户三裁决(2026-09-25,本会话——台账 158 基批三代拍板逐项被用户裁决取代/确认;worktree g-plan2-herospr2,批次 65325d1/合并 4383726,worktree 已清)**:①缩放=**整数 1× 档、32×32 盒格内居中**(HERO_SPRITE_SCALE 常量定档;用户纠正上批「cell_edge/32 填满格」代拍板系误判——设计文档无「覆盖格子」要求,圣经 §8.2「运行时只允许整数倍缩放、禁非整数缩放」为硬规则、v1.9 注记 45px 格 1× 占 ≈71% 即合规预期;格边 <32 板溢出 ≤(32−cell)px 接受;新出口 _hero_feet 居中脚底锚/hero_hand_point 持握手位/hero_sprite_scale);②挥铲=握把锚 (18,12) 对齐**英雄持握手位**——以手为圆心、铲长为半径旋转(三帧系素材预烤相位,锚钉死手位即成弧;手=盒底往上 1/4 盒高、水平居中;play_shovel_swing 签名改 (hand, dir, sprite_scale),共享边中点+12% 偏置作废);③触发点=**格子点开那一刻**(settle_batch 同步受理即状态已变,动画纯表现与 refresh 同拍零竞态——上批实现本已同拍,措辞归位非代码变更)。计划书 §3.A/§3.C/风险表三处随裁修正(状态行升级)。**验证**——worktree:editor --quit 0 error+冒烟 557/0+ui_input 六断言 PASS+click_probe 问题=0(19771 预算)+layout cell_size=46.0 无漂移;合并后主区冒烟 557/0。**待实机目检**(继承 158 终项)——走路两帧/挖掘挥铲+弹跳/双向朝向/1× 居中观感。 + +160. **英雄精灵世界落位缺陷修复+B区立绘换装批(2026-09-26,本会话——用户实机截图报缺陷①+点名换装②;worktree g-plan2-herospr3,批次 ae8c5bf/合并 ce9c2c1,worktree 已清)**:①**世界坐标缺陷**(棋盘 Node2D 架构新坑)——英雄精灵挂在 SubViewport 世界内,定位却误用壳层 cell_origin(含 _svp_container.position 居中偏移 ≈(275,239)@1280 窗)=实测右偏 ~7 格+偏离格心(用户截图实证);修=_hero_feet 改世界坐标(格×步距+居中脚底锚),hero_hand_point 归壳层坐标(fx 在 SubViewport 之外须含居中偏移)——**两套坐标空间分界从此在函数注释钉死**;②B 区站桩立绘换装=48×48 hero_idle_01(candidates/hero-idle/ 源档→game/assets/art/character/character_hero_portrait.png,不入 git)+set_portrait_texture 增 flip 参数(英雄立绘水平向右=素材朝左需翻转)+盒高 106→96=48 源×2 整数档(原 106 非整数缩放违反圣经 §8.2——1× 居中裁决同纪律延伸);③ui_input_probe 新 case⑦ 英雄落位回归闸(世界坐标判据+素材缺位树跳过+墙钟 0.3s 等 Tween——headless 帧率无上限帧数等待<位移 Tween 140ms 会采半途位置,首跑误报实证后修正),六断言→七断言。**验证**——worktree:editor --quit 0 error+冒烟 557/0+ui_input 七断言 PASS+click 问题=0+layout 无漂移;合并后主区:冒烟 557/0+ui_input 七断言 PASS。**待实机目检**——小人落在蓝框格正中(缺陷①闭环)/B 区立绘朝右观感(换装闭环)。坐标空间纪律备查:SubViewport 世界内=格×步距;壳层/fx 层=世界+svp 容器居中偏移(cell_origin/cell_center_local 公式族)。 + +161. **小人立体感批+素材路径共识(2026-09-26,本会话——用户二裁①②③+立约指令;worktree g-plan2-herospr4,批次 6cbb3a5/合并 729f2a6,worktree 已清)**:①棋盘小人 **1.5× 档**(HERO_SPRITE_SCALE 1.0→1.5——用户实机看 1× 偏小;明示裁决压圣经 §8.2「禁非整数缩放」一般规则,**§8.2 豁免注记欠账归 art-bible 批另落**);②**脚锚落格高 75% 线**(HERO_GROUND_FRAC——「脚踩格子 1/4 处·自底边量」白话口径;不完全居中+头越上格沿造立体感;锚点公式与缩放解耦=缩放只改身体向上延伸量);③**脚下椭圆影=Godot 组件合成**(用户问「贴图改还是引擎做」→引擎侧:GradientTexture2D 径向渐变×黑色 modulate 0.35 压扁 32×12px,挂英雄子件 z_index=-1——位移/翻转/弹跳随父件免费同步,LINEAR filter 保渐变平滑,贴图零改动);连带补挂 hero/shadow use_parent_material=true(结算期随世界去饱和与格面同口径——基批漏挂缺陷补齐);④**素材路径分工共识落盘 design/art/asset-path-map.md**(用户立约「把哪些路径干什么确定好」:candidates=源档禁运行时引用/game-assets-art=唯一落地处/ui-icons=已入库特例/mockups=评审产物+素材流五步+禁 preload+基准朝向/锚点备查——用户问「铲子为何没进 game 目录」实为已在 game/assets/art/fx/ 自基批在库,根因=路径分工从未成文+汇报未讲素材流);⑤ui_input_probe case⑦ 期望值随脚锚公式换挡。**验证**——worktree:editor --quit 0 error+冒烟 557/0+ui_input 七断言 PASS+click 问题=0+layout 无漂移;合并后主区:冒烟 557/0+ui_input 七断言 PASS。**待实机目检**——1.5×+脚踩 1/4 线+头越上格沿观感/椭圆影浓淡尺寸(HERO_SHADOW_PX 可调)。 + +162. **Tiny Dungeon 重开复核批——终局否决(2026-09-25,本会话——用户指名复查 itch 包+明示授权重开 09-24 tile-reuse 否决;纯文档批,零代码零提交,worktree 不适用)**:itch 被墙改从 kenney.nl 直下原包实测(CC0 License 实证/132 枚 16×16 同网格/固定 27 色无禁入带风险——**复用四闸本身全过,否决理由在架构适配**)。第一轮「无凹角亮顶面」结论经用户目检指认**勘误**:缎带墙确有亮轮廓帽与凸凹角转折(包作者示例图核实);但实拼样张(20 结构件情形布局、程序直方图验证全覆盖 × M 稿自产骨架/TD 最佳努力映射双板对比)证**套不进方案甲**——①唯一可平铺墙填充=40 号灰砖与立面同材质同明度,顶/立面拉不开亮度差=无高度感;②南落面仅 38 号条内 1px 暗线;③无地板投影层;④帽条底色烤死(木板族只有直边条、沙地族只有角帽,两族缘件都不齐)。关键理解用户已确认:**未挖格=一整块 32×32 自含凸起岩体**,TD 砖带塞进格子读作平砖地毯。**终局裁决(用户):维持方案甲,TD 出局;自产任务书照旧在另一会话执行,本批不改任务书面。**备查留档:若他日改「缎带平墙」架构(=修改方案甲裁决),TD 为合格候选,届时雷坑砖/数字色牌/旗同屏适配另验。**清理**——原包 zip+解包+四张过程放大图+debug 图全删;目录留结论文档+四张证据图(cmp_side_by_side 对比样张/samplemap_render_3x 包作者示例/sheet_labeled_4x 全枚序号图/zoom_precise 墙件清单)。**文档同步**——terrain-walls 验收闸 §三评估表增 TD 行;tile-reuse 指引 TD 条目补复核指针;`candidates/tiny-dungeon-2026-09-25/0-复核结论.md` v2 落盘(重下 URL 在文内)。 + +162. **脚锚参照系统一+影子贴脚(2026-09-26,本会话——用户三裁「1/4 从下往上数」+报影子脱脚缺陷;worktree g-plan2-herospr5,批次 3cbf314/合并 3c55a0c,worktree 已清)**:①脚锚参照系统一——HERO_GROUND_FRAC 0.75(自顶)→**0.25(自底边)**:数值上与上批同线(自顶 75%≡自底 25%,像素未变),但上批常量/注释/汇报全程「75%」口径误导用户以为踩错线被纠;本批常量/公式/注释/探针 case⑦ 全换自底边参照+代码加 ⚠ 参照系纪律注(**教训:纵向比例一律自底边起算表述,禁顶底混用**);②影子中心贴脚锚 (0,2)→(0,0)——上批下坠 2px(屏幕 3px)让椭圆与脚脱开(用户报缺陷)。**验证**——worktree+主区双跑:冒烟 557/0+ui_input 七断言 PASS+click 问题=0。**待实机目检**——影子贴脚观感(浓淡/大小 HERO_SHADOW_PX/alpha 0.35 可调)。 + +163. **雷图高墙地形瓦片自产批(2026-09-25,本会话——用户令执行 `terrain-walls-2026-09-25/生成任务书-高墙地形瓦片.md`;画法 a 脚本管线一次打通,零游戏代码、零提交(素材不入 git+批文档随 candidates 目录待用户收口),worktree 不适用沿 TD 批先例)**:**交付**=`candidates/terrain-walls-2026-09-25/成品候选/` 26 枚(22 墙变体+地板+雷坑×3,§8.3 snake_case+board_type 后缀)——**初版误按任务书 §5 字面直落 game/assets/art/board/,用户指出「未经审核不入成品」后全部撤出移入候选目录,用户验收后凭指令再移入**(§8.3 候选/终稿分目录惯例)。**结构**=v0 骨架同款查表语义(20 变体端头语义按 v0 像素反推校准:endN=北向死头连接在南等);**两处规格内变更报备**——①v0 inX 四枚系凸角复制品(全边轮廓伸进实心墙,违反任务书「凹角缘件」原文+验收①周界闭合),按规格重做为角点缘件(1px 角点+1px 棱光);②阶梯凹角一格双对角地板 22 词表表达不了,新增双凹角组合件×2(wall_in_ne_sw/nw_se),规格「21+」覆盖。**材质**=抖动网格 Voronoi 碎面棱面+棱边受光/落影+同走向短裂隙+稀疏斑点(§8.5 合规:全逐像素绘制,零渐变滤镜);立面=横层理断续节理+错缝竖节理(第一版竖列条纹被评审杀:木栅栏感);单一北受光;量化色槽表,underdark/deep_underdark 整表可换。生成脚本 `_tools/gen_terrain_walls.py` 参数化留档(确定性种子可复现)。**评审**=documents:visual-judge 三轮:R1 fail(碎面迷彩+立面栅栏)→R2 fail 5/7(括弧腿 6px 过长伸进墙体成悬空暗缝;另「口袋吊顶栅栏」系评审误读 v4 陈旧样张,非瓦片缺陷)→**R3 v6 7/7 全过——但用户复审否决 v6:「基本不可用」,两点=整体丑(顶面迷彩斑块与 oga 离散碎石基准不符)+轮廓纯直线零抖动假**。v7 重做:墙顶改离散砌石结构(每石描边/受光/落影三层次+石间暗缝)、全开缘限幅抖动(profile 两端锚死保拼缝 C0 连续,唇线/接地线随动);R4 4/5 过+underdark 地面过亮反转修复=5/5,已落候选目录待用户复审;v7 仍不过则按任务书 §3 升级画法 b。**验收单六条全过(以 v6 材质口径测得,v7 待复审后随批重录)**(逐条结果录 `0-需求规格与验收闸.md` §七):①拼贴无错缝/周界闭合 ②灰度图底分离 Δ49.6(墙 120.6/地 71.0) ③顶面材质 sd=11.7 无死黑 ④数字牌/旗/角嵌留白可读 ⑤三色板证明条成立 ⑥新旧混屏同族不违和。**已知限制(移交接线批)**=相邻成对双凹角无专件(回落单件,角点自连不破闭合)/单贴图平铺重复感(tex_idx 参数已留)/非 center 基底混合凹角缺括弧(47-blob 升归接线批)。**过程样张**=`_work/` 供复阅,清理待指令。**待用户**=目检验收(候选目录 26 枚,通过后凭指令移入 game/assets/art/board/);`_work` 清理与否;实机接线=后续批(需 BoardWorld 查表合成器)。 + +163. **呈现层状态断言批(A 档方案落地,2026-09-26,本会话——用户问「Node2D 展示有无测试/能否单元验证」后拍板补 A 档;worktree g-plan2-herospr6,批次 9bbffd8/合并 adc72f2,worktree 已清)**:ui_input_probe 七断言→**十一断言**——⑧影子构成与贴脚(英雄子件唯一性/中心 ZERO/z 相对-1/alpha 0.35/GradientTexture2D/父子 use_parent_material 链)⑨右移朝向 flip_h=true+到位墙钟回站帧+缩放 1.5 均匀档(无可达右邻已开格 SKIP 不判败)⑩变格边长即时重排(缩格→即时落新脚锚+scale 均匀、还原→复位——窗口缩放回归闸)⑪贴图缺位回退(数字 0 格字形必回「人」/数字格不破坏)。**踩坑第二例在案**:探针里 Variant 链(bv._world.hero.get_children())用 := 类型推断失败=解析错=探针脚本载入失败**静默挂死**(无输出无退出,首跑 240s 超时暴露)——显式类型标注修复;与 board_view 批的「Node2D 链推断失败」同根因,GDScript 探针写法纪律+=()只用于可推断字面量。**验证**——worktree:editor --quit 0 error+冒烟 557/0+ui_input 十一断言 PASS+click 问题=0;合并后主区:ui_input 十一断言 PASS。**B/C 档(视口截图像素断言/黄金图对比)**=用户已议暂缓,样张批冻结视觉后再议。06 清单欠账备注:2026-09-20「UI 驱动夹具待立项」至今未登记(本批 A 档部分清偿,渲染类盲区仍在)。 + +164. **§8.2 改规则登记+测试分级登记(2026-09-26,本会话——用户两裁示;纯文档批零代码)**:①art-bible §8.2 缩放纪律走**改规则不豁免**(用户裁)——06 新条目登记修订方向:按资产类别分级(甲类文本/语义件=数字/图标/旗/tile 维持严格整数硬规则;乙类角色/单位精灵允许非整数+NEAREST、实机目检判据)——豁免蔓延断根、规则与实践重归一致;**修订窗口=art-bible 并行在飞批落籍后**(本批未碰 art-bible.md);连带发现:§8.2 内 1920 档 1.5× 全局缩放待决项与分级同构,样张批一并裁。②**呈现层测试分级**入 06(用户裁「重测试不进每次变更、统一周期」)——每次变更必测(轻闸 headless)=run_smoke+ui_input_probe 十一断言(触 presentation 加 click/layout 探针);周期内测(重闸)=B 档视口截图像素断言/C 档黄金图(硬前置=样张批视觉冻结)/真人目检清单/MC 大扫描;2026-09-20「UI 驱动夹具」欠账正式立项销号。验证:06 编辑零冲突(文件干净);台账 163 断言批已并入现行探针。 + +164. **高墙瓦片 v9.3 定稿交付+备选案清场批(2026-09-26,本会话——用户验收 v9.3 后指令「直接移入游戏本体+备选案打包挪走」;零代码、素材不入 git,worktree 不适用)**:**定稿交付**=21 枚入 `game/assets/art/board/`(16 唯一墙瓦片〔center/center_crack/center_speckle/n/s/w/nw/sw/hrun/vrun/end_n/end_s/end_w/lone/in_nw/in_sw〕+5 地面瓦片变体,`terrain_*_dungeon.png`;东/NE/SE/端头E/凹角NE/SE=运行时 flip_h 镜像不出文件,旧 beast-cave 砖零触碰)。**终版路线**=材质归模型(用户 Gemini 生图①岩石/④泥土→周期对齐无缝裁剪+BOX 降采样 32×32+环绕混合+量化 12 色)+结构归程序(v9 墨线纪律:全开缘 1px 深墨线直线零抖动/北缘内侧 1px 就地提亮/南缘立面窄暗条 11px/凹角角点+立面侧 1px 齐平收头——v9.1 悬空/v9.2 突出/v9.3 齐平三轮定位,前后对比+逐行像素审计存 `_work/corner_cmp_v91_v93_5x.png`)。**术语共识(用户立)**:未开格=墙瓦片,已开格=地面瓦片。**备选案清场**=v1–v9.2 全迭代+被否素材(含 v7 程序砌石/v3 生图 5×5 表)打包 `备选案-terrain-walls-v1-v9_2-2026-09-26.zip`(383 项 7.5MB,用户挪出库),`_work/` 仅留生图①④源图+风格参考+终版证据+定稿件。**复盘机制落记忆**(pixel-structure-verify-discipline):先抄后造/验收口径写像素级视觉判据/±1px 一律坐标推导/修复默认附前后对比。**遗留**:underdark/deep_underdark 换色(AI 纹理色调映射)+实机查表合成器(BoardWorld 接线,含镜像翻转)归后续批;任务书验收单逐条结果以本批 v9.3 终测为准(图底分离 67.6/无死黑/墨线周界闭合/覆盖层可读)。