diff --git a/design/art/art-bible.md b/design/art/art-bible.md index 7666b3ee..ce6d664f 100644 --- a/design/art/art-bible.md +++ b/design/art/art-bible.md @@ -1,6 +1,6 @@ # 美术圣经(Art Bible)— Dungeon Sweeper -> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**;现行为 v3.22,历次修订明细见 git 提交史 +> 项目:Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)· 状态:**第 1–9 节定稿**;现行为 v3.23,历次修订明细见 git 提交史 > > **Art Director Sign-Off(AD-ART-BIBLE)**:历次批均未签核——此为 Lean/Solo 模式(非 PHASE-GATE)下的现行治理状态;full 门禁签核时机待用户表态。 > 风格基调:地牢题材但**非暗黑风**——轻快明亮的幻想冒险风,全年龄;像素风;角色 2~3 头身。 @@ -59,6 +59,8 @@ **整屏样张闸**:格子样张验"格",整屏样张验"屏"——战斗屏/关卡屏/菜单屏/营地屏各出一张整屏样张,验收四项:①全部文字(含菜单/说明/tooltip/按钮)对其直接背景 ≥4.5:1(WCAG AA),大字(≥18px 或加粗档)底线 3:1、目标 4.5:1;②明度分层三档带成立(信息面层 > 世界中层 > 世界底层,层间灰度可分);③整屏焦点预算(§3.4:首焦唯一——数字区/立绘/主按钮,无第二焦点竞争;负空间服务焦点,不属空窗);④文字禁直接压纹理底(垫容器或罩层)。验收顺序 = **方向稿目检先行**(防"机检过闸但气质否决"式返工),目检过后机检冻结。执行时机 = 屏级视觉落码开工前;过闸前一切屏级视觉为占位临时态(§7.1 完成条款)。**样张判定物的产出手段与素材输入级别不进圣经定值**——圣经只定样张要验什么,不定样张以何种手段产出、也不定它取哪一级别素材输入。验收:机检〈整屏样张四项断言全绿,且目检先行过审〉 +**战斗一屏样张登记(合并提交 3b66d1a6)**:战斗一屏样张批整屏四项机检全绿——抽样读数:文字对比最弱 5.34:1;舞台底 L0.036/已开格底 L0.089 落两子带、间隔 0.053;首焦=数字区高对比能量占比 59%;名字行素底牌平底零地台色。样张整体过闸待方向稿目检先行(真人检测,登记于体验验证清单 ㊶) + **样张现状**:格子样张已冻结,冻结凭据 = git 提交 7a847c7(机检报告)与 §4.1/§8.2 定值表;样张 v3 产物原件已丢失、未入 git。现行冻结态:色板与帧数档维持冻结;数字形制 = 亮墨三档直画 + 色牌后备(值见 §4.1);新增图类型/变异色板须重跑本节测试。验收:机检〈冻结项定值均以 §4.1/§8.2 对应 owner 表为准〉 --- @@ -374,7 +376,7 @@ ### 6.1 战斗舞台背景(B 区环境) - **双舞台常驻下的 B 区环境**:战斗画面区(站桩立绘所在)的背景 = 明亮地窟,与 §1 风格基调同源——暖倾向、无压抑;背景整体**低对比自然后退**(§3.4 焦点预算延伸):背景禁止构成完整凸形、禁止抢 B 区立绘与 D 区数字的焦点,识别层级恒为 立绘 > 背景。验收:目检〈背景无完整凸形、立绘最抢眼〉 -- **舞台正面目标**:B 区 = **地窟看台**——立绘脚下地台/落影承载(世界中层),背景环境层低饱和后退、明度走世界底层档,允许光源氛围(洞顶光柱/暖光晕候选);角色禁止直接贴平色底。规格与终值归整屏样张闸(§1.4)冻结。**地台面上零文字**——暖白 `#F0E2C8` 对地台板身 `#968264` 实测仅 2.89:1,已越 §7.2 的 4.5:1 硬指标,落法按 §7.2「文字禁直接压纹理底」(垫容器、素牌或罩层),非新条款;站桩文字位改垫素底或落进结算明细带。验收:目检〈立绘脚下有地台/落影,非贴平色底〉+机检〈B 区站桩文字位正下方像素非地台板身色 #968264〉 +- **舞台正面目标**:B 区 = **地窟看台**——立绘脚下地台/落影承载(世界中层),背景环境层低饱和后退、明度走世界底层档,允许光源氛围(洞顶光柱/暖光晕候选);角色禁止直接贴平色底。规格与终值归整屏样张闸(§1.4)冻结。**地台面上零文字**——暖白 `#F0E2C8` 对地台板身 `#968264` 实测仅 2.89:1,已越 §7.2 的 4.5:1 硬指标,落法按 §7.2「文字禁直接压纹理底」(垫容器、素牌或罩层),非新条款;站桩文字位改垫素底或落进结算明细带(实装=站桩名字行垫 `HP_BAR_BACK` 深档素底牌、文字基线上移至地台顶上方——2026-10-30 落地)。验收:目检〈立绘脚下有地台/落影,非贴平色底〉+机检〈B 区站桩文字位正下方像素非地台板身色 #968264〉 - **明度分层适用**:背景氛围的情绪表达仍禁止以压暗/渐晕实现(§2 禁令);空间纵深与洞穴感走明度分层允许域——世界底层档、光照氛围、色相饱和与形体承载(§3.2 同款逻辑)。验收:方向性 - **图类型联动**:背景 tint 走 §4.3 `wall_ambient` 槽,随三关换挡(方向候选见 §6.3);紫赤仅 Boss 战允许短暂进入背景氛围纹样(§2.6 色相独占的舞台侧延伸,高饱和独占不变),非 Boss 战高饱和紫赤禁入。验收:机检〈背景吸色无非 Boss 高饱和紫赤〉 - **资产渠道**:✦ 插画级(演出类场景贴图,清单 §4 联动登记);战斗一屏样张(§1.4 清单 1.2)含背景出样。**资产契约(尺寸候选,样张冻结终稿)**:基准一张 = `scene_stage_bg.png`(源 1280×270,B 区全高含明细带底;三关换挡走 §4.3 `wall_ambient` tint 槽,不按板出三张——换皮成本复用棋盘同款逻辑),显示 1×;呈现约束按本节各条(低对比后退/明度世界底层档/光柱氛围保留)。程序化平色+光柱现行使用 = 占位;插画工单归 PRD,交付后 art-status-checklist 同步 ✅。**出图只出远景 + 中景两带**:结算期明细带底 84px 会盖住 B 区 78%–100% 段(约 59px),近景带在结算期整条不可见——画进背景等于画一件永远看不见的东西。远景/中景的构图占比归整屏样张(§1.4)。验收:目检〈背景插画内零地台结构件〉 diff --git a/design/art/art-prompts.md b/design/art/art-prompts.md index 45a51a7a..76348109 100644 --- a/design/art/art-prompts.md +++ b/design/art/art-prompts.md @@ -1,4 +1,4 @@ -# 生图提示词卡(角色级资产)v2.9 +# 生图提示词卡(角色级资产)v2.10 > **性质**:美术清单生图通道(✦ 用户自跑,现走线上 API)的执行侧文件——每资产一段**自包含完整提示词**:正向 = 通用底座+主体+动作已拼妥、负向 = 通用底座+增补已并妥,整段复制直接贴进工作流即可,**不需要读其他文件、不需要拼装**。人物规格转写自 [character-design.md](character-design.md)(人物设计 v1.0,自 art-bible §5 迁出,圣经 §5 为存根),风格/色彩条款转写自 [art-bible](art-bible.md)(§4.1 主色板 / §4.2 语义色规则);冲突时人物规格以 character-design 为准、色彩以 art-bible 为准。 > **边界**:本文件只管**角色级**资产的生图通道。图标/格面/样张走脚本管线(⚙ 代理出),规格在 art-bible §4.6 与 [art-assets-checklist](art-assets-checklist.md),不需要提示词。**场景级资产(营地场景图的背景层与八个物件层)另立 [camp-scene-prompts](camp-scene-prompts.md),本文件不覆盖**;两卡的角色/场景分工以「谁的资产谁出卡」为界,同一段提示词不两处维护。战斗舞台的场景级两件与护甲类型图标三枚的**出图工单**登记在本文件 §5(camp-scene-prompts 只管营地场景图,战斗屏这两类无处可落);§5 只把各权威节的定值收进逐件工单,不立新值。意图动画三档是动画资产,等一屏样张锁方案后另立规格卡,本文件不覆盖。 @@ -290,6 +290,7 @@ Seamless tileable pixel art texture of dry dirt ground, top-down, for a dungeon > **定值纪律(§8 头注 定值单点纪律)**:本节**指路不立值**——色值 = 圣经 §4.1(含场景环境子板)、尺寸与缩放 = §8.2、明度带 = §2、甲档 = character-design §5.3、命名 = §8.3 + asset-path-map。本节新增零定值;凡圣经未定的值,一律进本节 §5.5 缺口,不在本节填空。 > **验收标注纪律**:逐条按三档标 `←机检: <断言>` / `←目检: <判据>` / `←方向性`,照圣经头注 2026-10-06 用户拍板的写法。 > **流程**:出图前后一律走 §0 五步;出图登记义务(模型名 + 分辨率 + seed + 对话/日期)照 remote-gen-prompts 头注,随候选图存 `artwork/candidates/<资产名>/`,缺登记的候选不入正稿遴选。 +> **产出状态**:组二地台件与组三护甲三枚已按各节 ⑤「程序化产出即终稿」产出入包(`scene_stage_plaza.png` 48×12、`ui_armor_light/ward/heavy.png` 24×24,路径见各组 ① 字段;登记=战斗一屏样张批,合并提交 3b66d1a6);组一背景插画与组四立绘重产仍待出图。 ### 5.1 组一 · B 区舞台背景插画(1 件) diff --git a/design/engineering/test-conventions.md b/design/engineering/test-conventions.md index b30c0c47..c89d61a8 100644 --- a/design/engineering/test-conventions.md +++ b/design/engineering/test-conventions.md @@ -35,7 +35,7 @@ 需求卡片 §8「改动—验收对照表」每一条都要落成可执行的验证;本文定统一写法,卡里定每批的具体内容(测什么/注入哪里)。写卡期查不出执行载体的条目=不可测,当场呈报,禁拖到实现期。 1. **执行载体五选一,逐条声明**:单元测试(`tests/run_all`)/系统测试断言(`tests/system_test.gd`)/场景探针(`probe/` 下 `*_probe`)/MC 同种子逐项比对/人工核对(仅限无法自动化的纪律类需求点,如命名锁定、数值占位)。行为类条目以自动化载体为主。 -2. **粒度与对应关系**:每条清单条目至少一个自动断言,且断言必须从该条目的真实入口进入;多条条目可合用一个测试函数,但撤销对应改动时每条都要能单独变红。断言失败消息末尾带编号尾缀〔卡短名 Vn〕(如〔秘宝批 V3〕)——断言与卡片清单可互相 grep 查找。**工具面局限备案(2026-10-27 迭代 39 验收审计)**:`Kit.check_quiet` 静默收集形态(计数不入判定即打印、失败消息进 problems 汇总)的断言消息不进 `tools/extract_checks.py` 扫描面——验收尾缀 grep 对该通道失效;如需覆盖属提取器改版(工程批)。 +2. **粒度与对应关系**:每条清单条目至少一个自动断言,且断言必须从该条目的真实入口进入;多条条目可合用一个测试函数,但每条都要有自己单独可判红的判据(取证口径见 §8.4 唯一口径——禁变异/禁撤销)。断言失败消息末尾带编号尾缀〔卡短名 Vn〕(如〔秘宝批 V3〕)——断言与卡片清单可互相 grep 查找。**工具面局限备案(2026-10-27 迭代 39 验收审计)**:`Kit.check_quiet` 静默收集形态(计数不入判定即打印、失败消息进 problems 汇总)的断言消息不进 `tools/extract_checks.py` 扫描面——验收尾缀 grep 对该通道失效;如需覆盖属提取器改版(工程批)。 3. **断言词汇按验证对象五选一**: | 词汇 | 适用场景 | diff --git a/design/gdd/systems/战斗循环/战斗表现.md b/design/gdd/systems/战斗循环/战斗表现.md index 46eb7a41..8500de82 100644 --- a/design/gdd/systems/战斗循环/战斗表现.md +++ b/design/gdd/systems/战斗循环/战斗表现.md @@ -1,7 +1,7 @@ # 战斗表现 > 一句话:战斗动画与演出(旧体系未单独成文) -> 状态:范围草案(待设计);现行为 v1.1 +> 状态:范围草案(待设计);现行为 v1.2 ## 设计目的 @@ -92,6 +92,8 @@ 判定与回退:第 1 项不过即演出元素回炉,禁止以牺牲可读性换氛围(改演出、不动数字口径);第 2–4 项不过对应资产或方案回炉重交,已过项结果保留。第 5 项(敌层插入位置)不产生过/不过,产出一条裁决记录:插入位置结论由[敌人系统](敌人系统.md)的呈现契约登记(~~敌人卡形态对照~~半边已于 2026-09-20 提前裁决完成——全站桩定稿,结论已回写 battle.md 起草条款)。样张通过 = 角色剪影、动画方案、战斗空间、敌层插入位置四件锁定物冻结;通过前不启动任何终稿资产与动画设计。 +**现行状态(2026-10-30 战斗一屏样张批)**:五项验收的机检断言已随该批全绿(机器代理口径与实测读数查战斗一屏样张批 git 提交史,合并提交 3b66d1a6);样张整体过闸仍差方向稿目检先行(art-bible §1.4 闸形,目检项登记体验验证清单 ㊶)。 + ### 演出服从信息与可读性 两条现行硬约束,将来任何动画方案都禁止越过。其一,数字可读性高于氛围:挖掘期画面无杂音,动画禁止遮挡数字、禁止在挖掘期抢焦;结算期的色彩与能量走向以 art-bible 第 2 节为权威。其二,结算逐行兑现是信息载体:battle.md 已承诺不可整体跳过、只提供减动效选项(时长减半或直达终态,逐行兑现可加速不可省略),本文将来兑现其动画侧。 diff --git a/reports/iter43-代拍板追认单-2026-10-29.md b/reports/iter43-代拍板追认单-2026-10-29.md deleted file mode 100644 index 51c346c3..00000000 --- a/reports/iter43-代拍板追认单-2026-10-29.md +++ /dev/null @@ -1,21 +0,0 @@ -# 迭代 43 代拍板追认单——战斗一屏样张批(2026-10-29) - -> 接收方:待办清单条目「战斗一屏样张 P0 未开工」(随实现报告一并呈报,用户追认后随反哺点一并处置)。 -> 卡片 §10 代拍板白名单四项内行使的记录+白名单边缘判断的追认请求。超白名单事项零(无越权裁断)。 - -## 白名单内行使记录 - -1. **样张脚本内临时变量命名、辅助函数拆分方式**:`draw_base()`/`_grad_top_cells()`/`_region_wcag()`/`_mask_maxch_dist()`/`_resample_mask()`/`_mask_iou()`/`_outline_underlay()`/`_ink_outline_polygon()` 等拆分;实装侧 `_armor_tex_path()`/`_name_plate_rect()`/`_name_baseline()`/`_draw_plinth_stretched()`。 -2. **断言在 CHECKS 内的 id 命名与登记顺序**:S1–S4(整屏四项)、P1–P5(战斗表现五项)、A7(护甲对比锚)、V1(两版出口)、V10(基线并排)、A5b(成稿净空)。 -3. **程序化产出素材的绘制实现细节**(颜色全取 v3.22 在册值、零新增色):地台件按工单 §5.2 工艺逐行(1px 上描边 #4C4038+2px 顶缘受光线 #C9AF83+8px 板身 #968264+1px 下描边,全周闭合);护甲三枚按 §5.3.1–5.3.3 形状(轻甲=斜跨皮带+扣件、魔甲=符纹带+两枚 3×3 符点、重甲=肩两块+胸一块甲板,深墨 #33261B 1px 描边)。 -4. **两版样张输出文件名与落盘目录**:`artwork/mockups/sample_battle_screen_{1280x800,1920x1080}.png`;附属:基线 `sample_battle_screen_baseline_1280.png`、并排 `sample_battle_screen_before_after.png`、装配稿沿用 `sample-batch-v3-final-2026-09-30.png`。 - -## 追认请求(白名单边缘判断,已按实现决定记录备案) - -5. **S3 首焦唯一的机器代理换型**:首版「最高对比点簇 ∈ 单区 ≥85%」被文字字形边打穿(红),按卡片 §9 L1(断言红修实现不修判据原则的反向面——判据为本批新建,代理形态属白名单 2「断言实现细节」)改为「高对比能量占比 winner ≥55% 且 ∈{数字区,B 区}」。语义等价(无第二焦点竞争),实测数字区 59%。 -6. **P2 剪影灰度 IoU 阈值 0.35**:新建断言的初始阈值,按三语境实测(0.36/0.37/0.61)与「同角色体块计划过半重合」的设计判断设定。 -7. **mockup C 区次级文换墨**:原裸值 (140,90,30)/(120,110,98) 对 C 区板 4.06:1/3.5:1 违整屏①——换在册墨 GOLD_INK(5.34:1)/STONE_DEEP(6.13:1),值单点不新增色。 -8. **mockup 意图徽标补 PANEL_DATA 垫牌**:实装已有素牌而 mockup 漏镜像(裸字形对舞台底 2.36:1 违①),补牌对齐实装。 -9. **A5b 补充断言**:对装配后成稿补跑画布净空(既有 A5 历史形态跑在空白底板上)——首跑即抓出注记长行溢出 6px,已拆行修复。 -10. **单测承载选型**:V5–V9 落新套件 `standee_present_values_test.gd`(manifest 登记一行)而非并入 standee_fx_sweep——域命名与 grep 锚更干净,套件族映射自动覆盖。 -11. **数据保真从紧**:三敌甲档按数据面全 light,护甲三枚展示移 S6 附录——不为展示效果改 mockup 数据面。 diff --git a/reports/iter43-反哺点-2026-10-29.md b/reports/iter43-反哺点-2026-10-29.md deleted file mode 100644 index ac34ed7d..00000000 --- a/reports/iter43-反哺点-2026-10-29.md +++ /dev/null @@ -1,22 +0,0 @@ -# 迭代 43 反哺点清单——战斗一屏样张批(2026-10-29) - -> 接收方:待办清单(文档批落文裁决用)。用户在会话中逐条裁决后由文档批写入 `design/` 与根流程件,并把该条清掉;实现批对 `design/` 与根规则文件只读。 - -## 卡片 §6 预登记的关联文档同步面 - -1. **`design/gdd/ux/battle.md`**——B 区高度:文 270 vs 代码 252 的 18px 差异。本批样张按代码 252 出(样张反映实机),实装对齐与否待用户裁决(对齐=需求改动走写卡通道)。 -2. **`design/art/art-bible.md`(v3.22)**——§1.4 整屏四项闸的通过事实与抽样读数(文字对比最弱 5.34:1;舞台底 L0.036/格底 L0.089 落两子带间隔 0.053;首焦=数字区能量占比 59%;名字行素底牌平底零地台色);§6.1/§7.2 站桩素底深档 `#282220` 实装落地事实(名字行素底牌+基线上移地台顶上方)。 -3. **`design/art/art-prompts.md` §5**——组二地台件、组三护甲三枚已「程序化产出即终稿」并入包(`scene_stage_plaza.png` 48×12、`ui_armor_{light,ward,heavy}.png` 24×24);组一背景插画、组四立绘重产仍待出图(状态不变)。 -4. **`design/gdd/systems/战斗循环/战斗表现.md`**——「一屏样张的验收标准」五项过闸结果(P1–P5 断言全绿;判据机器代理口径见实现报告 §3.2–3.3)。注意:本批样张为**方向稿**,目检先行——气质终审通过后才算样张整体过闸(§1.4 闸形)。 -5. **`design/engineering/test-conventions.md`**——§8.4 撤销证明条文与 2026-10-28 新验证口径(禁变异/禁撤销取证)冲突,旧句待清。 -6. **`AGENTS.md`**——「验收闭合」红线句仍保留「撤销该改动能让对应断言变红」旧措辞,与新口径冲突。 - -## 本批新发现(实现期产出,非卡片预登记) - -7. **血条递减 tween 静默空转(既有缺陷)——已消解**——本批随测发现 `standee_body.gd` `_set_hp()` 补间用点号子属性路径(应为子对象/冒号形态);收口并 master 时已由迭代 41 测试债批修复(补间目标改子对象 `tween_property(st, "hp_value", ...)`,提交 215da315),合入态复跑单测零 ERROR。本条无需落文,留档备查。 -8. **站桩名字行 12px 的字号档位归属**——`standee_body.gd` 名字行绘制取 `UiKit.FS_CAPTION`(12,本批仅收常量不改值);art-bible §7.4 字号档位表下该位既不在①条带内读数豁免、也不在②装饰 caption 在册面,属「清单外 11–13px」。处置二选一由用户裁:提档(FS_HINT 14,与顺位徽标同款)或增补 caption 在册面。 -9. **能力清单缺本批预留行**——`game/tests/README.md` 能力清单无本批 V5–V9 代表用例行(卡片成文早于清单 2026-10-29 改版定稿)。归写卡段按 test-conventions §8.3 补行(代表用例=`game/tests/unit/presentation/standee_present_values_test.gd:_init`,真实入口=`UiKit.load_tex()`/`StandeeBody.name_line_probe()`)。 -10. **art-bible §4.1 换色合并三处的执行状态**——地台绘制点半边已由地台件纹理执行(顶缘受光线 `#C9AF83`、描边 `#4C4038` 落 `scene_stage_plaza.png`);残余:① `STAGE_BG`(#3E342A→#3E362C)未执行(本批不触 `battle_stage_view.gd` 底色);② `STAND_STONE_RIM`(#C4AC84)仍被 `board_cell_unit.gd:359` 口沿高光在役引用;③ `STAND_STONE_EDGE`(#5A4C3A)由地台缺位回退路径在役引用。常量彻底退役与否归文档批裁决。 -11. **体验验证清单登记**——「战斗一屏样张方向稿目检」项(判据与材料见实现报告 §5;真人检测只登记不阻塞)。 -12. **根流程件换代**——待办清单条目「战斗一屏样张 P0 未开工」状态推进(本批实现完成后按 doc-conventions §12.1 整条删除);roadmap 迭代 43 行状态与实现报告列、「当前位」三行换代;样张产物归档位=`artwork/archive/战斗一屏样张批-2026-10-29/`(batch-closure 执行)。 -13. **意图徽标四色墨补机检断言(验收审计附注)**——样张脚本 S1 文字对比为绘图用色值对表,意图徽标四色墨(atk/buf/debuff/charge 对 PANEL_DATA 垫牌)未入 CHECKS;独立审计复算 4.97–5.62 全 ≥4.5 事实成立,仅缺机检断言。归样张脚本的后续文档/工程批补一条对表断言(values 全在册,零新增色)。 diff --git a/reports/iter43-实现报告-2026-10-29.md b/reports/iter43-实现报告-2026-10-29.md deleted file mode 100644 index 0daed6a2..00000000 --- a/reports/iter43-实现报告-2026-10-29.md +++ /dev/null @@ -1,87 +0,0 @@ -# 迭代 43 实现报告——战斗一屏样张批(2026-10-29) - -> 接收方:待办清单条目「战斗一屏样张 P0 未开工」;roadmap 迭代 43 行。 -> 分支 iter43(基准 ee4efad5)· 单工作区单卡串行 · 实现报告/追认单/反哺点清单三件同日落 `reports/`。 - -## 1. 各卡状态 - -| 卡 | 内容 | 状态 | -|---|---|---| -| T0 | 开工准备(worktree+素材导入+user 目录+v3 脚本基线跑) | 完成(基线 17/17 全绿存档 `artwork/mockups/sample_battle_screen_baseline_1280.png`) | -| T1 | 样张底板两版画布 | 完成(`draw_base()`+两版出口,机检 V1 绿) | -| T2 | 内容清单铺画 | 完成(色板变体第二套 S3b/三组关键帧条 S5/剪影三语境+描边对照+遮挡对照组 S6/mockup 镜像实装定值) | -| T3 | 整屏四项断言进 CHECKS | 完成(S1–S4 全绿) | -| T4 | 战斗表现五项断言进 CHECKS | 完成(P1–P5 全绿+A7 护甲对比锚) | -| T5 | 血条填充换 #A8321F(经 UiKit 常量)、条底收常量 | 完成 | -| T6 | 名字行垫 HP_BAR_BACK 素底、不压地台 | 完成 | -| T7 | 顺位徽标提档 UiKit.FS_HINT | 完成 | -| T8 | 护甲图标由字形换三枚 24×24 PNG | 完成 | -| T9 | 地台件与护甲三枚程序化产出并入包 | 完成(`--gen-assets` 四件,工单 §5.2/§5.3 口径) | -| T10 | 三份批件+改前/改后并排对拍图 | 完成(并排图机检 V10 绿) | - -**样张机检:30/30 全绿**(17 条既有 F/A 断言+S1–S4+P1–P5+A7+V1+V10+A5b)。 -**单元套件:standee_present_values 18/18 全绿**(exit 0)。 - -## 2. 实际改动—验收对照表 - -> 卡片成文(2026-10-28)早于迭代 41 呈现层结构收敛合入(2026-10-29),卡片 §3/§8 的 `standee_body.gd` 行号普遍漂移;实质判据 15 处实查零冲突(开工检查记录见 git 提交史)。本表按**实际行号**记载。 - -| # | 需求点 | 改动(实际 file:line) | 验收测试(文件:行+尾缀) | 层级 | 真实入口 | 判据绑定面 | 结果 | -|---|---|---|---|---|---|---|---| -| V1 | 样张两版产出 | `tools/render_sample_sheet_v3.py` main() 两版出口(1280×800 基座;1920×1080=1.35×+黑边各 96px) | `tools/render_sample_sheet_v3.py` CHECKS 条目 V1 | 探针 | `python tools/render_sample_sheet_v3.py` 真实跑批 | 两版位图尺寸 1280×800 / 1920×1080 | 绿(ed1 (1280,800)/ed2 (1920,1080)) | -| V2 | 文字对比 ≥4.5:1 | 同上(S1 断言+mockup C 区次级文换在册墨 STONE_DEEP/GOLD_INK) | CHECKS 条目 S1(最弱对 5.34:1) | 探针 | 同上 | 八组文字面实际用色 WCAG 对表 | 绿 | -| V3 | 明度三档带成立(含两子带) | 同上(S2 断言) | CHECKS 条目 S2 | 探针 | 同上 | 舞台底 L0.036/已开格底 L0.089 落两子带、间隔 0.053≥0.02;信息 0.78>中层 0.23 | 绿 | -| V4 | 首焦唯一 | 同上(S3 断言) | CHECKS 条目 S3 | 探针 | 同上 | 高对比能量占比:数字区 59%(≥55% 且 winner∈候选区) | 绿 | -| V5 | 血条=危险红 #A8321F | `standee_body.gd:525` 填充引 `UiKit.HP_BAR_FILL`;`:522` 条底引 `HP_BAR_TRACK`;`ui_kit.gd:194-195` 两常量 | `standee_present_values_test.gd:28-35`〔样张批 V5〕 | 单元 | 冒烟套真实跑批(run_all manifest) | 常量值 to_html=="a8321f"+源码锚(绘制点引用+全源零 #689CE8/零裸 Color(0.41,0.61,0.91)) | 绿(headless 无渲染面,像素采样以常量单点+源码锚承载——观测面注记) | -| V6 | 名字行垫素底、不压地台 | `standee_body.gd:445` `_name_plate_rect()` 几何单点(牌底沿=地台顶)、`:456` `_name_baseline()`、`:570-588` 绘制域;`name_line_probe()`(`:100-109`)扩几何出口 | `standee_present_values_test.gd:45-51`〔样张批 V6〕 | 单元 | 同上 | probe 几何:基线 y=149 < 地台顶 y=158;牌色 #282220;样张侧 S4 断言(平底 100%+零地台板身色) | 绿 | -| V7 | 顺位徽标提档 14 | `standee_body.gd:519` 裸 13 → `UiKit.FS_HINT` | `standee_present_values_test.gd:55-56`〔样张批 V7〕 | 单元 | 同上 | FS_HINT==14+绘制点源码锚(grep 该处零裸字号) | 绿 | -| V8 | 护甲图标换三枚 PNG | `standee_body.gd:432` `_armor_tex_path()`(三键→`UiKit.TEX_ARMOR_*`)、`:570-588` draw_texture_rect 24×24(缺位回退字形);`ui_kit.gd:253-255` 路径单点 | `standee_present_values_test.gd:64-71`〔样张批 V8〕 | 单元 | 同上 | 三键 ResourceLoader 装载 24×24+probe armor_icon 出绑定路径 | 绿 | -| V9 | 地台件与护甲三枚入包 | `game/assets/art/scene/scene_stage_plaza.png`(48×12,不入 git)+`game/assets/ui/icons/ui_armor_{light,ward,heavy}.png`(24×24,入 git);`standee_body.gd:493`/`:502` 九宫格横向拉伸接装 | `standee_present_values_test.gd:76-81`〔样张批 V9〕 | 接口 | 同上 | 资源可加载且尺寸 48×12 / 24×24 | 绿 | -| V10 | 改前/改后对拍图产出 | T0 存基线(1280×800);main() 生成并排图 | CHECKS 条目 V10 | 探针 | 样张脚本真实跑批 | 基线版与改后版两源文件尺寸一致+并排图落盘 | 绿(`sample_battle_screen_before_after.png` 2570×810) | - -**反向覆盖**:diff 内全部行为改动均上表有行;非行为改动=`run_all.gd` manifest 一行登记(套件注册,非游戏行为)、测试 `.uid` 边车、样张脚本注释与文档头扩展。孤儿断言:无(样张 CHECKS 全部挂 V1–V4/V10/S/P/A7;单测 18 条全挂 V5–V9)。 - -## 3. 实现决定记录(代拍板白名单内行使+边界判断备案) - -1. **断言 id 命名与登记顺序**(白名单 2):整屏四项=S1–S4、战斗表现五项=P1–P5、护甲对比锚=A7、两版出口=V1、基线并排=V10、成稿净空=A5b。 -2. **S3 首焦唯一的机器代理**:首版「最高对比点簇 ∈ 单区 ≥85%」被文字字形边打穿(各文字面对比同档,簇分裂 23%/25%)。改用**高对比能量占比**(top10% 梯度格按区归堆,winner ≥55% 且 ∈{数字区,B 区立绘})——语义=「对比内容量集中单区,无第二焦点竞争」,与 battle.md「挖掘期视线锚棋盘区」同轴。实测:数字区 59%/B 区 20%/C 区 17%。 -3. **P2 IoU 阈值 0.35 校准依据**:三语境剪影两两 IoU 实测 0.36/0.37/0.61(棋盘×明细同源资产最高;舞台立绘×棋盘小人跨源档最低)。0.35=「过半体块计划重合」档,按同角色 chibi 渲染的设计判断设定,非放宽既有断言(本断言为新建)。 -4. **HP_BAR_TRACK 新常量**=视图原裸值 `Color(0.10,0.10,0.11)` 原样收口(值不属色板新增——现渲染值单点化,卡片 §7.1「条底收常量」的直接执行)。 -5. **STAND_STONE_RIM/EDGE 两常量保留**:RIM 另有 `board_cell_unit.gd:359` 口沿高光在役引用(本批不触该文件);EDGE 由地台缺位回退路径在役引用。art-bible §4.1 换色合并三处的**地台绘制点半边**已由地台件纹理(#C9AF83/#4C4038)执行;常量彻底退役与 STAGE_BG 合并半边归文档批裁决(反哺点 10)。 -6. **意图徽标垫牌镜像补齐**:实装 `standee_body.gd` 意图徽标有 PANEL_DATA 素牌(四色墨对牌 4.7–5.8:1),mockup 原裸画字形(对舞台底 2.36:1 违 S1)——mockup 补牌对齐实装。 -7. **护甲三枚数据保真**:三敌甲档按数据面全 light(goblin/bugbear/ogre_chief),不为展示图标改甲档;三枚图标的展示落 S6 附录(挂 HP_BAR_BACK 素底,与实装挂载底同口径)。 -8. **观测面注记(test-conventions §8.4 出口)**:headless 无渲染面,V5/V7 的「像素采样色值」以常量值断言+绘制点源码锚+探针几何承载;V6 判据「基线 y < 地台顶 y」绑 `name_line_probe()` 几何出口(公开方法,非内部字段直查)。 -9. **A5b 补充断言**:既有 A5(画布四缘净空)跑在空白底板上(v3.5 冻结形态),本批补 A5b 对**装配后成稿**跑同一判据——首跑抓出 S4 注记长行溢出右缘 6px(已拆行修复),确证其价值。 -10. **样张输出文件名与落盘目录**(白名单 4):两版=`artwork/mockups/sample_battle_screen_{1280x800,1920x1080}.png`;基线=`sample_battle_screen_baseline_1280.png`;并排=`sample_battle_screen_before_after.png`;装配稿=原 `sample-batch-v3-final-2026-09-30.png`(1560×2080)。 -11. **单测承载选型**:V5–V9 落新套件 `standee_present_values_test.gd`(单元面按 §8.2 从领域类对外方法进出)而非既有 standee_fx_sweep(其 _init 为缺陷扫掠专用段)——manifest 登记一行;闸映射 `game/presentation/*`→presentation 族自动覆盖。 -12. **能力清单缺口**:本批 V5–V9 代表用例行在 `game/tests/README.md` 能力清单**无预留行**(卡片成文早于清单改版定稿)——实现批禁写 README,归写卡段补行(反哺点 9);测试函数名以卡片 V1–V10 为唯一锚。 -13. **受影响存量断言换代(test-conventions §5.5 同生死义务)**:`theme_projection_test.gd` V4 源码锚原钉旧实现「`-1, 13, UiKit.GOLD_BRIGHT`(13px 行原位)」——V7 提档使其失效;同批以**更强**新态锚替代(新形态 `UiKit.FS_HINT` 在位 **且** 旧裸 13 清零,一断言两半),首跑全量闸 02 抓出该红、替代后 164 项全绿。非削弱:旧断言只验证旧形态存在,新断言验证新形态在位+旧形态绝迹。 - -## 4. 存量红判别(闸前自检;合入态更新) - -- S10 文件头 4 处(`config_db.gd`/`config_domain_{combat,crossrun,run}.gd`)与 S11 禁用词 1 处(`adventure_table.gd:55`「罕见」):本批快照(ee4efad5)实证为存量;**收口并 master(迭代 41 测试债批 215da315)时已被该批清偿归绿**——合入态两键零红。 -- gdstyle S13:基线外新违规 0、较登记值恶化 0(`standee_body.gd` 类变量计数未越基线 19——纹理装载走 `UiKit.load_tex` 即取即绘,零新增成员)。 -- **本批零新增红。** - -## 5. 实机目检总清单(真人检测只登记不阻塞) - -| 项 | 判据 | 材料 | -|---|---|---| -| 方向稿目检(卡片 §4(3)——目检先行,机检冻结归目检通过后) | 气质=明亮地窟看台、立绘最抢眼、无压抑;构图/分区/明度三档带/首焦落点与设计意图一致 | `artwork/mockups/sample_battle_screen_1280x800.png`、`sample_battle_screen_1920x1080.png`(批末归档 `artwork/archive/战斗一屏样张批-2026-10-29/`) | -| 改前/改后对照 | 五项定值前后差异可辨(血条色/素底牌/徽标/护甲图标/地台件) | `sample_battle_screen_before_after.png` | - -登记义务同步进反哺点清单(体验验证清单归文档批登记——实现批禁写根流程清单)。 - -## 6. 遗留读数义务与观测记录 - -- MC/verifier:**零跑**(卡片未要求 MC 对拍;本批无玩法数值改动)。 -- 全量回归:合回后由用户自发(2026-10-29 关联档选测口径,无自动兜底)。 -- 既有潜在缺陷(随测发现):`standee_body.gd` 血条 tween `tween_property(self, "st.hp_value", ...)` 点号子属性路径静默空转——**收口并 master 时已由迭代 41 测试债批修复**(补间目标改子对象 `tween_property(st, "hp_value", ...)`,215da315),合入态复跑单测无该 ERROR,无遗留义务。 - -## 7. 独立验收审计结论 - -**通过,可合回**(`reports/iter43-验收审计-2026-10-29.md`,未参与实现的独立审计代理执行): -- 三条自查跑批原样记录全绿:样张脚本 30/30(exit 0)/standee_present_values 18 checks(exit 0)/theme_projection 164 checks(exit 0); -- 对照表 V1–V10 十行全过(测试存在、尾缀可 grep、真实入口未绕改动点、V6 走公开 probe 零内部直查); -- 削弱检查零缺漏(V4 锚换代证实为双半强替代;全仓 grep 零 #689CE8 与零裸 Color(0.41,0.61,0.91) 含无空格变体); -- 两条非阻塞附注:①S1 为绘图用色值对表(纯色平涂下与像素采样数学等价,S2/S4/P1/P5 为像素级兜底);②意图徽标四色墨未入 CHECKS(审计独立复算 4.97–5.62 全 ≥4.5,事实成立仅缺机检断言)——已记反哺点 13。 diff --git a/reports/iter43-验收审计-2026-10-29.md b/reports/iter43-验收审计-2026-10-29.md deleted file mode 100644 index 4821bf58..00000000 --- a/reports/iter43-验收审计-2026-10-29.md +++ /dev/null @@ -1,46 +0,0 @@ -# 迭代 43 独立验收审计——战斗一屏样张批(2026-10-29) - -> 审计对象:分支 iter43 尖 `34eba7a3` vs master `d9e5c019`(diff 13 文件,+967/−113)。 -> 审计人:未参与实现的独立审计会话;只读代码面,自查跑批三条+grep。 -> 闸回执指纹:`game/tests/.gates/receipt.json`——commit `34eba7a332d7…`/tree `7db3d68a…`/2026-10-30T00:04:55+08:00/domain=full/scope=related(terms: presentation)/all_green=true/16 闸中 15 绿+「11 回放确定性对拍」SKIP(skip 非红,与回执 not_run=[] 一致)。 - -## 1. 自查跑批原始结论行(三条全在 worktree 根真实执行) - -| # | 命令 | 原始结论行 | exit | -|---|---|---|---| -| ① | `python tools/render_sample_sheet_v3.py` | `=== 机检结论: 全绿 (30/30) ===`(17 条既有 F/A+S1–S4+P1–P5+A7+V1+V10+A5b) | 0 | -| ② | `…console.exe --headless --path game --script res://tests/unit/presentation/standee_present_values_test.gd` | `[standee_present_values] all green (18 checks)`(18 条全带〔样张批 Vn〕尾缀) | 0 | -| ③ | `…console.exe --headless --path game --script res://tests/unit/presentation/theme_projection_test.gd` | `[theme_projection_test] all green (164 checks)` | 0 | - -跑批产物(`artwork/mockups/*` 与 `reports/sample-v3-final-机检报告-2026-09-30.md` 未跟踪新件)属工具正常产物,留盘。工作树经查无已跟踪文件被弄脏,代码面=尖提交原样。 - -## 2. 对照表逐行核对(实现报告 §2 实际表 V1–V10) - -| # | 结论 | 依据 | -|---|---|---| -| V1 | 通过 | `check("V1",…)` 落 `tools/render_sample_sheet_v3.py:1710`,绑两版文件存在+尺寸硬等 (1280,800)/(1920,1080);①号跑批绿(黑边各 96px 与申报一致)。卡面测试名 `sample_sheet_two_editions` vs 实际 id `V1`——id 命名属代拍板白名单 2 | -| V2 | 通过(附注 1) | S1 断言落 `:1195`,八组文字面 WCAG 值对表全 ≥4.5,最弱 5.34:1 与申报一致;真实跑批取绿 | -| V3 | 通过 | S2 断言落 `:1206`,位图逐区明度实测:舞台 0.036/格底 0.089(两子带,间隔 0.053≥0.02)/信息 0.78>中层 0.23——读数与申报逐字一致 | -| V4 | 通过 | S3 断言落 `:1230`,高对比能量占比数字区 59%≥55% 且 winner∈候选区;机器代理换代(首版簇占比→能量占比)属新建断言的算法选型(决定记录 2 备案),非对既有阈值放宽 | -| V5 | 通过 | 常量值断言(`HP_BAR_FILL.to_html=="a8321f"`)+条底 `HP_BAR_TRACK`+源码锚,测试 `standee_present_values_test.gd:28-37` 尾缀〔样张批 V5〕;**绘制点实查**:`standee_body.gd:522`/`:525` 确引两常量;全仓 grep 零代码使用 `#689CE8` 与 `Color(0.41,0.61,0.91)`(含无空格变体零命中)——`689CE8` 仅存 `ui_kit.gd:194` 退役注记注释与测试自身字符串,证明意图(零裸值使用)成立 | -| V6 | 通过(附注 2) | 测试 `:45-52` 尾缀〔样张批 V6〕,走**公开方法** `name_line_probe()`(`standee_body.gd:100-109`),零 `st._*` 直查;几何单一来源 `_name_plate_rect(:445)`/`_name_baseline(:456)` 为 `_draw(:573-576)` 与 probe 共用;断言四条(基线 y<地台顶 y/牌底沿≤地台顶/素底 #282220/读数 149<158)真实跑批绿;绘制点 `:575 draw_rect(plate, UiKit.HP_BAR_BACK, true)` 实查在位 | -| V7 | 通过 | `standee_body.gd:519` 实查确用 `UiKit.FS_HINT`,`ui_kit.gd:414 FS_HINT=14`;测试 `:55-56` 尾缀〔样张批 V7〕;`standee_body.gd` 全文件零裸 `-1, 13,` 残留(grep 实证) | -| V8 | 通过 | `_armor_tex_path(:432)` 显式 match 三键→`UiKit.TEX_ARMOR_*`(`:253-255` 路径单点);测试 `:60-72` 尾缀〔样张批 V8〕:三键 ResourceLoader 各载 24×24+ward 档 standee 经 probe 出 `armor_icon==TEX_ARMOR_WARD` 且 `armor_tex_bound=true`;缺位回退字形路径保留(冒烟安全) | -| V9 | 通过 | 测试 `:75-82` 尾缀〔样张批 V9〕:地台件 48×12、护甲三枚 24×24 可加载(worktree 内实跑过);接装点 `:491-493`/`:502-507` 九宫格横向拉伸实查在位;护甲三枚 PNG 入 git(diff Bin 0→+),地台件循素材不入 git 例 | -| V10 | 通过 | `check("V10",…)` 落 `:1722`:基线版 (1280,800) 在盘+改后版同尺寸+并排图生成;①号跑批绿(并排 2570×810) | - -## 3. 测试削弱检查(逐处) - -1. **theme_projection_test V4 锚换代(决定记录 13)——非削弱,实为增强**。新断言为双半:`contains("HORIZONTAL_ALIGNMENT_LEFT, -1, UiKit.FS_HINT, UiKit.GOLD_BRIGHT")` **且** `not contains("-1, 13, UiKit.GOLD_BRIGHT")`。前半逐字钉住 `standee_body.gd:518-519` 实际绘制调用串;后半禁旧形态绝迹不成立。旧断言仅验证旧形态存在;新断言验证新形态在位+旧形态清零,强度严格更高。③号跑批 164 项全绿含该条。 -2. **V5/V7 观测面出口(决定记录 8)——成立,未绕改动点**。headless 无渲染面下:V5=常量值断言+绘制点源码锚+旧值清零(`standee_body.gd` 内 `UiKit.HP_BAR_FILL`/`HP_BAR_TRACK` 引用实查在 :522/:525 绘制调用处,非注释孤挂);V7=`FS_HINT==14`+绘制点锚(实查 :519)。残余 `Color(` 字面量逐处排查均为批外既有(受击 modulate 补间、落影多边形、血数 11px 白字深描边——卡片 §3.9 明记豁免在册),零未申报色字面量回流。 -3. **diff 行为改动对照表覆盖——零缺行**。standee_body.gd 九处改动(常量注释/`STANDEE_FOOT_MARGIN` 删/`name_line_probe` 扩/`_armor_tex_path`/`_name_plate_rect`/`_name_baseline`/地台件接装/血条三定值/名字行重写)全落 V5–V9;ui_kit.gd 六常量落 V5/V6/V8/V9;三枚 PNG 落 V8/V9;样张脚本落 V1–V4/V10+S/P/A7/A5b;`theme_projection_test.gd` 锚换代已申报(决定记录 13);`run_all.gd` manifest 一行=套件注册非游戏行为(申报一致)。既有测试中仅 theme_projection_test 被触(5 行=锚换代),无删断言、无放宽阈值、无缩小扫描面、无换下层直调。 -4. **内部字段直查受控例外——属实且零未申报**。新测试全程公开面进出:`new("enemy")`/`set_data()`(:116 公开 setter)/`name_line_probe()`(:100 公开)/`UiKit` 公开常量与 `load_tex`(:290 公开静态);无任何 `st._*` 直查。`theme_projection_test` 源码锚走 `FileAccess` 读提交面文件=既有在册观测面。 - -## 4. 附注(非阻塞,不构成缺漏) - -1. **V2 覆盖面注记**:S1 为八组**绘图用色值对表**而非位图像素采样(卡面判据写「位图文字像素区域对比度读数」);mockup 文字系纯色平涂,值对表与像素读数数学等价,且 S2/S4/P1/P5 均为像素级取样兜底。另:意图徽标四色墨(`RED_MINE` 等对 PANEL_DATA 牌,:800-806)未入 CHECKS 机检——本次审计独立复算 WCAG 5.62/5.10/4.97/5.21 全 ≥4.5,事实成立、仅缺机检断言,建议归反哺点随文档批补。 -2. **行号记载小漂移**:实现报告 V6 行「`:449` `_name_baseline()`」实际在 `:456`(`:449` 为 `_name_plate_rect` 体内行);函数单一来源与申报实质一致,仅行号笔误。 - -## 5. 最终结论 - -**通过,可合回。** 对照表 V1–V10 十行全过、三条自查跑批真实执行全绿(30/30、18 checks、164 checks,exit 全 0)、无断言削弱、无未申报直查、diff 行为改动零缺行;观测面出口均已在实现报告决定记录 8/13 申报且经实查成立。上列两条附注为非阻塞记录。 diff --git a/reports/需求卡片-战斗一屏样张批-2026-10-16.md b/reports/需求卡片-战斗一屏样张批-2026-10-16.md deleted file mode 100644 index e9804769..00000000 --- a/reports/需求卡片-战斗一屏样张批-2026-10-16.md +++ /dev/null @@ -1,336 +0,0 @@ -# 需求卡片:战斗一屏样张批(整屏样张判定物首跑 · 四屏样张排程 · 防不满意工序重排) - -- 版本:**v1.4**(2026-10-17 开工前预授权复查:本卡**不适用** U1 预授权——两处人闸(T1 方向稿选划/T3 气质终审)是防不满意机制本体,取消即拆机制;四项 L3 经分类**全部属「触既有裁决面/超出本批面」类,维持停机呈报**,详见 §6 分类结论注);**v1.3**(2026-10-17 文档同步闸 v3 口径修订,纯文档批〔分支 carddoc-20261017〕按用户六条裁定执行——①本批(代码实现批,此处含样张工具面)禁写 `design/` 整目录与根规则文件,§8 同步面的同步义务一律执行为「列进 `reports/iter30-反哺点-<完成日>.md`(哪个文件哪一节、写成什么、依据),用户会话裁决后归文档批落文」;冻结记录段全文、目标规格清单、H1–H11 逐项处置、徽章明度档复核转正记录等**成文内容本体随反哺点条目交付**;②产出物落位换代:实现报告/代拍板追认单/反哺点清单三份落 `reports/`,不再 `design/qa/`;③T5 末卡改「产出物落位卡」(三份 reports/ 文件写齐才算收口);④闸口径按域选档:重闸 = `tools/run_all_gates.sh` 按改动域选档(本批触碰 `tools/` 样张面 → `--code`),卡内不再用「全量档全绿」类字样;⑤实机目检项写进 `reports/iter30-实现报告-<完成日>.md` 目检总清单,「入册 07」转反哺点;§7 裁决留痕原文不动,其落文类表述的执行口径随本版换代);**v1.2**(2026-10-16 用户裁决回写:Q1–Q6 六项全部已裁——裁决来源统一措辞「2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)」,§7 逐条留痕;本版改动:§7 由「待裁点」改为「裁决记录」(选项原文保留+裁定案+一句理由),排期改实(迭代 30 已编入、roadmap 同步在批;三卡串行位第 2=徽章→样张→观感),§0/§1/§2/§3/§6/§7.5/§8 按裁定口径改实,T0 承接 Q5 甲案死指涉处置(指代稿候选 v31/v32/v33-draft 实查拍板),T1 新增 Q3 乙案试验件前闸(半天,不过闸退甲案预设退路),T2/T3 承接徽章卡 Q2 甲案之明度档复核转正义务(§7.5 D1 改实),T4 随 Q2 甲案退役为登记行(06 三屏排队行=本批交付义务,写入文档时点=批次出口),估时随 Q3 乙案重算为 **≈5–6d** 并改软盒拆批线,全卡不留已裁 Q 项的「待裁」字样)。v1.1(2026-10-16 grilling 对抗审查修订;v1.0 同日成文)v1.0→v1.1 改动八项,逐条证据见文末「grilling 审查记录」:①**事实面订正七处**——整屏四项的机检代码并非「从无」(`tools/shot_checker.py` 头注自述承载 §1.4 整屏闸机检,迭代 9 T8 已首跑实测 PASS,git 053baeee;缺的是样张判定物与③焦点预算);死指涉行号 527→**562**;v1 四否决原因补全四条(②封印色冲突、④微光格只留微光此前漏列);playnote 引文改逐字;P5「worktree 不可直接跑」证伪(两级回退+自动建目录);旧锚 §5.1 另存于 06:41(此前只登记看板一处);战斗表现内容清单仍写「四区」(现行三区 B/C/D)。②新增 **P10**(关卡屏样张 v1 已冻结 2026-09-28,系立闸前产物)与 **P11**(§1.4 的执行时机已被屏级落码批越过,本批性质=闸后补跑)。③新增 **§0.5 样张批继承的既有待裁义务清单**(全库检索「待样张批冻结/终审/追认」得十项,本批禁止静默丢弃)。④新增 **§0.6 已裁项核收表**(Q 清单据此收敛,已裁面不复问;同时关闭本卡三处隐性重问)。⑤Q1 补乙案连带(A4 尺寸基线须显式解冻重校)、Q2 补关卡屏既有件、目标句与完成定义去掉「并集单闸」预设(合体方式归 Q6 未裁)。⑥新增 **§7.5 跨卡依赖**(与迭代 30 并行两卡的次序耦合+触碰面重叠禁三线并行)。⑦估时加总订正(T4 上限与合计重算)+补先例出处。⑧验收 V 条逐条改挂实存工具,判不了项降级并注明手段。 -- **指路订正(2026-10-20)**:徽章卡(迭代 30 卡①)与测试分层卡(迭代 29)已按 doc-conventions §11「吸收即死」退役,本卡对两卡的三处指路句改为结论内联+提交号(`7ffd1dc0`/`fff4f120`),裁决内容零变更。 -- 来源:[06-待办清单](../design/gdd/06-待办清单.md)「战斗一屏样张 P0 未开工——界面成品是否过审的那把尺子还没建(2026-10-13 登记,UI 美化三层诊断 · 第二层)」条(:37-43;注:该条「尺子到现在还没造出来」的措辞与 P1 读数有差——机检代码在位,缺的是样张判定物,T0 订正面连带此句);依赖素材取自同清单相邻条「UI 贴图重构批」(:21-27)「UI 字体补完」(:29-35)「资产升档重产批」(:465-471)「立绘清晰度回退评估」(:473 起)「迭代 26 反哺点④」(:78)「美术资产链路审计两项 P0」(:609-615) -- 归属:**美术线**(06 原条归属栏:战斗屏样张的验收标准归[战斗表现](../design/gdd/systems/战斗循环/战斗表现.md)与[美术圣经](../design/art/art-bible.md)共裁);样张生产脚本与机检面归呈现层工具面(工程) -- 排期:**迭代 30 已编入**(2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕),[roadmap](../roadmap.md) 编入行已在案、批内状态刷新列反哺点);三卡串行序位第 2(徽章→样张→观感,§7.5 D3 改实);开工门 = U0〔用户 `/iter` 发令——Q1–Q6 已全部裁决(见 §7),无遗留待裁项〕;v1.1 之「Q1 必须先裁」前提随其裁决(丙案)关闭,本批依赖链与任务顺序已按丙案口径改实(见 §0/§3) -- **立场前提(用户原话,本卡每环节据此设计)**:「现在做优化就是因为它丑;如果还是用原有方式产出,很可能还是不满意。」⇒ 本卡对现状的改动不是「再跑一次程序化产图」,而是**工序重排 + 选型交用户裁决 + 否决成本前移**;每张任务卡自带「相对现状新增什么」与「防重蹈不满意怎么防」两栏。 - ---- - -## 0. 前置依赖与并行性 - -**串行位**:按 roadmap 执行纪律「一迭代一 loop、单迭代串行」(roadmap.md:93),本批**已编入迭代 30**(2026-10-16 用户令,roadmap 编入行已在案、状态刷新列反哺点),前置=迭代 29(需求卡片-测试分层与门禁语义修正批(迭代 29,已入库合并 fff4f120,卡片已退役))完成后开工;三卡串行序位第 2(徽章→样张→观感,2026-10-16 用户令裁定,§7.5 D3 改实)。**两处限定(v1.1 补)**:①迭代 29 已于 2026-10-16 合入 master(合并提交 fff4f120,roadmap.md:88 状态=✅ 已入库;本卡原「迭代 29 U0 未解」读数随之作废,见 §7.5 D4),该前置已满足;本批开工时点仍取决于用户 `/iter` 发令,禁把「迭代 29 完成后」读成排期承诺;②触碰面重叠除 iter29(`tools/`、06、08、07、roadmap、active.md)外,**还包括另两张迭代 30 卡**(徽章卡动 `presentation/views`+06/08/07+art-bible 修订行;棋盘观感卡动 `tools/recolor_terrain_tiles.py`+golden 基线+art-bible §4.1/§4.3+08 表现行)——三卡各写 06/08/07/art-bible/roadmap/active.md,序位既裁则「禁三线并行」转为逐批串行执行,详见 §7.5。**v1.3 注**:三卡文档直写义务已按 2026-10-17 文档同步闸 v3 全部转为反哺点(落 `reports/`,见 §8),上列汇聚文件重叠随之消解,但 2026-10-16 串行序位裁定不因此失效——序内仍有 golden 基线先后(§4B/§7.5 D2)与 art-bible 冻结内容先后(D1)依赖,禁三线并行维持。 - -**闸已立、机检面已跑过实机帧、样张判定物从未出**:整屏样张闸条款已于 art-bible v3.0(2026-09-29)写入 §1.4(L64)——四屏各出一张整屏样张、验收四项、闸形「方向稿目检先行」、执行时机 = 屏级视觉落码开工前;§7.1 占位完成条款同步在位(L411,程序化占位 = 临时态,终稿闸 = §1.4 整屏样张过闸,占位态禁止跨里程碑)。**机检面并非空白**:`tools/shot_checker.py` 头注自述「整屏样张闸机检(迭代 9 卡⑤/T8 2026-09-30)」,四项中 ①文字对比 ②明度三档带 ④文字禁压纹理 已有实现(B/C/D 段,另 F 段补「文字在判据」),③整屏焦点预算明文「语义面无法机检 → 归实机目检人闸」(E 段);该断言集 2026-09-30 已对**实机渲染帧**首跑实测 PASS(git 提交 053baeee:「实测 PASS——WCAG 5.79-13.14/三档 204>79>55/骨架四屏过;焦点预算=目检项归段闸人闸」),随闸三裁决亦已裁毕(见 §0.6;呈报单原文件 design/qa/m3-iter9-t8-rulings-2026-09-30.md 已按吸收即死纪律在提交 8e02dcf0 删除,结论以各权威文档现行为准),现挂在 `tools/render_gate.sh` ①段周期跑。**本批要补的是剩下的半截**:出 §1.4 意义上的整屏**样张判定物**(目标图,非现状截图)、走「方向稿目检先行→精制→冻结」的闸形、补 ③焦点预算的判定、按屏扩取样点位、立四屏冻结记录(**v1.2 按已裁范围收窄:Q2 裁甲案,本批只出战斗屏判定物与其冻结记录,余三屏登记 06 排队行归后续批**)。**不新立闸条款。** - -**前置事实(2026-10-16 实读)**: - -| # | 事实 | 出处 | -|---|---|---| -| P1 | 格子样张 v3 已冻结(2026-09-30,机检 17/17 全绿,四冻结①④重冻生效)。整屏四项的**机检代码在位且已对实机渲染帧跑过**(B 文字对比/C 明度三档带/D 文字禁压纹理+F 文字在判据),**唯 ③整屏焦点预算明文不可机检(E 段归人闸)**;§1.4 意义上的「整屏样张判定物」与四屏冻结记录两件从未产出 | [art-bible](../design/art/art-bible.md) §1.4(L64 闸条款/L68 v3 冻结记录);[shot_checker.py](../tools/shot_checker.py) 头注 L1-25;git 提交 053baeee(iter9-T8 卡⑤ 首跑实测 PASS);[render_gate.sh](../tools/render_gate.sh) ①段 L11-13 | -| P2 | 现行 v3 脚本头注自称「战斗一屏样张方向稿生成脚本 v3-draft」,实际出的是 B/C/D 三区 1280×800 全内容合成图 + S2/S3/S4 附录 + A1–A6 程序化审计——但**冻结记录登记在格子样张闸名下**(圣经 §1.4 v3 段),且它验的是「格+一张合成 mockup」,不是「屏级气质判定物 + 四项逐项断言 + 冻结记录」三件齐 | [render_sample_sheet_v3.py](../tools/render_sample_sheet_v3.py) 头注 L2、L28「一屏样张 = B/C/D 三区全内容(1280×800 1:1 实比)」、L1100-1144 版式与断言清单;art-bible §1.4 L68 | -| P3 | 看板十五件:✅4 / ◐8 / ⬜3(实点计数核过);「战斗一屏样张」行 = ⬜ 未开始,需求文档指针为战斗表现 + art-bible §5.1。**注:§5 已抽离至 [character-design.md](../design/art/character-design.md)(v1.7 批),指针系旧锚;同型旧锚另有 06:41「归属」栏一处**(写作「验收标准归战斗表现与美术圣经 §5.1 共裁」——正确锚应为 §1.4 整屏闸+§7.2 文字硬指标,§5.1 只管剪影轮廓),T0 两处一并订正 | [art-status-checklist.md](../design/art/art-status-checklist.md) L5/L13-14;06:41 | -| P4 | 旧冻结样张产物 `sample-batch-v3-final-2026-09-30.png` 磁盘实测不在盘(`artwork/mockups/` 现存 v0/v2/v31/v32/v33/v34/v35-draft 等同系列图与 level-map-sheet-v1),06 在册 P0①(死指涉条,其原记状态至 2026-10-16 前悬而未决)**已由 Q5 裁甲案(2026-10-16 用户令),处置落 T0**(2026-10-14 审计会话存档 :290/:316 仍记「未读到」)。**订正:06:611 原文写「art-bible 第 68/527 行」,现行为 68 与 562**(527 行实为 §9.1 正面参考表,不含该指涉;562=v3.2 登记行)——T0 订正面对 art-bible:68/:562 与 06:611 的行号自身一并核。**同类死指涉另检出一处(v1.1 新增)**:art-bible §8.2 L490 指路 `design/qa/m3-iter9-t8-rulings-2026-09-30.md`(迭代 9 三裁决呈报单)该文件已在提交 8e02dcf0「存量超期清理批」删除,盘上不存在——裁决结论本身已由 art-bible §8.2/§8.4 与 06:465-471 承载,指路须改指现行文档或改「描述性出处」 | 2026-10-16 目录实查;06:609-615;reports/美术审计-cursor会话存档-2026-10-14.md:290,:316;git 只读查询(053baeee 建件/8e02dcf0 删件) | -| P5 | 素材不入 git(归档纪律 art-bible §8.3 L500),v3 脚本 `asset_root()` 做「本仓库→主检出 D:/code/g-plan2」两级回退,且 OUT_PNG 落笔前 `os.makedirs(..., exist_ok=True)`——**故 worktree 分支内可直接跑(v1.0 的「不可直接跑」判断证伪)**;真实约束是**产物落进该 worktree 的 `artwork/mockups/`,而 `artwork/` 整目录不入库**,冻结件不随合并进 master,须按 §8.3 归档纪律打包(这亦是 P4 丢件的成因)。素材在盘实测:board 瓦片 64 件、character 立绘/小人、`game/assets/ui/icons` 状态图标 18 件、fusion-pixel 字体齐 | 脚本头注 L31 + `asset_root` L50-56 + L62/L1147-1149;art-bible §8.3 L500;2026-10-16 目录实查 | -| P6 | 样张 v1 曾被用户**四原因整体否决**(2026-09-28),四条已全部断言化。**权威映射表在脚本写报告的那段代码里(L1156-1160),不在头注**——头注只逐条标了 ①③ 的编号,②④ 需从映射表补:①**显示太丑(总纲)**→ A6 观感密度+装饰变体 ≥2 种;②**封印色冲突**→ 封印黑 #000000(A1a 色板对表自动覆盖);③**立体感不够**→ A3 图底分离阈值上调+F6 顶面/立面双明度带 Δ≥18+F7 整板悬崖 DEPTH_PX 与游戏渲染常量同源;④**微光格只留微光**→ F5c 微光段零 draw_inlay(另见 art-bible v2.12 角嵌退役批)。注:脚本头注 L23 仍写 A3 Δ≥55、L1157 仍写「整板明度 std ≥50.9」,两处均是**旧口径残留文本**,现行定值以圣经 §1.4 v3 记录为准(A3b Δ≥30、A6 明度梯度均值 ≥4.70) | 脚本 L12-26(F1–F7/A1–A6 头注)+L1156-1160(四否决映射表);art-bible L68(Δ≥30 定值)/L570(v2.13「v1 四否决原因断言化收官」)/L569(v2.12 ④) | -| P7 | 用户气质否决另有两例点名先例:①站桩排版旧格式「盒顶固定 y 与盒内居中在高盒下拉开血条-立绘空洞」2026-10-06 用户点名否决,由 art-bible §8.2「站桩立绘排版 = 方案二」代替(L496);②playnote 立绘批评,**逐字原文**:「现在的立绘太丑了,像素化的粒度太低了,导致根本看不清立绘;看是否可以改回用较为高清的图片?」(playnote.md:9,文件本身无日期;日期系 06「资产升档重产批」条 2026-10-06 注所记「同日 playnote 立绘批评」,裁定日为 2026-10-13 归美术线) | [playnote.md](../playnote.md):9;art-bible §8.2 L496;06:465-471/06「立绘清晰度回退评估」条 | -| P8 | 氛围层两派并存(平滑渐变件 vs Bayer 有序抖动)——**已裁半**:vignette/gradient_base/beams 三件保平滑连续 alpha(2026-10-13 grilling Q5 裁,已入 §7.6(三)+§8.2 LINEAR 豁免清单);**未裁半** = 两派是否统一,明文「留整屏样张批统一裁决」——本批承接的正是这未裁半(**Q3 已裁乙为主**:统一结论在引擎实拍图上呈报、落 T3 裁决记录,见 §7) | art-bible §7.6(三) L465、§8.2 L486;06:78(迭代 26 反哺点④)/06:82(用户裁「全部按呈报写入文档」) | -| P9 | 渲染手段现状:**全仓 `.gdshader` 实测仅一枚**(`game/presentation/views/desaturation.gdshader`,结算去饱和),`ShaderMaterial` 消费面实测仅 `board_view.gd` 一处(:111 声明/:170-172 创建/:194 tween 参数),`.tscn` 内无 shader 节点;样张面全部为 PIL 代码绘制;「Godot shader 能否胜任特效」是用户已提出的未验证疑问(已由 Q3 裁定乙案承接:开工先半天试验件坐实,见 §7;另卡亦载,见 §7.5) | 2026-10-16 全仓检索(`find *.gdshader`+grep `ShaderMaterial`);徽章卡(迭代 30 卡①,已入库合并 7ffd1dc0,卡片已退役)F5/用户立场前提行 | -| P10 | **关卡屏并非零样张**:关卡画面样张 v1 已于 2026-09-28 冻结(机检 11/11 全绿,闸形 A=机检全绿即冻结,气质终审走 M-2 出口闸真人目检八项过),产物 `artwork/mockups/level-map-sheet-v1-2026-09-28.png` **在盘**。它立闸于整屏样张闸条款(v3.0,2026-09-29)之前,**从未按整屏四项判定过**——Q2 若裁含关卡屏,动作是「按四项补判既有样张」而非从零出图 | art-bible v2.14 L565、§7.2 L418;[level-map.md](../design/gdd/ux/level-map.md):3/:222/:244;roadmap.md:21(M-2 出口闸目检通过);2026-10-16 目录实查 | -| P11 | **闸的执行时机已被越过,本批性质=闸后补跑**:§1.4 明文执行时机 =「屏级视觉落码开工前」,而屏级落码已发生四轮(迭代 9 视觉落码段、迭代 16 UI 设计对齐、迭代 25 全局主题、迭代 26 交互与观感),Alpha 亦已于 2026-10-03 到手(M-3 关闭);08「三 · 界面」多行已标在役、五 · 表现仍载「战斗一屏样张=待做」——即 §7.1「占位态禁止跨里程碑」在事实上已被跨。此定性直接影响完成定义第 1/3 条的语义(过闸≠事前定方向,而是对已在役形态出目标图判定物)与 T3 回炉半径 | art-bible §1.4 L64、§7.1 L411;roadmap.md:53/:68/:84-85;08:100-118/:158;美术审计-cursor会话存档-2026-10-14.md:168 | - -**与相邻 06 条的依赖关系(Q1 已裁丙案——样张即设计目标图,本节按丙案口径改实,Q1 原文见 §7)**: -- 「UI 贴图重构批」(营地与元进度件出终稿,08 标待做 08:156,06:21-27 状态待办)——判例前置件;**Q1 丙案裁定下不构成本批前置**:样张不待其终稿,反之本卡目标规格清单(尺寸档/色板/明度档逐件成文)反向给其重产/终稿提要求; -- 「资产升档重产批」(06:465-471:**已裁案乙**〔2026-09-30 迭代 9 三裁决,本迭代不升档〕+2026-10-04 用户令暂不做、重启=用户点名+2026-10-06 优先级再降;v1.0 的「档位上调方向候选」已被 v3.7 八敌逐键定档实质完成,剩余挂起项仅「提灯点亮解禁候选」)与「立绘清晰度回退评估」(08「五 · 表现」L146 待裁+08 §7 未决项第 7 行 L210,方向待裁)——素材线两个闸口,**性质不同**:前者=已裁且挂起(本批禁代裁、禁重开),后者=真未裁;**Q1 丙案裁定下两者均不再是样张前置**,本卡反提规格反而是其重启时的输入; -- 「UI 字体补完」(08:157 标待做,06:29-35 归属栏载明须先裁「补不补拉丁专件、要不要上第二个字重」)——**Q4 已裁丙案**:样张按「目标字重效果」示意出图、本批按样张补真件;「补不补拉丁专件、上不上第二字重」仍归该条自身未裁点,本卡不代裁(见 §7)。 - -### 0.5 样张批继承的既有待裁义务清单(v1.1 新增——全库检索「待样张批冻结/终审/追认/重议」所得) - -**为什么要这一节**:这些事项不是本卡新造的议题,而是各权威文档**明文把裁决动作挂名到「样张批」**的既有欠账——本卡若不受理,就会在「本批做完了」的读数里静默丢掉十件在册义务;若受理,就必须逐项写清「本批冻结/本批不冻结并说明去向」。**受理方式已随 §7 已裁 Q 项改实(v1.2)**:Q1 丙案——H1–H4 的尺寸欠账由「目标规格清单随样张冻结产出」承接;Q2 甲案——本批只判战斗屏;Q3 乙案——H10 之氛围统一结论在实拍图上呈报;Q6 乙案——两闸分跑。**本表对 H 项内容本身仍不预设结论——逐项最终处置(冻结/不冻结+去向批次)按契约 7 落 T3 冻结记录。** - -| # | 欠账项 | 现行状态与出处 | 与本批的关系 | -|---|---|---|---| -| H1 | 19 枚格面奖励徽章**尺寸**(源 40×40;显示 20/40 双档候选) | art-bible §4.6.2 L309「尺寸候选,样张批冻结」 | 整屏样张要放徽章位即触到该尺寸;未放则显式写「本批不冻结,归贴图批」 | -| H2 | 地形变异纹带族**尺寸**(源 64×64 无缝) | art-bible §4.6.3 L328 同口径 | 同上 | -| H3 | B 区舞台背景 `stage_bg.png` **尺寸**(源 1280×270 基准一张) | art-bible §6.1 L364 同口径;§6.1 L361 地窟看台「规格与终值归整屏样张闸冻结」 | 战斗屏样张的 B 区背景件,正面触到 | -| H4 | 护甲类型(light/ward/heavy)视觉区分方案 | art-bible §4.6.4 L335/§5 存根 L350/[character-design.md](../design/art/character-design.md) §5.3 L27「候选方案,样张批冻结」 | 站桩名行/徽标呈现触到;是否本批裁归用户 | -| H5 | 类型微光**组间互辨抽测**义务(含明度档) | 06:431 裁决④「样张批保留组间互辨抽测义务」;§4.2 L218 组间明度档值从未定义 | **与徽章卡 Q2 直接耦合**(见 §7.5 跨卡 D1) | -| H6 | 面板间距/内边距 4px 步进档**终值** | art-bible §7.3 L426「终值归样张批」 | 整屏构图量取即触到 | -| H7 | 棋盘小人源档与格边长占比摩擦终值(36px 板 × 32px 源超 ≤0.75 红线) | art-bible §8.2 L494、v1.9 待决注记 L581 | 格边长三方取值不一致另条在册(06「棋盘格边长三方取值不一致」),本批禁代裁,只登记 | -| H8 | 镜像与「旗面恒画右」纪律相容口径(代拟待追认) | art-bible §8.4 L508「代拟口径,样张批追认」 | 冻结记录逐条写明已追认/未追认 | -| H9 | 钩爪恐魔「宽≥高」豁免(待样张批终审) | character-design L71 | 站桩样张含该敌种即触到终审位 | -| H10 | 记忆态/明度带随深度微移/提灯点亮形制/滑轨两段可辨 等 provisional 读数 | art-bible §6.5 L392(「样张/实机自检锚」)、§2.7 L129(「候选,整屏样张冻结」)、§7.6(二) L456(滑轨归样张目检)、character-design L45(提灯点亮形制归整屏样张批重议) | 整屏样张即其判定物;本批须逐项在冻结记录写「裁了/留哪一批」 | -| H11 | 「圣经口号型条款机检化批」前置整备(约 55% 条款属口号型无可机检值,分章推进) | 06:513-515「随整屏样张闸前整备批启动」(历史梳理稿 I15 行同义在册,该稿已按吸收即死退役,沿革查 git 提交史) | 跨卡次序已改实(§7.5 D3 已裁三卡串行序位=徽章→样张→观感,本卡位第 2);本整备批是否纳入本批开工门仍属排期题,归用户呈报,本卡不自裁 | - -### 0.6 已裁项核收表(v1.1 新增——铁律「禁再问已裁项」的检索留档) - -下列事项**已被用户明文裁决**,本卡全部 Q 项一律**禁止重开**;表中同时是本卡相关表述的执法依据。 - -| 事项 | 现行裁决 | 出处 | -|---|---|---| -| 格子样张 v2 四冻结(砖面/色板/动画/数字形制) | v2 冻结(2026-09-28)→ v3.0 解冻①④ → **v3 重冻生效(2026-09-30,机检 17/17)**;②色板③动画全程未动 | art-bible §1.4 L66/L68、v3.2 L562 | -| 类型微光五组**色相** | **样张 v2 定稿(2026-09-28)**;HUD框架:140 同记「五组色相经样张 v2 冻结」——06:431「候选值,样张批冻结」系滞后措辞,**冻结为真实现状**;本批不重裁色相值 | art-bible §4.2 L218;[HUD框架](../design/gdd/systems/表现与支撑/HUD框架.md)「未开格类型微光」节实装状态行;详见 §7.5 D1 | -| 微光组粒度 | v3.12 批已裁:组间五色相、组内不细分 | art-bible v3.12 L551、§4.2 L218 | -| 未开格类型微光作用圈 | 英雄周围 8 格(非全板常显),2026-09-30 用户裁;不随灯光区扩 | 06:431 口径校正;HUD框架同节;art-bible §6.5 L390 两圈分立注 | -| 站桩形态(卡片式退役) | 2026-09-20 用户裁决全站桩式,对照义务解除 | [战斗表现](../design/gdd/systems/战斗循环/战斗表现.md):77/:83/:93;[battle.md](../design/gdd/ux/battle.md):395/:437 | -| 站桩排版 | 2026-10-06 用户拍板方案二(旧「盒顶固定 y+盒内居中」点名否决退役) | art-bible §8.2 L496 | -| 八敌立绘源档 | 2026-10-06 逐键定档批完成(36–94,显示 ×2);「48/64/96 三档候选」一并完成 | art-bible §8.2 L495、v3.7 L556 | -| 资产升档重产 | 已裁案乙(本迭代不升档)+2026-10-04 令暂不做+2026-10-06 优先级再降;重启=用户点名 | 06:465-471 | -| 1920 档缩放策略/动画帧数规格/资产升档与否(迭代 9「随闸三裁决」) | **三件全部已裁**:1920=案甲全局等比(v3.2);帧数=样张 v2 ③冻结(§8.4 L505-507);升档=案乙 Alpha 后(06 已裁) | art-bible §8.2 L490、v3.2 L562、§8.4 L505;git 提交 053baeee(呈报单原文件已按吸收即死纪律删除,见 P4 附注);本卡禁以「随样张裁」名义重列 | -| 氛围层三件保平滑 | 2026-10-13 grilling Q5 已裁(统一与否另裁,见 P8) | art-bible §7.6(三) L465、§8.2 L486 | -| 封印色 | 封印黑 #000000(2026-09-28 用户拍板;紫→黑因色相冲突) | art-bible §4.1 L196、v2.11 L568 | -| 角嵌/微光格附加图形 | 2026-09-28 用户裁「微光格只留微光」,角嵌彻底退役 | art-bible v2.12 L569、§3.2 L168 | -| 关卡屏视觉终稿 | 样张 v1 机检 11/11 冻结(2026-09-28)+M-2 出口闸真人目检八项过 | art-bible v2.14 L565;level-map.md:3/:222;roadmap.md:21 | -| 按钮五态/全局 Nearest/主题资源 | 迭代 25/26 入库并经用户 2026-10-14 裁「全部按呈报写入文档」 | art-bible §7.6、v3.14 L549;08:117-118/:155 | - ---- - -## 1. 目标与完成定义 - -**目标(一句话)**:把「判定界面美术算不算过关的那把尺子」补齐并按它跑通战斗屏——**尺子 = art-bible §1.4 整屏闸四项 + [战斗表现](../design/gdd/systems/战斗循环/战斗表现.md)「一屏样张的验收标准」节五项(:79-93)构成的断言集,两套口径的合体方式已由 Q6 裁定乙案——两闸分跑(见 §7);跑通 = 方向稿目检先行 → 精制 → 机检 → 用户终审 → 冻结记录写入文档**。 - -**相对现状,新增了什么(批次级;v1.1 按 P1 读数重写第 1/4 条)**: -1. 现状:**格子闸执行并冻结过;整屏闸的四项机检代码也已存在并对实机渲染帧跑过**(迭代 9 T8,shot_checker B/C/D+F),但**从未产出「整屏样张判定物」、从未立整屏冻结记录、③焦点预算从未判定**——本批新增=样张判定物本体+整屏冻结记录首条(战斗屏;四屏全套随 Q2 甲案余三屏登记 06 排队行归后续批)+③焦点项的目检判定+取样点位按屏扩面(T2); -2. 现状产图工序 = 脚本一次合成单路线成品直接呈报——本批新增**方向稿先行**硬工序(本批战斗屏先出 2–3 张低成本方向稿供用户选划,方向判完才准精制,T1;后续各屏各自立此闸); -3. 现状渲染手段默认锁死「PIL 程序化代码绘制」——本批把代码绘制 / shader / 新素材三路线的选型呈用户裁决(Q3),**已裁乙为主、预设甲案退路(2026-10-16 用户令)**:Godot 引擎实拍+shader 为目标路线,开工先半天试验件坐实,不过闸即退甲案纯代码管线(退路预裁定,见 §7); -4. 现状两套标准并存未合体(§1.4 整屏四项 / 战斗表现专项五项)——本批合成一张逐项比对表(T2),合体方式**已由 Q6 裁定乙案:两闸分跑**(专项第 5 项只产裁决记录)。 - -**防产出重蹈不满意(批次级,三道防线)**: -- **防线一(工序)**:否决成本前移——方向稿阶段否决只损失半天,精制阶段否决按战斗表现判定回退条款只回炉不过项(继承既有口径「已过项结果保留」,战斗表现:93);禁止跳过方向稿直接出精制版(V1:无目检记录即开工精制 = 违红线)。 -- **防线二(判据)**:P6 四条否决原因(①显示太丑/②封印色冲突/③立体感不够/④微光格只留微光)+P7 两例(站桩排版空洞、立绘像素粒度)逐条映射为整屏断言集内的具名项;断言不过不出图(「生成即验,不过闸不出图」纪律沿 v3 脚本原文 L12)。 -- **防线三(终审)**:气质终审权恒归用户目检,机检全绿不等于过闸。先例:v3 冻结时气质终审走的是「验收豁免」(art-bible L68,2026-09-29 用户验收豁免,状态记录 281),本批**不申请豁免**——此为**本批自我从严的执行纪律,不是对用户裁决的改动**;用户若主动以豁免方式判定本批完成,从其裁决。 - -**完成定义**(全部满足才算本批完成): -1. 战斗屏样张过闸:方向稿用户选划记录在案 + **按 Q6 已裁乙案两闸分跑、两闸全绿**(含 ③焦点预算的目检判定记录;专项第 5 项只产裁决记录不产过/不过) + 用户终审「过」记录; -2. 冻结记录**成文**(内容 = art-bible §1.4 新增整屏样张冻结记录段全文——设计权威文档零直改,**仅过闸后成文**):同段逐条写明「本样张冻结了什么、没冻结什么」,并对 §0.5 的 H1–H11 **逐项给出处置**(本批冻结/本批不冻结并写明去向批次),禁留空;**同段另须产出两件交付物:① 目标规格清单(Q1 已裁丙案:尺寸档/色板/明度档逐件成文,反向给素材重产批提要求,承接 H1–H4 尺寸欠账);② 徽章卡 Q2 甲案 provisional 明度档之复核转正记录(H5 组间明度档复核+组间互辨抽测,复核转正义务按 §7.5 D1 落本卡冻结件,为本卡交付义务)**——全文随 `reports/iter30-反哺点-<完成日>.md` 对应条目交付(「改成什么」栏即全文),「写入 art-bible §1.4」列反哺点,落文归文档批; -3. 状态回写义务列反哺点(判据语义不变;**条款在 art-bible §7.1 L411**;08 侧的行是「五 · 表现」表「战斗一屏样张」行 L158,08 无 §7.1 小节——v1.0 此处指路写错已订正): - - 反哺点条目:08「五 · 表现」表「战斗一屏样张(界面美术的终稿闸)」行:待做 → 在役; - - 反哺点条目:[art-status-checklist](../design/art/art-status-checklist.md)「战斗一屏样张」行:⬜ → ✅; - - **边界条款**(写进反哺点条目本身):样张过闸只是**判据生效**,不是各屏占位素材的转正条件——看板其余 ◐ 行(营地件、格面徽章、演出类等)仍须各自素材交付后才可改 ✅,禁止把「样张过闸」扩解为「全部占位转在役」;样张同时按**已裁 Q1 丙案**冻结目标规格清单、反向给素材重产批提规格要求(尺寸档/色板/明度档逐件成文),转正仍逐件走闸; - - **P11 定性连带**(写进反哺点条目本身):本批属闸后补跑,回写禁写成「落码前定方向」口径,须如实注记「屏级落码已先行四轮,本样张为对已在役形态的目标图判定与冻结」; -4. **Q2 已裁甲案**:本批仅出战斗屏;关卡/菜单/营地三屏的 **06 排队行登记内容属本批交付义务**(排队行措辞含 P10 注记与营地屏「待目标规格清单反提要求」注记),随反哺点清单交付、落文归文档批;关卡屏既有 v1 冻结样张保留为注记(**其后续批是「对既有 v1 冻结样张补判整屏四项」,不是从零出图**,P10); -5. §8 同步面清单每条在反哺点清单有落点;权威文档与 06/08/看板零直改(v3 口径)。 - ---- - -## 2. 范围边界 - -**做**:战斗屏样张全流程(方向稿→精制→双口径机检→终审→冻结);四屏排程落地按 **Q2 已裁甲案**(本批仅战斗屏+余三屏 06 排队行登记内容,随反哺点清单交付);整屏断言集的**承载与扩面**——**优先复用 `tools/shot_checker.py`(已有 B/C/D/F)+ `game/smoke/shot_probe.gd` 的 shot_meta.json 坐标源**,缺口(③焦点判定、逐点位覆盖、色数上限计数)才新建,禁另起一套并行判据;§0.5 H1–H11 继承义务的**逐项受理与处置登记**(冻结或写明去向,不自裁内容);氛围层两派统一裁决的**裁决与登记**(**Q3 已裁乙为主**:统一结论在引擎实拍图上呈报、落 T3 裁决记录,写入文档列反哺点,落码归后续呈现批);P3 看板与 06:41 两处旧锚订正、P4 死指涉处置(**Q5 已裁甲案**:改指在盘最近稿 v31/v32/v33-draft 之一并注「指代稿」,具体指哪份 T0 实查盘面后定)+ 06:611 行号读数自身订正、战斗表现内容清单「四区」旧措辞订正——以上文档订正一律以反哺点条目交付(写清文件/节/改成什么/依据),零直改。 - -**不做**(明示去向): -- **不重产任何正式素材**——终稿素材出图归 UI 贴图重构批 / 资产升档批各自立项; -- **不改游戏运行时渲染代码**——样张是判定物不是实现物;**Q3 已裁乙案(shader/实拍路线)**,样张侧 shader 试验件与实拍管线只进样张管线,游戏侧落码另批; -- **不执行格子闸重跑**——格底明度档、数字承载面已随 v3 冻结(art-bible §1.4 L68),整屏样张直接在其上合成; -- **不重裁 §0.6 表内任何已裁项**——尤其微光五组色相(v2 已定稿)、1920 档策略(案甲)、动画帧数(v2 ③冻结)、资产升档(案乙+挂起)、站桩形态与排版(2026-09-20/2026-10-06 两裁); -- **不代裁 08 未决项**——「站桩帧动画进不进 Alpha」(08 §7 第 5 行 L208)、「素材升档重产进不进 Alpha」(第 6 行 L209)、「立绘清晰度回退评估」(第 7 行 L210)三行归各自条,本卡只登记连带,禁以「样张过闸时顺带」名义吃掉(v1.0 把站桩帧动画写成「Beta/后批事项」属定性失实,已订正:它是 08 在册待裁,不是已排 Beta); -- **不动玩法规则与数值**——纯呈现层判定批,MC 零跑(零数值零行为); -- 键盘输入/手柄(08:191 已明列「六 · Alpha 不含」,排 Beta)不涉。 - ---- - -## 3. 任务分解 - -> 估时按 Claude 工作日口径;每卡自带两栏:**相对现状新增什么 / 怎么防重蹈不满意**。**Q1–Q6 已全部裁决(2026-10-16 用户令,见 §7),开工门 U0(用户 `/iter` 发令)后即可按任务序开工;T0 事实坐实段零路线依赖,可先行**。 - -### T0 事实坐实与旧账处置(≈0.5d) - -- 实跑现行 [render_sample_sheet_v3.py](../tools/render_sample_sheet_v3.py) 与 `tools/render_gate.sh`(worktree 内可直接跑,见 P5 两级回退+自动建目录;跑前须防**覆盖在盘产物与机检报告**——OUT_PNG/OUT_REPORT 是硬编码旧文件名 L62-63,开工日一律改出到临时区或加日期后缀,禁写回 `sample-batch-v3-final-2026-09-30.png` 与 `sample-v3-final-机检报告-2026-09-30.md`),确认管线今天仍可出图、A1–A6+F1–F7 全绿基线读数冻结进开工记录(A4 尺寸基线硬等在盘实测成立:立绘 46×48、棋盘小人 32×32); -- P4 死指涉按 **Q5 已裁甲案**处置:T0 实查盘面**定稿具体指哪份代稿**(v31/v32/v33-draft 择一,该实查拍板为本批动作);其落文动作——art-bible:68/:562 与看板:13 三处死指涉改指代稿并注「指代稿」、同族死指涉(§8.2 L490 呈报单死路径)按同案口径一并处置、P3 两处旧锚(art-status-checklist:14 与 06:41 的 §5.1 → 正确锚 art-bible §1.4/§7.2 或 character-design)订正、06:611 行号读数(68/527 → 68/562)订正、战斗表现:83/:116「四区」→「三区 B/C/D」措辞订正(事实源 battle.md:126/:184)——逐条列进 `reports/iter30-反哺点-<完成日>.md`(v3 口径零直改,归文档批落文);新冻结记录按 art-bible §8.3 描述性出处纪律成文; -- §0.5 H1–H11 继承义务清单**逐条复核是否仍然在册**(漂移即订正本表);Q 项已全部裁决(§7),不再随 Q 呈报,清单逐项处置落 T3 冻结记录(契约 7); -- 复核本卡 §0 全部行号与事实,漂移即订正卡片。 -- **新增**:开工日可跑性证据+现有机检面读数基线(现状:shot_checker 周期在跑,样张脚本自 2026-09-30 后无跑动记录)。**防不满意**:先验证旧管线还活着、先量出现有机检代码到底判到哪一项,再决定它在新工序里的角色——避免「新工序设计了,旧工具已哑火」或「重复造一套已存在的判据」两种空转。 - -### T1 方向稿(战斗屏 2–3 张,目检先行)(≈1.5–2d 含 Q3 乙案试验件前闸 0.5d) - -- **Q3 乙案前闸(开工第一个动作,半天)**:Godot 引擎实拍+shader 试验件坐实发光类特效能力边界(光带/泛光/呼吸感)——过闸即走实拍目标路线;**试验件不过闸即按 §7 Q3 预设退路退甲案纯代码管线重出(退路预裁定已写入,不回炉问用户,仅留痕)**; -- 战斗屏方向稿 2–3 张:内容骨架按 [battle.md](../design/gdd/ux/battle.md) 现行 B/C/D 三区布局(:126/:184;**战斗表现:83/:116 仍写「四区」系旧措辞,T0 订正**)与 [战斗表现](../design/gdd/systems/战斗循环/战斗表现.md) 一屏样张内容清单(:83——站桩单版〔卡片式已 2026-09-20 裁退,§0.6〕、三语境剪影同图、受击/退场/高光三组动画关键帧条、敌层遮挡对照组),**气质方向分岔**(Q3 已裁乙为主:A 引擎实拍目标形态〔主线〕/ B 实拍+氛围层统一后形态(两派差异在实拍图上直接可见,统一结论呈报落 T3)/ C 代码绘制甲案基线对照张〔试验件不过闸时 C 升主线〕); -- 方向稿张数与气质分岔在 2–3 内自定(2026-10-16 用户令已把三卡各 Q 项全数裁定,方向稿层无待裁项遗留); -- 方向稿允许低成本形态(构图级即可,细节参数不必全冻结),每张附「本方向解决了哪条否决先例」标注(P6/P7 逐条); -- **用户选划 = 人闸**:判完方向才准进 T2;选划记录(哪张、为什么、否决了哪张)登记开工单。 -- **新增**:现状无此工序(v1–v3 均为单路线成品一次呈报)。**防不满意**:把「不满意」拦在最便宜的阶段;多路线并呈使用户从「验收者」变「选择者」,气质分歧在方向稿层解决而不是精制品层返工。 - -### T2 战斗屏精制版 + 双口径断言集(≈2–2.5d,含实拍静态定格工序新建:shot_probe 现出「现状图」,目标构图定格工序为本批新建——§7 Q3 乙案真实成本) - -- 按选划方向精制战斗屏 1280×800 整屏样张(1:1 实比); -- 断言集扩展(**先复用后新建**:`tools/shot_checker.py` 的 B/C/D/F 段已承载整屏 ①②④,`game/smoke/shot_probe.gd` 已产 shot_meta.json 坐标源;本批缺口=①的逐点位覆盖(现行 B 段只判 meta 登记的已知文字框三处,禁把「三处」报成「全部文字」)、②的非战斗屏取样(现行 C 段只算战斗屏 C 区/棋盘/舞台三点——**Q2 已裁甲案,本批不动非战斗屏,取样面仅扩战斗屏逐点位**)、③焦点预算(明文归人闸,**禁伪装成机检**)、色板 48 色上限计数(现行 A1a 是「对表圣经冻结色值+禁入带零命中」,**不是 48 色计数**;全仓无 48 色工具,`tools/` 实查零命中,须本批新建,且与 art-bible §8.3 计划的入包色板检查器分工不同——本批只做全图色数计数,不建入包闸);落点扩旧脚本 vs 建新脚本按工程就近原则批内自定): - - **整屏四项**(art-bible §1.4 L64 闸条款,与 §7.2 L416 同源):①全部文字(含菜单/说明/tooltip/按钮)对直接背景 WCAG ≥4.5:1,大字〔≥18px 或加粗档〕底线 3:1、目标 4.5:1;②明度三档带成立(信息面层 > 世界中层 > 世界底层,层间灰度可分);③整屏焦点预算(§3.4 首焦唯一,无第二焦点竞争);④文字禁直接压纹理底(须垫容器或罩层); - - **A1–A6 口径上屏**(脚本 L21-26+L925-1031 现行义,**逐项按实义引,禁改名义**):A1 色板对表冻结色值+禁入带 300°–345° 全图扫描、**A2 拼缝周界闭合(墙↔地墨线带亮度)**、A3/A3b 图底分离 Δ≥30(L23 头注的 Δ≥55 与 L1157 的「std ≥50.9」是旧文本,现行以圣经 §1.4 L68 定值为准)、A4 混排相融(语义色 == ui_kit 常量+在库原件可载+**尺寸基线硬等 立绘 46×48/小人源 32×32**)、A5 画布四缘净空、A6 观感密度梯度均值 ≥4.70; - - **战斗屏专项五项**([战斗表现](../design/gdd/systems/战斗循环/战斗表现.md):85-93:棋盘区零打扰/剪影三语境灰度可辨/三组动画关键帧可读/双舞台战斗空间/敌层插入位置对照组可裁)——与整屏四项的**合体方式已裁乙案:两闸分跑**(专项闸与整屏闸各跑各退,:93 已成文);battle.md:152 另载一条挂在样张上的验收项「徽章不进数字区」,一并入表; - - **H5 复核项(v1.2 新增,承接 §7.5 D1 已裁义务)**:徽章卡 Q2 甲案 provisional 明度档的复核转正+组间互辨抽测(06:431 裁决④保留给样张批的义务),结论随 T3 终审一并呈报、写入冻结记录; -- 生成即验,不过闸不出图(沿用 v3 脚本纪律原文)。 -- **新增**:整屏样张判定物本体+③焦点项的判定+逐点位取样覆盖(跨屏取样随 Q2 甲案归后续批)(v1.0 所称「该四项只存在于条款文字、无对应代码」经 v1.1 实查证伪,见 P1)。**防不满意**:机检只拦「可量化的丑」(对比度、抢焦、色板越限),拦不住的部分强制留给 T3 目检——机检绿不豁免终审。 - -### T3 气质终审(用户目检,闸形 A)(≈0.5d 含往返) - -- 精制版 + 断言报告一并呈用户终审;「过」→ 冻结;「不过」→ 按战斗表现判定回退条款分面回炉(演出/构图面回 T1 或 T2 对应项,已过项保留); -- 过闸同时产出三笔裁决记录:①敌人层绘制优先级插入位置(战斗表现:75 登记原句「随美术测试一并裁决,不在本文提前定」保留,清偿时点经 Q6 裁定随本样张一并——T3 即其清偿点);②氛围层两派统一结论(Q3 已裁乙为主:在实拍图上呈报;若方向稿层未完成,此层完成即为最迟期限);③徽章明度档 provisional 复核转正结论(H5,承接 §7.5 D1 已裁义务)。**三笔记录本体写进 `reports/`(实现报告+追认单),其文档落位(战斗表现:75 登记、art-bible §7.6(三) 改写、冻结记录段)列反哺点**。 -- **新增**:明确不申请验收豁免(v3 先例有豁免,本批关闭该通道)。**防不满意**:终审语义 = 用户说不过就是不过,无「机检全绿应视为过」的反向论证空间。 - -### T4 后续三屏排程(Q2 已裁甲案:本卡退役为登记行)(≈0d,06 排队行登记动作并入 T5) - -- **执行 Q2 甲案裁定案**:本批仅出战斗屏;关卡/菜单/营地三屏的 **06 排队行登记内容属本批交付义务**(动作列入同步面 T5/§8,随反哺点清单交付、落文归文档批); -- 关卡屏既有件保留为注记(P10):v1 冻结样张已在盘(2026-09-28,机检 11/11),排队行措辞须注明「其后续批=对既有 v1 冻结样张按整屏四项补判,非从零出图」; -- 营地屏连带改实:Q1 已裁丙案(非乙案),「等贴图批终稿」串行分支不发生;营地排队行注明「待本卡目标规格清单反提要求,终稿后再出样」; -- **跨卡次序改实(§7.5 D2/D3)**:三卡串行序位已随 2026-10-16 用户令裁定=徽章→样张→观感,本卡位第 2——观感卡排本卡之后,其 L2/L3 落地对本卡冻结读数的复核归该卡义务,本批不为其预留参数域、不被其阻塞。 -- **新增**:现状四屏闸只立了条款、机检面跑过实机帧,但四屏**样张**零张(唯关卡屏有立闸前的 v1 一张)。**防不满意**:逐屏目检逐屏冻结,禁止「一套断言四处套用」把首屏过闸经验未经验证直接外推(本批只判战斗屏,余屏按排队行各自立闸)。 - -### T5 产出物落位卡(≈0.5d,末卡——三份 reports/ 文件写齐才算收口) - -轻闸全绿后、合并前,把本批三份 `reports/` 产出物写齐(权威文档与 06/08/看板零直改;`active.md` 状态记录照常更新): - -1. `reports/iter30-实现报告-<完成日>.md`——各卡状态+**实机目检总清单**(T3 终审轮次记录、V1 方向稿三段记录表〔方向稿→选划→精制〕随附)+遗留读数义务(本批冻结基线读数供观感卡对表,§7.5 D2)+变异验证记录表(新建断言段的注入实验记录); -2. `reports/iter30-代拍板追认单-<完成日>.md`——冻结记录段系列编号口径等白名单内代拍项逐条留痕; -3. `reports/iter30-反哺点-<完成日>.md`——§8 同步面每条一落点(哪个文件哪一节、写成什么、依据),其中: - - **art-bible §1.4 冻结记录段全文**(新段,沿 v2/v3 记录格式;**段内系列编号口径属批内代拍**——格子样张序列已用到 v3,整屏样张是否续称 v4 还是自成一列〔关卡屏已用「样张 v1」名〕在冻结记录里一次说清,禁两处各按一种叫法);§0.5 H1–H11 逐项处置写入该段;**随段两件交付物(v1.2 新增):目标规格清单(Q1 丙案,尺寸档/色板/明度档逐件成文)+徽章明度档复核转正记录(H5/§7.5 D1)**——三件全文即反哺点条目的「写成什么」栏; - - art-bible §7.6(三) 氛围层并存条改写为已裁决口径(经 T3 记录); - - [art-status-checklist](../design/art/art-status-checklist.md) 战斗屏行 ✅+余三屏行刷新为「入 06 排队」态;08「五 · 表现」行待做→在役;06 对应条注销(去向登记当批状态记录);**06 为关卡/菜单/营地三屏新立排队行(Q2 甲案交付义务;措辞含 P10 注记「后续批=对既有 v1 冻结样张补判整屏四项,非从零出图」与营地屏「待目标规格清单反提要求」注记)**; - - roadmap 迭代 30 行状态刷新(编入笔已在案,只刷状态);完成定义第 3 条「转正边界条款」与 P11 定性连带注记随 08 行条目交付(防「样张过闸」被误读为占位素材全体转正)。 -- **防不满意**:冻结记录段全文逐条写明「本样张冻结了什么、没冻结什么」,后续批对表施工,杜绝各自解释。 - -**估时合计 ≈5–6d(v1.2 按已裁口径重算)**:Q2 甲案 → T4 退役为登记行(0d);Q3 乙案 → 新增试验件 0.5d(T1 前闸)+实拍静态定格工序新建 ≈0.5d(T2 增量)。T0 0.5 + T1 1.5–2(含试验件 0.5)+ T2 2–2.5 + T3 0.5 + T4 0 + T5 0.5 = **下限 5d、上限 6d**;**若试验件不过闸退预设甲案退路,回退 ≈4.5–5.5d**(扣实拍新建增量,已耗 0.5d 试验件保留)。**软盒拆批线改实**:v1.1 的「四屏全推超 7d 拆两批」分支随 Q2 甲案不再发生——本批 5–6d 在 7d 软盒内单批跑完;若实拍路线超支逼近 7d,仍在 T3 末截断(战斗屏已过闸可单独交付见效),余三屏已列 06 排队行无批内拆分需求。 -**估时构成依据(先例出处,v1.1 补、v1.2 沿用)**:整屏四项机检的建造+三裁决呈报=迭代 9 T8 实测 3–4h 量级(.zcode/plans/m3-iter9-loop-plan-2026-09-30.md:65)——故 T2 走「复用+扩面」而非重建,增量只花在实拍定格工序新建;同窗格子样张机检冻结=迭代 9 批 A T1 估 2–3h(同计划书:58);方向稿多轮呈报的先例工时见迭代 26(估 2–2.5d 实际单会话)、迭代 16(估 6.9d 实际单会话)、迭代 13(估 4.8–5.3d)、迭代 29(估 5.5–7d);本批估时主要吃在「方向稿+用户往返目检+实拍管线新建」,roadmap 迭代粒度界定已裁「迭代周期 ≈ 一周左右」(2026-10-11 用户裁定,roadmap.md:101),本批单屏口径恰在一迭代盒内。 -天然切分点:T3 末(战斗屏已过闸可单独交付见效)。 - ---- - -## 4. 验收(逐任务对应,全绿 + 记录齐备才走 T5) - -| # | 需求点 | 测什么 | 落点/判定手段(实存工具,2026-10-16 核) | -|---|---|---|---| -| V1 | 方向稿先行工序 | 每张精制样张有对应「方向稿 + 用户选划记录」在案;无记录直接精制 = 违红线 L3 呈报 | **人闸留痕,无工具可判**(降级为件核:开工单/实现报告附「方向稿 → 选划 → 精制」三段记录表;禁称机检化) | -| V2 | 整屏四项 | ①文字对底 ≥4.5:1 逐点位(大字档 3:1 底线)②三档明度带层间灰度可分 ③首焦唯一 ④无文字裸压纹理 | ①②④=`tools/shot_checker.py` B/C/D 段(+F 段),坐标源 `game/smoke/shot_probe.gd` 产的 shot_meta.json,**须先按屏扩取样点位**;**③=人闸**(shot_checker E 段明文「语义面无法机检」),本批以目检记录判定并留档 | -| V3 | A1–A6 上屏 | A1 色板对表+禁入带全图扫描、A2 拼缝周界闭合、A3b Δ≥30、A4 混排相融(含尺寸基线硬等)、A5 四缘净空、A6 密度 ≥4.70;**另新建 48 色计数**(现行无此工具,art-bible §8.3 入包色板检查器另属他批) | 同上脚本机检段(`render_sample_sheet_v3.py` L925-1031 复用扩展),生成即验 | -| V4 | 战斗屏专项五项 | 按 Q6 已裁乙案**两闸分跑**执行(专项第 5 项只产裁决记录);敌层插入位置随本样张一并清偿,产出裁决记录一条 | 第 1 项借 V2/V3 断言(数字占位区零侵入沿 F5 族);第 2 项三语境灰度可辨**须新建**(可仿 §1.4 验收 2 灰度分类法);第 3/4/5 项=图上元素存在性+判读,**归 T3 目检**;裁决记录(含 H5 徽章明度档复核转正结论)落 T3 | -| V5 | 否决先例映射表 | P6 四条 + P7 两例逐条对到具名断言项(映射底表=脚本 L1156-1160),表格随样张一并归档 | 人工产物,实现报告附件(T2 出表、T3 随终审一并呈) | -| V6 | 用户终审 | 「过」字记录;不过则回炉轮次计数留痕 | T3 人闸(active.md 开工单/状态记录留痕) | -| V7 | 产出物落位 | `reports/` 三份写齐且互一致:反哺点清单 §8 每条有落点(08 行/看板行/06 注销/art-bible 冻结段全文四处对应),边界条款与 §0.5 处置表、06 三屏排队行(Q2 甲案)与目标规格清单(Q1 丙案)内容在册;文档落文与链接/废止词复核归文档批(不进本批域) | 件核:反哺点清单逐条对表 §8;闸面由 `tools/run_all_gates.sh` 按改动域选档承载(唯一闸入口与唯一闸清单,卡内不另列名单) | - -**闸口径**:本批零玩法零数值——MC 零跑;批末重闸 = `tools/run_all_gates.sh` 按本批改动域选档(本批触碰 `tools/` 样张面与断言扩面、零 `game/` 运行时改动 → `--code`)全绿才合并;**样张脚本不入门禁常设闸表**(周期件属性,本批零闸件增删),跑动记录留档。卡内不另列闸件名单(脚本即唯一清单)。 - ---- - -## 5. 设计契约(红线) - -🔴 **契约 1 · 零游戏运行时改动**:本批只产图、只动样张工具面与文档;任何「要改 game/ 代码才能让样张成立」的发现 = L3 停机呈报,改动另批。 -🔴 **契约 2 · 方向稿不可跳**:目检先行是闸形(art-bible §1.4 原文),跳过方向稿直接精制 = 本批最高级违例。 -🔴 **契约 3 · 卡片不代拍路线**:渲染手段、素材输入级别、四屏范围、字重前提——全部以 Q 项呈用户,批内任何任务禁止预设某路线已成立。**v1.2 闭合**:六项已全部经用户令裁定(2026-10-16 用户令:三卡全部待裁项按推荐方案裁决〔用户将裁权授出,由主线会话代拍板留痕〕,见 §7),本契约转为执法面——各卡按已裁口径执行,批内禁止自行升档、改线或另开路线。 -🔴 **契约 4 · 机检不豁免目检**:断言全绿不构成过闸;终审权恒归用户;本批不申请验收豁免。 -🔴 **契约 5 · 权威文档零直改(v1.3 换代)**:art-bible §1.4 冻结段、08、06 等一切文档回写义务一律转为反哺点清单条目——**过闸后成文**(未过闸状态下清单内对应条目只许注记「进行中」),用户会话裁决后归文档批落文;实现批唯一可写目录 = `reports/`(`active.md` 唯一例外)。 -🔴 **契约 6 · 已裁项不可重开(v1.1 新增,用户红线)**:§0.6 核收表所列事项一律禁止以「样张冻结须总览」「再确认一遍」名义重列备选或再出推荐;本批 Q 项若与 §0.6 任一行相撞,以 §0.6 为准,该 Q 项当场收缩或删除并登记删除依据。 -🔴 **契约 7 · 继承义务禁静默丢弃(v1.1 新增)**:§0.5 H1–H11 必须在冻结记录里逐项给「冻结/不冻结+去向批次」;留空即视为本批未完成,禁止以「不在本批范围」一句带过。 - ---- - -## 6. 异常分级 - -- **L1(自救)**:脚本路径/字体回退(素材两级回退失效时改主检出跑)、断言阈值取数笔误、图片命名不合归档纪律、样张产物误写回旧硬编码文件名(T0 已禁)。 -- **L2(记录继续)**:方向稿张数在 2–3 内自选、断言实现落点(扩 shot_checker/旧脚本 vs 建新脚本)、精制版像素级微调不触发重目检的边界(构图级 = 需重目检,参数级 = 免)、冻结记录段的样张系列编号口径(见 T5 代拍注记)、**Q3 试验件不过闸 → 按 §7 预设退路退甲案纯代码管线重出(预裁定已成立,留痕即可,禁回炉问用户)**。 -- **L3(停机呈报)**:T0 实跑发现 v3 管线或 shot_checker 链已不可跑通且修复超出样张面;方向稿全部被否决(触发 Q1 口径复核呈报——Q1 已裁丙案,改动须重新裁决留痕,禁批内自开重裁);发现整屏断言与格子 v3 冻结参数数学冲突(先例:v3.0 时代 Δ≥55 与明度分档带数学冲突退役);**本卡目标规格清单(Q1 已裁丙案)反提后,素材重产批若发生档位换代,触 A4 尺寸基线(立绘 46×48/小人源 32×32 硬等)变更——圣经 §1.4 L68 明文「资产升档批换代须显式解冻重校」,解冻须走 §1.4 修订,禁批内自改,本批样张侧亦禁预先解冻**;(v1.2 修订:原「Q1 裁乙案但前置批逾期未出终稿」等待场景随丙案裁定不发生,条目删除);**§7.5 跨卡前提冲突**(任一后续卡的前提在执行中被否定——三卡串行序位已裁=徽章→样张→观感,本条保留为序内冲突兜底)。 -- **L3 分类结论注(2026-10-17 用户裁 U1 预授权时一并复查,留痕防重复呈报)**:本卡四项 L3 **全部归入「触既有裁决面/超出本批面」类,一律维持停机呈报**——①v3 管线不可跑通且修复超样张面=超出本批面;②方向稿全否=回 Q1 口径复核(Q1 已裁丙案,重裁须用户);③A4 尺寸基线解冻=圣经 §1.4 L68 明文须走修订;④跨卡前提冲突=序位裁定面。本卡无一属于「可自动处置类」,故 U1 预授权对本卡零改动。**两处人闸(T1 方向稿选划/T3 气质终审)同属不可取消项**:契约 2「跳过方向稿=本批最高级违例」、契约 4「机检全绿不构成过闸且本批关闭豁免通道」,取消即拆掉防不满意机制本体。 - ---- - -## 7. 裁决记录(v1.2 改实:本卡 Q1–Q6 全部已裁。裁决来源统一措辞逐条留痕:「2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)」;本节保留选项原文+裁定案+一句理由,v1.1 的「不带推荐案、逐条亲裁」呈报框架随用户授出裁权关闭,备选案文字仅存档供对表) - -> **v1.3 执行口径注(2026-10-17 文档同步闸 v3)**:本节裁定文中「目标规格清单…落 §1 完成定义 2/T5/§8」「三屏登记 06 排队条的动作列入同步面,写入文档时点=批次出口(T5/§8)」等落文类表述,一律执行为「成文内容随 `reports/iter30-反哺点-<完成日>.md` 交付,用户会话裁决后归文档批落文」——裁定内容(做什么)不变,落文方式随 v3 换代。 - -| # | 事项 | 备选案与影响 | -|---|---|---| -| **Q1** | **素材输入级别(本卡核心裁点)**:样张用什么料出? | **甲 · 纯现有占位资产合成**:最快(T1 可直接开跑),零前置依赖;代价 = 量的是占位态的屏——素材重产后样张作废须重跑,且「丑」的一半源头恰是占位素材本身,用户不满可能原样复现。**乙 · 等贴图重构批与素材终稿出件后再出样张**:样张一次到位量真料;代价 = 串行依赖两批(UI 贴图重构批 06:21-27 待办;立绘清晰度回退评估 08 §7 第 7 行待裁——**注意:「资产升档重产」不是未裁方向,而是 2026-09-30 已裁案乙+2026-10-04 令暂不做、重启=用户点名,本案只能等其被点名,**禁止代裁****),周期以周计起步,期间「判定尺子没造出来」状态持续;**连带硬账**:素材换代即触 art-bible §1.4 L68「A4 尺寸基线…资产升档批换代须显式解冻重校」,样张的 A4 硬等断言(立绘 46×48/小人源 32×32)须先解冻(走 §1.4 修订),不是零成本串行。**丙 · 样张即设计目标图**:样张承担定稿目标职能,冻结的规格反向给素材重产批提要求(尺寸档/色板/明度档逐件成文,正对 §0.5 H1–H4 的尺寸欠账);代价 = 要求方向稿本身已接近目标气质,用户对既有程序化气质不满时,方向稿的路线选型(Q3)权重陡增;素材批按样张规格返工的工程量未估,**且本案出的「规格建议单」不改变 08 未决项 6/7 的待裁性质(升档与否、回退高清与否仍归各条用户裁)**。**三案可混合**(如战斗屏走甲/丙、营地屏走乙)——混合粒度亦请一并裁定 **〔已裁:丙——2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)〕裁定案:样张即设计目标图,样张承担定稿目标职能,冻结规格反向给素材重产批提要求。理由:唯丙案直接服务立场前提(因丑而改),且消除对已挂起素材闸口的串行等待。任务面同步(v1.2):① 新增交付物「目标规格清单随样张冻结产出(尺寸档/色板/明度档逐件成文)」,落 §1 完成定义 2/T5/§8;② 「三案可混」语义关闭——战斗屏适用丙案,其余三屏按 Q2 裁定(甲案)不在本批,无混合对象;③ 乙案「A4 尺寸基线须显式解冻重校」连带仅于规格清单引发后续素材档位换代时在另批触发(§6 L3 留兜底)** | -| **Q2** | **四屏范围与次序**:本批做几屏? | 战斗屏第一优先的依据已成文(06:37-43「最高优先级」+ 战斗表现:73「一屏样张是硬前置」+ 看板 ⬜ 现状),不复议;剩余 = 关卡/菜单/营地三屏:**甲 · 本批仅战斗屏**,余三屏 06 立排队行;**乙 · 战斗+营地**(营地是全作最暖屏、贴图债最重,Q1 裁乙案时此组合依赖最重);**丙 · 四屏全本批**(按 v1.1 重算估时 ≈8.5–11d,超 7d 软盒,按 T4 拆分点强制拆两批)。**次序连带(v1.1 补,与 §7.5 D2 同读)**:关卡屏已有立闸前的 v1 冻结样张(P10),若排在本批之后且其 L2/L3 换色/重产落地,本批冻结的明度三档带与观感密度读数即作废须重跑——四屏的先后不是纯排期题,是作废范围题 **〔已裁:甲——2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)〕裁定案:本批仅战斗屏;关卡/菜单/营地三屏登记 06 排队条的动作列入同步面,写入文档时点=批次出口(T5/§8)。理由:单批 5–6d 在迭代盒内跑透一屏一闸,胜过四屏平摊超盒。关卡屏已有 v1 冻结样张(P10)事实保留为注记;乙/丙案及其作废范围连带段仅存档不执行** | -| **Q3** | **渲染手段选型**:样张怎么画出来?(用户已质疑 Godot shader 做特效的能力边界——选项、影响、代价列全,已裁见右栏) | **甲 · 纯代码绘制(PIL,现行管线)**:零新依赖、A1–A6 断言体系现成;已知上限 = v1 四否决原因全部产自该路线,氛围类效果(光带/泛光/呼吸感)只能静态模拟。**乙 · Godot 引擎实拍 + shader**:样张=引擎真实渲染(截屏管线先例 **`game/smoke/shot_probe.gd`+`tools/shot_checker.py`**——v1.0 误写为 `tools/shot_probe.gd`,已按实存路径订正;`tools/render_gate.sh` ①段即为该通路),发光/抖动/去饱和与实机逐位一致,氛围层两派并存(§7.6(三) L465)可在实拍层直接看出统一效果;代价 = 全仓 shader 仅 desaturation.gdshader 一枚先例(P9 实测),发光类特效能力边界未验证,须先半天试验件坐实「能不能」再谈「好不好」,且实机依赖动画与光照时序、静态定格取样工序需新建(shot_probe 现按「真实按钮信号路径驱动+双帧抓视口纹理」出帧,无「目标构图」概念——它出的是现状图,样张要的是目标图,这层差距即本案的真实成本)。**丙 · 新素材合成**(贴图批/远程生图件入样张画布):质感上限最高;代价 = 即 Q1 乙案语义,本选项在 Q1 裁甲/丙时不可用。**丁 · 混合**(底板引擎实拍 + 标注层脚本,或方向稿用甲精制版换乙):灵活;代价 = 两套管线双份维护与断言口径分岔。〔氛围层两派统一(平滑 vs 抖动)随本案一并裁:选了乙,两派差异在实拍图上直接可见,裁决成本最低〕 **〔已裁:乙为主、预设甲案退路——2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)〕裁定案:Godot 引擎实拍+shader 为目标路线;开工先半天试验件坐实发光类特效能力——试验件不过闸即退甲案纯代码管线重出。理由:目标图须与实机渲染同语系,而退路预裁定已写入本栏,失败面不再回炉问用户(留痕即可,见 §6 L2)。连带:氛围层两派统一结论在实拍图上呈报、落 T3 裁决记录;丙案即 Q1 乙案语义,随 Q1 裁丙不可用;估时已按本案重算(§3)** | -| **Q4** | **字重与拉丁专件是否入样张前提**:06:29-35「UI 字体补完」条载明现行单字重、层级只能靠字号档差一个手段(art-bible §7.4 L434 字重纪律定的口径是**字号档差〔相邻层级 ≥1.25×〕+墨色深浅+字重两档**三件齐用)——样张用现行单字重出,还是先补字重再出? | 甲 · 现行单字重出样张:零前置;风险 = 样张冻结的层级观感建立在缺一个手段的基座上,字重补齐后层级重排可能追改样张;**另一处连带读数**:§1.4/§7.2 的大字档判据写作「≥18px **或加粗档**」,现行单字重下「加粗档」这一腿在实机上不存在(FS_TITLE 24/FS_H1 34 只吃字号档,§7.4 L432 六档),故本案直接决定整屏①项能不能按原文全判。乙 · 字体补完先行:样张一次到位;代价 = 又添一条串行前置(字体条本身含「补不补拉丁专件、上不上第二字重」未裁点——该未裁点归字体条 06:33,本 Q 只裁先后次序,禁在本卡代裁)。丙 · 样张按「目标字重效果」示意出图(方向稿级),字体批按样张补真件(即 Q1 丙案语义在字体面的特化) **〔已裁:丙——2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)〕裁定案:样张按「目标字重效果」示意出图,字体补完批按样张补真件——即 Q1 丙案语义在字体面的特化,两案口径一致。理由:样张即目标图口径下层级观感不必建在缺手段的基座上,且零串行前置。「补不补拉丁专件、上不上第二字重」仍归字体条自身裁点(06:33),本卡不代裁;甲/乙案文字仅存档** | -| **Q5** | **旧样张死指涉处置**(06:609-615 在册 P0①,本 Q5 已裁,处置落 T0):art-bible **L68 与 L562**(06 原文写「68/527 行」,527 行现为 §9.1 参考表——**行号读数已过期,T0 连 06 该行一并订正**)与看板 L13 仍引用磁盘已不在盘的 `sample-batch-v3-final-2026-09-30.png`;同系列 v0/v2/v31/v32/v33/v34/v35-draft 在盘。 | 甲 · 死指涉改指在盘最近稿并加注「冻结原件失管,指代稿」;乙 · 判过期——旧引用随本批整屏样张冻结记录一并换代重写;丙 · 随本批重跑后新产物自然替代(不做单独修复动作)。〔登记纪律注:art-bible §8.3 L500 归档纪律本就规定主文档禁引用 artwork/ 散文件路径——无论何案,新冻结记录按「描述性出处」写,不再挂散路径;**同条 P0②(主角棋盘小人未走像素管线,重产未在册)属 06 同条另一未裁事项,本卡禁把 P0② 一并吃掉**〕 **〔已裁:甲——2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)〕裁定案:art-bible 68/562 行与看板 13 行三处死指涉改指在盘最近稿 v31/v32/v33-draft 之一并注「指代稿」,具体指哪份由 T0 实查盘面后定;新冻结记录按 §8.3 描述性出处纪律。理由:指代稿保留判定物演进链可追溯,优于判过期换代重写。P0② 与本裁分离,仍归 06 条;乙/丙案文字仅存档** | -| **Q6** | **双口径断言集合体方式**:整屏四项(art-bible §1.4 L64)与战斗屏专项五项([战斗表现](../design/gdd/systems/战斗循环/战斗表现.md):85-93)合并为一张断言集一次判定,还是两闸分跑(先专项后整屏,各自回退语义不同——专项第 5 项只产裁决记录不产过/不过,:93 已成文)? | 甲 · 并集单闸:一次出图一次判定,报告最简;乙 · 两闸分跑:与两文档各自 owner 语义对齐,回退定位更准;代价 = 双份跑批记录。**注(v1.1):本案只裁「两套既有口径怎么合体」,不重裁两套口径本身的内容——四项与五项均是既有条款。** 另附裁:敌层插入位置裁决义务是否随本样张一并清偿(战斗表现:75 登记「随美术测试一并裁决,不在本文提前定」——该义务本就挂在本样张上,本 Q 只裁清偿时点,不裁是否要做) **〔已裁:乙——2026-10-16 用户令:三卡全部待裁项按推荐方案裁决(用户将裁权授出,由主线会话代拍板留痕)〕裁定案:整屏四项与战斗表现专项五项两闸分跑,各自回退语义独立;专项第 5 项(敌层插入位置对照组可裁)只产裁决记录、不产过/不过。理由:两口径各有 owner 文档,分闸回退定位更准。敌层绘制优先级插入位置「随本样张一并清偿」的原句保留(战斗表现:75),清偿点=T3;甲案文字仅存档** | - -**开工门(v1.2 改实)**:Q1–Q6 已全部裁决(2026-10-16 用户令:三卡全部待裁项按推荐方案裁决〔用户将裁权授出,由主线会话代拍板留痕〕;v1.1 检索结论——六项当时均未被既有条款裁过、且关闭三处隐性重问(①「微光五组色相是否重冻」归 §0.6/徽章卡 Q2,②「1920 档/帧数规格/资产升档」随闸三裁决已闭,③「敌层插入位置要不要裁」已登记为样张义务)——保留为本次裁决的对表依据)。U0 剩余条件 = 用户 `/iter` 发令。Q3 已裁乙为主:半天试验件置于 T1 最前作前闸,试验件不过闸即按 §7 预设退路退甲案,**不再回炉请裁**(v1.1 原文「复核亦归用户裁」随退路预裁定关闭)。T0 事实坐实段(含 Q5 指代稿的实查拍板)凭本卡即可先行(零路线依赖)。**排期状态**:本卡已编入迭代 30(2026-10-16 用户令,[roadmap](../roadmap.md) 编入行已在案、状态刷新列反哺点);迭代 29 已于 2026-10-16 合入 master(fff4f120,roadmap.md:88 状态=✅ 已入库,见 §7.5 D4),「迭代 29 完成后开工」的前置已满足,但仍不构成排期承诺(见 §0)。 - -### 7.5 跨卡依赖(v1.1 新增——三卡次序耦合;v1.2 改实:三卡已编入迭代 30,串行序位已随 2026-10-16 用户令裁定=徽章→样张→观感,禁各自假设对方状态) - -| # | 耦合点 | 谁的前提 | 次序与理由 | -|---|---|---|---| -| D1 | **类型微光色值与明度档的冻结口径** | 徽章卡(迭代 30 卡①,已入库合并 7ffd1dc0,卡片已退役)Q2 与其 S6 行 | **已改实(2026-10-16 用户令:三卡全部待裁项按推荐方案裁决〔用户将裁权授出,由主线会话代拍板留痕〕——徽章卡 Q2 已裁甲案:明度档取 provisional 值)**:「徽章卡 Q2 先裁」义务随其裁定关闭;**其复核转正义务落本卡样张冻结件**——本卡 T2 新增 H5 组间明度档复核+组间互辨抽测、T3 呈转正结论、写入完成定义第 2 条交付义务(见 §1/§3)。事实核对保留为对表依据:五组**色相**确已随样张 v2 定稿(art-bible §4.2 L218「样张 v2 定稿(2026-09-28)」+HUD框架:140 同记——「样张 v2 已冻结」与 08「战斗一屏样张=待做」并不矛盾:前者是**格子样张**序列(§1.4 L66/L68),后者是**整屏样张**序列(§1.4 L64),两条序列各有其闸),本卡不承接色相重冻义务;「徽章卡若裁乙(等本卡总闸)」分支不再发生。**本卡禁把色相值列进 Q 项**(已按契约 6 关闭) | -| D2 | **棋盘瓦片重产 vs 换色**(素材线同一入口) | [二三关棋盘观感卡](需求卡片-二三关棋盘观感批-2026-10-16.md) Q2(甲 recolor 换色 / 乙 远程生图重产) | **已改实(2026-10-16 用户令)**:序位裁定=徽章→样张→观感、本卡位第 2——观感卡排本卡之后,「同窗呈报两案代价」义务关闭;该卡 L2/L3 落地对本卡整屏②明度三档带与 A6 观感密度读数的复核,属该卡开工时按其 V2(A6 ≥4.70 保持)自跑的复验项,本卡冻结记录注明本样张基线读数供其对表即可;本卡 Q1 已裁丙案(非乙案),与其 Q2 各案不再有工期串行耦合 | -| D3 | **触碰面重叠与合入次序** | 三张卡共同 | 三卡都写 06/08/07/art-bible 的 git 提交史/roadmap/active.md,徽章卡另动 `presentation/views`+冒烟,本卡另动 `tools/` 样张面。按 roadmap.md:93「单迭代串行」与 roadmap.md:101「一迭代 = 一次合并登记」⇒ 三卡禁止三线并行。**已改实(2026-10-16 用户令):三卡串行序位=徽章→样张→观感,本卡位第 2**;「一次合并、批内分波」组织方式随序位裁定确定,v1.1「不预设结论、归用户排期令」呈报框架关闭。**v1.3 注**:三卡文档直写义务已按文档同步闸 v3 全部转反哺点(落 `reports/`),汇聚文件重叠消解,但串行序位裁定不失效——golden 基线与冻结内容的先后依赖仍在(D1/D2) | -| D4 | **门禁语义改动的先后** | 迭代 29 测试分层与门禁语义修正批 | **已结案(2026-10-16 合入 master,合并提交 fff4f120;roadmap.md:88 状态=✅ 已入库)**:该批改的 `tools/run_all_gates.sh`/探针判定/退出码权威语义(其契约 2「三硬闸不可绕过」)已在现行闸内生效,本卡 V7 的闸口径直接按当期语义执行(本批 → `--code`)并按其当期读数采基线;原「该批先行/本卡先行」两种分支随之消解,本卡仍不改写任何判定脚本。(原两分支表述留档供沿革查 git log) | -| D5 | **08 表现表同一表的多行改写** | 三卡+08 v1.6 定稿纪律 | 08 头注 L5 明文「Alpha 内容范围冻结,增删条目须经用户裁决」——三卡都只有**改状态列**的权限,**无一行可新增/删除**;本卡 T5 回写仅动「战斗一屏样张」一行,若需要为新条目动集合,一律 L3 呈报。**v1.3 注**:该「回写」执行为反哺点条目(仅动该行的改写要求照录进清单),零直改 | - - ---- - -## 8. 关联文档同步面 - -> **v1.3 执行口径(2026-10-17 文档同步闸 v3)**:本批**禁写 `design/` 整目录与根规则文件**,唯一可写目录 = `reports/`(`active.md` 唯一例外)。下表「同步义务」列一律执行为「列进 `reports/iter30-反哺点-<完成日>.md`:哪个文件哪一节、写成什么、依据,用户会话裁决后归文档批落文」;成文内容本体(冻结记录段全文、目标规格清单、处置表等)随对应反哺点条目交付。 - -| 文档 | 关联点 | 同步义务(v1.3 全部=反哺点列清单,另注者除外) | -|---|---|---| -| [art-bible.md](../design/art/art-bible.md) §1.4 | 新增**整屏样张冻结记录段**(编号口径见 T5 代拍注记——格子序列已用 v2/v3、关卡屏自成一列,禁两处各叫各的);段内随附**目标规格清单(Q1 已裁丙案:尺寸档/色板/明度档逐件成文)+徽章明度档复核转正记录(H5/§7.5 D1)**两件交付物;§7.6(三) 氛围层并存条改写为已裁决口径(经 T3 实拍图记录,Q3 乙案);§0.5 H1–H11 逐项处置写进该段;死指涉三处按 Q5 甲案改指「指代稿」(T0) | 反哺点 · 仅 T3 过闸后成文(契约 5) | -| [art-status-checklist.md](../design/art/art-status-checklist.md) | 战斗一屏样张行 ⬜→✅;:14 指针旧锚 §5.1 订正;余屏行按 Q2 刷新 | 反哺点 · 过闸后列清单 | -| [06-待办清单.md](../design/gdd/06-待办清单.md) | 战斗一屏样张条(:37-43)注销(去向登记当批状态记录)+:41 归属栏旧锚订正+:39「尺子还没造出来」措辞按 P1 读数订正;**关卡/菜单/营地三屏新立排队行(Q2 已裁甲案之本批交付义务)**;P0① 死指涉条(:609-615)按 **Q5 已裁甲案**处置(改指指代稿并注)+该行「68/527」行号读数订正 | 反哺点 · 列清单待裁 | -| [08-Alpha版本标准.md](../design/gdd/08-Alpha版本标准.md) | 「五 · 表现」战斗一屏样张行(:158)待做→在役(过闸后);完成定义边界条款注记(样张过闸 ≠ 占位素材全体转正)。**禁动项**:头注 :5 已定稿、增删条目须用户裁;「七 · 未决项」:208-210 三行(站桩帧动画/素材升档/立绘回退)本批一律不改 | 反哺点 · 过闸后列清单 | -| [战斗表现.md](../design/gdd/systems/战斗循环/战斗表现.md) | 敌层插入位置裁决记录登记(Q6 附带,:75/:93 既有义务);「一屏样张的验收标准」节(:79-93)状态刷新;**:83/:116「四区」旧措辞订正为三区 B/C/D** | 反哺点 · 随裁决列清单 | -| [character-design.md](../design/art/character-design.md) | **Q1 已裁丙案**:样张反提的立绘/小人规格(目标规格清单)回写其档位节;H4(§5.3 护甲三档视觉区分)与 H9(钩爪恐魔宽≥高豁免)处置登记 | 反哺点 · 随冻结记录列清单 | -| [HUD框架.md](../design/gdd/systems/表现与支撑/HUD框架.md) | **D1 已改实(徽章卡 Q2 裁甲案)**:本卡承接微光组间明度档复核转正/互辨抽测(H5)义务,按其「唯一事实源」纪律回报结论,定义与口径零复述 | 反哺点 · 义务已成立,结论列清单 | -| `tools/shot_checker.py`/`tools/render_sample_sheet_v3.py`/`game/smoke/shot_probe.gd` | 取样点位与断言扩面(T2);**闸件集合本身不改**(增减只走 `tools/run_all_gates.sh`);样张脚本仍不入常设闸表 | 工程面 · 批内更新(可写) | -| [roadmap.md](../roadmap.md) | 迭代 30 行编入笔已发(2026-10-16 用户令,行已在案);批内状态刷新 | 反哺点 · 列清单待裁 | -| active.md | 状态快照与批次记录 | **本批更新(唯一例外 · 会话状态源)** | -| [07-体验验证清单.md](../design/gdd/07-体验验证清单.md) | T3 目检轮次与后续实机目检衔接项登记(**现行 07 无样张类条目,实查 2026-10-16 零命中——本批为首次登记,属新增条目须走 07 自身纪律**) | 反哺点 · 列清单待裁(目检项另进 reports/ 实现报告目检总清单) | - ---- - -## 9. grilling 审查记录(v1.1,2026-10-16,对抗审查员;逐攻击面给结论/证据/处置) - -**审查方法**:卡片每一处引用逐一开文件核行号与措辞;Q1–Q6 逐条全库检索既有条款与裁决(design/gdd/06、08 及其 git 提交史、design/art/art-bible.md、character-design.md、art-status-checklist.md、systems/战斗循环/战斗表现.md、systems/表现与支撑/HUD框架.md、ux/battle.md、playnote.md(仓库根)、roadmap.md、active 侧状态记录残留、`tools/` 与 `game/` 实码、git 只读历史);与迭代 30 另两张并行卡逐 Q 比对互斥面。**只编辑本卡,未动任何其他文件;git 仅只读查询。** - -### G1 事实引用核实(攻击面 1) - -| 引用 | 核实结论 | 证据 | v1.1 处置 | -|---|---|---|---| -| art-bible §1.4 整屏样张闸 | **真** | §1.4 L64 全文(四屏/四项/闸形方向稿先行/执行时机=屏级视觉落码开工前) | 保留并补 L64 行号 | -| art-bible §7.1 占位完成条款 | **真** | §7.1 L411 | 完成定义 3 原写「08 §7.1 指路」**错**(08 无 §7.1),已改指 art-bible §7.1 L411 + 08:158 行 | -| art-bible §7.4 字重三件口径 | **真** | §7.4 L434(字号档差 ≥1.25×+墨色深浅+字重两档)、L432 六档表 | 保留,补 L434;并新增连带读数:「加粗档」在单字重下不存在,直接决定整屏①项可判面(Q4) | -| v3 脚本 A1–A6 | **半真** | 头注 L21-26 确有 A1–A6;**A2 拼缝周界闭合被 v1.0 漏列**;A1 实义=色板对表冻结值+禁入带(L928-930),**不是 48 色计数**;A4 含尺寸基线硬等(L1029-1031);L23「Δ≥55」与 L1157「std ≥50.9」是旧文本(现行定值 A3b Δ≥30,L35 与圣经 L68) | V3 与 T2 逐名义重写,48 色单列为新建项 | -| 「v1 四否决原因」 | **v1.0 只列两条编号,漏 ②④** | 脚本 L1156-1160 映射表:①显示太丑→A6;②封印色冲突→封印黑(A1a);③立体感→A3/F6/F7;④微光格只留微光→F5c;头注 L12-26 仅标 ①③ | P6 补全四条+标注权威表位置;V5 底表指到 L1156-1160 | -| 08 当前行状态 | **真** | 08:158「战斗一屏样张=待做」;:156 UI 贴图重构批待做;:157 UI 字体补完待做;:146 立绘清晰度回退待裁;:154 素材升档待裁;§7 未决项 :208-210 | 保留;「站桩帧动画」原被本卡写作「Beta/后批事项」**定性失实**(实为 08 未决项第 5 行待裁),已订正并入「不做」禁代裁清单 | -| 看板 13 行/§5.1 旧锚 | **真,但 v1.0 漏了 06:41 同型旧锚** | art-status-checklist:14;06:41 | P3 补记;T0 订正面扩为两处 | -| 死指涉行号 | **v1.0 沿用 06:611 的过期读数** | 06:611 写「68/527」;art-bible grep 实测指涉在 **L68 与 L562**,L527 现为 §9.1 参考表 | P4/Q5 改为 68/562,并把 06:611 自身列入 T0 订正面 | -| 2026-10-06 playnote 引文 | **原文被压缩改写** | playnote.md:9 逐字:「现在的立绘太丑了,像素化的粒度太低了,导致根本看不清立绘;看是否可以改回用较为高清的图片?」;日期出处=06:465-471「同日 playnote 立绘批评」 | P7 改逐字引+注明文件本身无日期 | - -### G2 「v2 已冻结/样张批冻结候选值/08 待做」三者是否矛盾(攻击面 2) - -**结论:不矛盾,v1.0 与并行徽章卡都需把两条序列分开。** -- 格子样张序列:v2 冻结(2026-09-28,圣经 §1.4 L66,四冻结含②色板)→ v3.0 解冻①④ → **v3 重冻生效(2026-09-30,L68,机检 17/17)**;类型微光五组**色相**属②色板面,§4.2 L218 明文「样张 v2 定稿(2026-09-28)」,HUD框架:140 同记「五组色相经样张 v2 冻结」——**冻结为真实现状**。 -- 整屏样张序列:条款 2026-09-29 v3.0 才立(L64),**从未出过一张整屏样张判定物,四屏冻结记录零条**——08:158「待做」与看板 ⬜ 因此为真。 -- 「候选值,样张批冻结」的出处是 06:431 里 **2026-09-22 那次更新的历史文本**,滞后于 v2/v3 两次冻结;06:431 同时**明文保留**「样张批组间互辨抽测义务」,且**组间明度档值从未定义**——这才是真挂在样张批上的东西。 -- **v1.1 处置**:①新增 §0.6 关闭「重裁色相」的可能;②新增 §0.5 H5 承接互辨抽测与明度档;③新增 §7.5 D1 写明徽章卡 Q2 与本卡的先后与理由。 -- **另两处状态读数订正(本攻击面的真发现)**:(a) 整屏四项的**机检代码已存在并跑过实机渲染帧**——shot_checker.py 头注自述「整屏样张闸机检(迭代 9 卡⑤/T8 2026-09-30)」,git 053baeee 记「实测 PASS(WCAG 5.79-13.14/三档 204>79>55/骨架四屏过)」,现挂 render_gate.sh ①段周期跑;**③焦点预算 E 段明文「无法机检→人闸」**。v1.0 的「四项从未作为断言集执行」「只存在于条款文字、无对应代码」「本批=该闸首次执行」三句按此改写为「判定物与冻结记录从未出、③从未判」。(b) 新增 P11:§1.4 的执行时机(屏级落码开工前)已被迭代 9/16/25/26 四轮落码越过、Alpha 已于 2026-10-03 到手,§7.1「占位禁止跨里程碑」事实上已被跨——本批定性=**闸后补跑**,冻结语义随之注明,禁写成事前定方向。(c) 新增 P10:关卡屏已有立闸前的 v1 冻结样张(2026-09-28,11/11,产物在盘),Q2/T4/估时三处按「补判四项」而非从零改写。 - -### G3 「全仓 shader 仅一枚先例」(攻击面 3) - -**结论:真。** `find -name *.gdshader` 全仓命中 1 件(`game/presentation/views/desaturation.gdshader`);`ShaderMaterial` 消费面仅 `board_view.gd`(:111 声明/:170-172 创建/:194 参数 tween),`.tscn` 内无 shader 节点;样张与机检面全为 PIL 代码绘制。**处置**:P9 补实测细节;Q3 乙案的「能力边界未验证」措辞保留,另补 shot_probe 出的是「现状图」不是「目标图」这一真实成本(防把「实拍管线已有」误读为「样张管线已有」)。 - -### G4 Q1 三案依赖链与「混合粒度」(攻击面 4) - -- 「UI 贴图重构批」= 06:21-27 待办(Alpha 需完成)+08:156 待做 → **v1.0 读数真**。 -- 「资产升档重产批」= **不是未裁**:06:465-471 载明已裁案乙(2026-09-30 迭代 9 三裁决)+2026-10-04 令暂不做(重启=用户点名)+2026-10-06 优先级再降,且 v3.0「档位上调方向候选」已被 v3.7 八敌逐键定档实质完成;08:154/§7 第 6 行的「待裁」只问**进不进 Alpha**。v1.0 把它与「立绘清晰度回退评估」并列为「两个未裁闸口」**不准确** → Q1 乙案改写为「一已裁挂起+一真未裁」,并补 A4 尺寸基线须显式解冻重校的连带硬账(圣经 L68)。 -- 「立绘清晰度回退评估」= 08:146 待裁+§7 第 7 行真未裁 → **v1.0 读数真**。 -- 「三案可混合」的粒度:全库无既裁边界(样张序列只做整屏闸,从未有文档规定四屏可用不同素材级别),**故保留为请裁项**,不属再问已裁。 -- **处置**:Q1 文字改写;新增契约 6/7;「不做」新增禁代裁 08 未决项三条。 - -### G5 估时 4–7d 的构成依据(攻击面 5) - -**结论:v1.0 无出处且加总错误。** T4 自述「逐屏 1.5–2d × 三屏」= 4.5–6d,却把 T4 上限定为 3d;六卡相加实为下限 4d/上限 11d。**处置**:T4 上限改 0–6d,合计改「≈4–11d(单跑战斗屏 4–5d,四屏全推超盒拆两批)」,并补先例出处:迭代 9 T8 整屏机检建造=3–4h(`.zcode/plans/m3-iter9-loop-plan-2026-09-30.md:65`,故 T2 走复用不重建)、迭代 9 批 A T1 样张机检冻结=2–3h(同计划书:58)、迭代 13 4.8–5.3d/迭代 16 6.9d/迭代 26 2–2.5d/迭代 29 5.5–7d(roadmap.md:63/:68/:85/:88),周期上限口径=「迭代周期 ≈ 一周左右」(2026-10-11 用户裁,roadmap.md:101)。 - -### G6 与另两张并行卡的互斥面(攻击面 6) - -**结论:存在三处「一张卡裁了另一张卡前提」的次序耦合,v1.0 完全未写。** 已新增 §7.5 D1–D5:D1 徽章卡 Q2(色值冻结口径)须先于本卡(它决定本卡是否继承色相重冻义务——核查结论:不继承,但继承 H5 明度档与互辨抽测);D2 棋盘观感卡 Q2(重产 vs 换色)与本卡 Q1 指同一条素材线、且其落地会使本卡冻结的明度带/密度读数作废(**双向作废关系,须同窗呈报**);D3 三卡共写 06/08/07/art-bible/roadmap/active ⇒ 单迭代串行纪律下禁三线并行;D4 迭代 29 改的正是本卡 V7 依赖的门禁语义;D5 08 定稿纪律下三卡都只有改状态列权限、无增删条目权限。 - -### G7 验收 V 条可执行性(攻击面 7) - -逐条对 `tools/` 实存脚本核:**V1 无工具**(方向稿留痕不可机检)→ 从「机检化」降级为件核;**V2 ①②④ = shot_checker B/C/D(+F)**,但 B 段只判 meta 登记的已知文字框、C 段只有战斗屏三点 → 标「须先扩取样点位」,**③焦点 = 人闸**(E 段明文);**V3 = 样张脚本机检段复用扩展+48 色新建**(全仓无 48 色工具,grep 零命中);**V4 五项中第 1 项可借既有断言、第 2 项须新建、第 3/4/5 项目检**;**V7 原写「跑 doc 三闸+熵增对基线」违反 AGENTS.md:19/59「run_all_gates.sh 是唯一闸入口与唯一闸清单,文档禁另列清单」** → 改为指路该脚本,并声明本批零闸件增删。附带核实:`game/smoke/shot_probe.gd`、`tools/golden_compare.py`、`tools/golden_baseline_refresh.sh`、`tools/repo_structure_audit.py`、`tools/doc_link_audit.py` 均实存(07 无样张条目为实查所得,已注明本批首登)。 - -### G8 红线自检:卡片有没有替用户拍板(攻击面 8) - -- **发现两处预设**:①目标句把尺子写成「§1.4 + 战斗表现五项的**并集**断言集」,完成定义第 1 条同样预设并集——而合体方式正是 Q6 未裁项 → 改为「两套口径的合体方式归 Q6 裁决(本卡不预设并集或分闸)」。②完成定义第 2 条写死「新增 **v4** 冻结记录段」——v4 这一编号预设了「整屏续用格子序列编号」,而关卡屏已自成一列(「样张 v1」)→ 改为「编号口径属批内代拍,在冻结记录一次说清」。 -- **一处定性失实而非拍板**:「站桩帧动画」被写成 Beta/后批事项(实为 08 待裁)→ 已改,并列入「不做」的禁代裁清单。 -- **审过判为保留(不属代拍)**:防线三「本批不申请验收豁免」= 本批自我从严的执行纪律,非改动用户裁决;Q2「战斗屏第一优先不复议」= 引用既成文依据(06:37-43/战斗表现:73);§0.5 各 H 项与 §7.5 只呈代价与次序、不给推荐案;Q1–Q6 全条无推荐语(历批「推荐案被推翻」纪律维持)。 -- 本批 Q 项清单净变动(v1.1 记录;**六项已全部经 2026-10-16 用户令裁定,见 §7,本节当时呈报的六项全保留口径现为裁决对表依据**):**Q1–Q6 六项全保留**(无一被既有条款裁过,逐条检索见 §0.6 与本节 G2/G4),另关闭本卡内三处隐性重问(色相重冻/随闸三裁决/敌层义务存废),依据已写入开工门。 -- 词面规范扫描:v1.1 全文按本次审查指定的十项废止词逐一扫描,初稿命中五处(否定副词一项四处、完成动词一项一处)已全部换代,复扫零命中。 - -### G9 审查中判定为「本卡无权处置、已登记呈报」的文档面 - -`tools/render_sample_sheet_v3.py` 头注 L23/L1157 旧口径残留文本;06:39「尺子还没造出来」与 shot_checker 现状有差;06:41/checklist:14 的 §5.1 旧锚;06:611 行号读数(68/527 应为 68/562);**art-bible §8.2 L490 指路 m3-iter9-t8-rulings 文件已在 8e02dcf0 删除(死指涉第二例,属 Q5 同族,处置口径与 Q5 同案在本批一并呈报)**;战斗表现:83/:116「四区」旧措辞;art-bible 头注 L3 仍写「现行为 v3.11」而当时文末变更表已到 v3.14。**以上均为他文件文本,本审查一律未改**,只作为本批 T0 订正面对表登记;其中头注版本号与他文档措辞是否订正,归各文档自身纪律与用户裁决。 - -> **v1.3 口径换代注(2026-10-17 文档同步闸 v3)**:本节为 v1.1 时点的审查实录,原文不重写;其中「doc 三闸」一类闸件枚举字样与「写入文档/登记 06」类落文表述,按 v3 口径只读为历史记录——闸清单与域划分的唯一出处恒为 `tools/run_all_gates.sh`(本批按改动域跑 `--code` 档),文档落文一律列进 `reports/iter30-反哺点-<完成日>.md` 归文档批。 \ No newline at end of file diff --git a/reports/需求卡片-战斗一屏样张批-2026-10-28.md b/reports/需求卡片-战斗一屏样张批-2026-10-28.md deleted file mode 100644 index 7b20661c..00000000 --- a/reports/需求卡片-战斗一屏样张批-2026-10-28.md +++ /dev/null @@ -1,229 +0,0 @@ -# 需求卡片:战斗一屏样张批(2026-10-28) - -> **来源**:待办清单条目「战斗一屏样张 P0 未开工」(设计面=美术轨;状态=美术设计已闭合+待写卡) -> **唯一事实源**:`design/art/art-bible.md` **v3.22** + `design/art/art-prompts.md` §5「资产出图工单(四组九件)」 -> **规则指针**:`AGENTS.md` 硬性红线(含 2026-10-28 新立的「禁变异类测试与撤销类取证」验证口径)/`design/engineering/process-conventions.md` §1–§3/`code-conventions.md`/`test-conventions.md` §8/`doc-conventions.md` §12 -> **旧卡说明**:`reports/需求卡片-战斗一屏样张批-2026-10-16.md`(v1.4)于 2026-10-17 被裁定不满足开发条件、终止开工,属非有效卡,本卡不继承其任何裁决;其考证过的代码现状与断言设计可作参考。 - ---- - -## 1. 目标与完成定义 - -**做什么**:把已经定稿的战斗一屏美术规格,变成一张可判定的样张和一批可运行的实装。 - -1. 用 PIL 代码绘制产出**战斗一屏样张**(1280×800 基座 + 1920×1080 全局等比 1.35× 两版),内容覆盖 `art-bible` §1.4 整屏内容清单与战斗表现内容清单。 -2. 把 §1.4 整屏四项闸与战斗表现五项标准,写成**可在样张脚本内执行的机检断言**。 -3. 把五项设计定值**落进实装代码**(血条换色、名字行垫素底、顺位徽标提档、护甲图标换件、站桩文字不压地台)。 -4. 程序化产出两件素材并入包(地台件、护甲图标三枚)。 - -**完成定义(全部满足才算完)**: - -- 样张两版产出,方向稿目检通过(用户判定),目检通过后机检冻结; -- 整屏四项断言 + 战斗表现五项断言在样张脚本内全绿; -- 五项代码定值落码完成,对应断言在冒烟面内通过; -- 地台件与护甲三枚 PNG 入包并被实装引用; -- 三份批件写齐(实现报告/代拍板追认单/反哺点清单)。 - ---- - -## 2. 设计事实源(必填) - -**样张过审 + art-bible 条款版本**: - -| 依据 | 版本/节 | 本卡取用 | -|---|---|---| -| `design/art/art-bible.md` | **v3.22** | §1.4 整屏样张闸四项;§2 明度三档带与世界底层两子带;§4.1 色板(余量 0,第二道门=不得三通道全 <8);§4.2 血条=危险红 `#A8321F`;§6.1 背景契约与地台独立件;§7.2 文字可读性;§7.4 字号六档与豁免清单;§8.2 尺寸档与甲/乙类缩放;§8.4 方向集 | -| `design/art/art-prompts.md` | §5 资产出图工单(四组九件) | 本卡素材需求的直接来源:工单七字段(路径命名/尺寸档/色板约束/明度归属/程序化与否/验收判据/出图要点) | -| `design/gdd/ux/battle.md` | 现行 | **屏级分区布局与格边长公式的唯一裁决源**——本卡涉及分区尺寸只指路,不复述数值 | - -**已定死、本卡不再讨论的定值**:站桩素底=深档 `#282220`;五处换色合并(铲刃→`#C4C4C4`、提灯→`#B07A14`、食人魔皮→`#B8A582`、石君王灰皮→`#786E62`、轻甲木色→`#CDB88C`);新增两枚(`#868C9A` 重甲冷灰、`#A79CB8` 卓尔浅紫灰皮);48 色余量已归零;渲染手段=PIL 代码绘制;素材输入级别=丙(样张即设计目标图)。 - ---- - -## 3. 现状事实(代码级实查,每条带 file:line) - -1. **样张脚本现役**:`tools/render_sample_sheet_v3.py`(1174 行)已有断言框架——`CHECKS` 列表定义于 `:113`,断言登记于 `:117`,全绿判定于 `:1033`,报告输出于 `:1164`。另存 `tools/render_sample_sheet.py`(1009 行)为旧版。本批在 v3 脚本内扩展。 -2. **血条填充是裸字面量**:`game/presentation/views/standee_body.gd:444` 画填充用 `Color(0.41, 0.61, 0.91)`,即 `#689CE8`(蓝族,v3.22 §4.2 已登记为违例退役值),**未经 UiKit 常量**。 -3. **血条条底同为裸字面量**:`standee_body.gd:441` 用 `Color(0.10, 0.10, 0.11)`(引擎默认主题深底近似)。 -4. **素底牌已在役**:`game/presentation/views/ui_kit.gd:193` `HP_BAR_BACK := Color8(40, 34, 32)`(即 `#282220`),血数垫牌绘制于 `standee_body.gd:451`。**深档素底色无需新增,直接复用本常量。** -5. **顺位徽标违规**:`standee_body.gd:437-438` 用裸值 `13` 绘制①②③(`UiKit.GOLD_BRIGHT`),既不在 §7.4 ①条带内读数在册面、也不在②装饰 caption 在册面,属「清单外 11–13px 文字」,v3.22 已裁定提档 `FS_HINT` 14。 -6. **护甲图标是字形占位**:`standee_body.gd:8-10` `const ARMOR_ICONS := {"light": "◇", "ward": "◆", "heavy": "▣"}`;绘制于 `:485` 与 `:496`(`:496` 用 `12` 绘制护甲字形,与名字同排)。 -7. **名字行与地台重叠(实装债)**:名字行基线 `standee_body.gd:495` = `Vector2(..., box.y - 1.0 - STANDEE_FOOT_MARGIN)`,而 `STANDEE_FOOT_MARGIN := 12.0` 定义于 `:13` → **基线 y = box.y - 13**。地台矩形 `standee_body.gd:405` 返回 `Rect2(18.0, box.y - 18.0, box.x - 36.0, 12.0)`,纵向覆盖 **box.y-18 .. box.y-6**。名字行基线落在地台带内,**重叠确认**(非传闻)。 -8. **B 区高度文码不符**:`game/presentation/views/battle_stage_view.gd:28` `custom_minimum_size = Vector2(0, 252)`(代码 252),而 `art-bible` §8.2 站桩立绘排版方案二①定 B 区高 **270**。二者差 18px。 -9. **血数 11px 属豁免**:`standee_body.gd:453-454` 以 `11` 绘制血数并垫 `HP_BAR_BACK` 牌,合 §7.4 豁免①(14.3:1),**不在本批改动范围**。 -10. **素材在盘但不入 git、且是旧档**:立绘与瓦片位于主检出 `game/assets/art/`(`character/` 26 件含八敌与主角 `character_hero_idle`/`attack`/`hit`/`portrait`;`board/` 瓦片),**整个 `game/assets/art/` 不入 git**(`git ls-files game/assets/art` 计数 0),fresh worktree 内缺位。取用靠 `tools/render_sample_sheet_v3.py:50-56` 的 `asset_root()` 两级回退(worktree → 主检出),脚本可直接取到,**样张可画**。 -11. **立绘为旧档占位、且未接线进实装**:`character_hero_idle.png` 仅 1220 字节(2026-09-25),属旧档占位,非精细手绘终稿(重产工单在 `art-prompts` §5.4,属后续素材批);同时 `standee_body.gd:20-21` 立绘挂点为 `null`、`set_portrait_texture`(`:208`)未被调用,实装站桩仍是**字形回退**态。本批不修接线。 - ---- - -## 4. 设计契约(违反=返工红线) - -**(1)🔴 实现批禁写 `design/` 与根规则文件**:本批唯一可写目录=`reports/`;`art-bible`、`art-prompts`、`battle.md` 等一律只读。所有「文档该改什么」进反哺点清单,由用户裁决后归文档批落文。 - -**(2)🔴 样张必过 §1.4 整屏四项闸**:文字对比 ≥4.5:1/明度三档带成立(含世界底层两子带)/首焦唯一/文字不压纹理底。 - -**(3)🔴 方向稿目检先行**:目检通过后才做机检冻结;机检过了但气质被否决的,以目检为准返工。 - -**(4)🔴 禁删断言、禁放宽阈值换绿**:断言红就修实现,不动判据。 - -**(5)🔴 禁变异类测试与撤销类取证**(2026-10-28 用户裁,前口径已废):不许写「注入缺陷看断言是否变红」的变异验证,不许写「撤销改动看断言是否变红」的撤销证明。证明方式=每个需求点与每个行为改动都要有**从真实入口进入的验收断言**,可 grep 定位、**在当轮真实跑批中执行并通过**,判据绑被测改动特有的可观测提交面。证明做不出来=**停卡呈报**。 - -**(6)🔴 数值单一事实源**:色值、字号一律收 `UiKit` 常量,禁在视图里写裸 `Color(...)` 与裸字号字面量(本批正是要清掉 `:441`、`:444`、`:437`、`:496` 这四处)。 - -**(7)🔴 48 色余量已为 0**:本批**不新增任何色值**,只使用 v3.22 在册色;需要色值处一律引 `UiKit` 现有常量。 - -**(8)🔴 RNG 单点**:禁 `randomize()`/自建 `RandomNumberGenerator`;样张脚本的确定性散布沿用现役写法(`standee_body.gd:275, 302`)。 - -**(9)🔴 Core 层零 UI 依赖**:本批只动呈现层与工具脚本,core 侧零触碰,完整战斗仍须可 `--headless --script` 跑通。 - -**(10)🔴 样张判定对象不含立绘精细度**:样张以现有旧档立绘出方向稿(见第 3 节第 10、11 条),判定对象=布局分区、明度三档带、文字对比、首焦唯一、构图关系;**立绘自身的清晰度与精细度不作本批判定对象**,也不得据本批样张给立绘下结论。立绘重产(`art-prompts` §5.4)落位并完成站桩接线后,须**重出样张复验**——本条进反哺点清单。 - ---- - -## 5. 范围边界 - -### 5.1 做 - -1. PIL 画一屏样张两版(1280×800 基座;1920×1080=全局等比 1.35× + 左右黑边),内容按 §1.4 整屏内容清单 + 战斗表现内容清单(含类型微光呈现组、图类型色板变体组至少两套、三组关键帧条、主角与敌方描边同屏对照)。 -2. 整屏四项 + 战斗表现五项的机检断言进 `tools/render_sample_sheet_v3.py` 的 `CHECKS`。 -3. 五项代码定值落码 + 断言:血条换 `#A8321F`(清 `#689CE8`)、站桩名字行垫 `HP_BAR_BACK` 素底且不压地台、顺位徽标提档 `FS_HINT`、护甲图标由字形换三枚 24×24 PNG、地台件独立引用。 -4. 两件素材程序化产出并入包:地台件 `scene_stage_plaza.png`(源 48×12 九宫格)、护甲图标三枚 `ui_armor_light/ward/heavy.png`(源 24×24)。 -5. 三份批件:实现报告/代拍板追认单/反哺点清单。 -6. **改前/改后并排对拍图**:改动前先用同一脚本、同一参数存一版**基线样张**,改动后与基线并排成图,作为用户目检的对照材料。基线留存是真实前后对照,不是人为制造红灯,不违反「禁变异类测试与撤销类取证」红线——红线禁的是「故意改坏看断言是否变红」,本项是「改好之后与原样并排」。 - -### 5.2 不做(含去向) - -| 不做的项 | 去向 | -|---|---| -| B 区舞台背景插画 `scene_stage_bg.png` 正式出图 | 样张内按远景/中景两带用既有色值程序化铺出**设计目标态**;正式出图工单仍在 `art-prompts` §5.1,由后续素材批执行 → 进反哺点清单 | -| 主角与三 Boss 立绘重产 | `art-prompts` §5.4 工单仍在,由后续素材批执行 → 进反哺点清单 | -| 三关色板终值 | 待「三关色相 × 五组微光互辨抽测」条目(待办清单已登记,状态=待美术设计) | -| 营地场景图 | 独立条目,与本批无关 | -| B 区高度 252→270 的实装对齐 | 本批**只登记不修**:样张按代码现状 252 出(样张须反映实机)→ 进反哺点清单 | - ---- - -## 6. 关联文档同步面(必填) - -| 文档 | 关联点(本批实现会改变它的哪条陈述) | 同步义务 | -|---|---|---| -| `design/art/art-bible.md`(v3.22) | §1.4 整屏四闸的**通过事实**与抽样读数;§4.1 站桩素底深档 `#282220` 的实装落地;§6.1/§7.2 站桩文字位机检断言 | 进 `reports/iter-反哺点-<日期>.md`,由用户裁决后归文档批落文 | -| `design/art/art-prompts.md` §5 | 组二地台件、组三护甲三枚已「程序化产出即终稿」;组一背景、组四立绘仍待出图 | 同上 | -| `design/gdd/ux/battle.md` | B 区高度:文 270 vs 代码 252 的 18px 差异 | 同上 | -| `design/gdd/systems/战斗循环/战斗表现.md` | 「一屏样张的验收标准」五项过闸结果 | 同上 | -| `design/engineering/test-conventions.md` | §8.4 撤销证明条文与 2026-10-28 新验证口径相冲突(旧口径已废) | 同上 | -| `AGENTS.md` | 「验收闭合」红线句仍保留「撤销该改动能让对应断言变红」旧措辞,与新口径冲突 | 同上 | - ---- - -## 7. 任务卡 T0..Tn - -### 7.0 文件结构图 - -| 文件 | 职责 | 复用/新增 | 改动性质 | 验证闸行号 | -|---|---|---|---|---| -| `tools/render_sample_sheet_v3.py` | 样张绘制与机检断言宿主 | 复用既有(扩展出口与 `CHECKS`) | 行为改动 | V1–V9 | -| `game/presentation/views/standee_body.gd` | 站桩绘制:血条、素底、徽标、护甲、地台引用 | 复用既有(就地改) | 行为改动 | V5–V8 | -| `game/presentation/views/ui_kit.gd` | 色值与字号常量单点 | 复用既有(`HP_BAR_BACK`、`FS_HINT` 已在) | 非行为改动(如需补常量则标行为) | V5、V7 | -| `game/assets/art/scene/scene_stage_plaza.png` | 地台九宫格件 | 新增(程序化产出) | 非行为改动(新增素材) | V9 | -| `game/assets/ui/icons/ui_armor_{light,ward,heavy}.png` | 护甲三档图标 | 新增(程序化产出) | 行为改动(替换字形占位) | V8 | -| `game/tests/` 冒烟面 | 五项定值的验收断言落点 | 复用既有冒烟段 | 行为改动(新增断言) | V5–V8 | -| `reports/` 三份批件 | 实现报告/代拍板追认单/反哺点清单 | 新增 | 非行为改动 | — | - -### 7.1 卡片与估时 - -| 卡 | 内容 | 估时(工作日) | -|---|---|---| -| T0 | 开工准备:worktree、`.godot` 与字体 `.import` 边车拷贝、确认 v3 脚本可跑 | 0.25 | -| T1 | 样张底板:两版画布、B/C/D 分区(数值按 `battle.md` 指路,B 区按代码 252)、格边长 | 0.5 | -| T2 | 内容清单铺画:类型微光组、色板变体组、关键帧条、描边同屏对照 | 1.5 | -| T3 | 整屏四项断言进 `CHECKS` | 1.0 | -| T4 | 战斗表现五项断言进 `CHECKS` | 1.0 | -| T5 | 血条填充换 `#A8321F`(经 `UiKit` 常量)、条底收常量 | 0.25 | -| T6 | 站桩名字行垫 `HP_BAR_BACK` 素底,且文字位不压地台(消 5px 重叠) | 0.5 | -| T7 | 顺位徽标提档 `UiKit.FS_HINT` | 0.25 | -| T8 | 护甲图标由字形换三枚 24×24 PNG | 0.5 | -| T9 | 地台件与护甲三枚程序化产出并入包 | 0.5 | -| T10 | 产出物落位卡:三份批件写齐 + 改前/改后并排对拍图产出 | 0.25 | -| | **合计** | **≈6.5(区间 5.5–7.5)** | - -**卡间接口**: - -- T1 **产出**:`draw_base(canvas_w, canvas_h, b_h) -> Image`(B 区高由参数传入,T2/T3 依赖) -- T3/T4 **取用**:T1 的 `Image` 与分区矩形;**产出**:`CHECKS` 内断言条目(供 T10 汇总) -- T5–T8 **取用**:`UiKit.HP_BAR_BACK`、`UiKit.FS_HINT`、`UiKit` 新增血条填充常量(由 T5 定义,T6 复用) -- T9 **取用**:T8 定义的护甲三档键 `{"light","ward","heavy"}` - -**步骤要求**:一步=一个动作 + 一个可核查结果,`- [ ]` 记步。实装步骤给确切签名与 file:line,**实现体不写**。 - ---- - -## 8. 验证闸(改动—验收对照表) - -| # | 需求点 | 改动(文件:行 / 行为) | 验收测试(名称 + 落点) | 层级 | 真实入口 | 判据绑定面 | 证明方式 | -|---|---|---|---|---|---|---|---| -| V1 | 样张两版产出 | `tools/render_sample_sheet_v3.py` 新增两版出口 | `sample_sheet_two_editions` 落冒烟面 | 探针 | `python tools/render_sample_sheet_v3.py` 真实跑批 | 两版位图文件尺寸(1280×800 / 1920×1080) | 产物两版尺寸分别为 1280×800 与 1920×1080,跑批通过 | -| V2 | 文字对比 ≥4.5:1 | 同上(断言进 `CHECKS`) | `splash_text_contrast` 落 `CHECKS` | 探针 | 样张脚本真实跑批 | 样张位图文字像素区域对比度读数 | 断言在跑批内取绿 | -| V3 | 明度三档带成立(含两子带) | 同上 | `splash_luma_three_bands` 落 `CHECKS` | 探针 | 同上 | 样张位图逐区明度带读数(世界底 / 中 / 顶层) | 断言在跑批内取绿 | -| V4 | 首焦唯一 | 同上 | `splash_single_focus` 落 `CHECKS` | 探针 | 同上 | 样张位图对比度最高点分布(唯一性) | 断言在跑批内取绿 | -| V5 | 血条=危险红 `#A8321F` | `standee_body.gd:444` 填充改引 `UiKit` 常量;`:441` 条底收常量 | `hp_bar_fill_is_danger_red` 落冒烟面 | 单元 | 冒烟套真实跑批 | 血条填充像素采样色值 | 断言在跑批内取绿;全仓 grep 零 `#689CE8` 与零裸 `Color(0.41, 0.61, 0.91)` | -| V6 | 站桩名字行垫素底、不压地台 | `standee_body.gd:495-497` 基线改为地台上方 + 垫 `HP_BAR_BACK` | `standee_name_not_on_plinth` 落冒烟面 | 单元 | 冒烟套真实跑批 | 名字行绘制基线 y 与地台顶 y 坐标 | 断言在跑批内取绿(名字行基线 y < 地台顶 y) | -| V7 | 顺位徽标提档 14 | `standee_body.gd:437-438` 裸 `13` → `UiKit.FS_HINT` | `order_badge_uses_fs_hint` 落冒烟面 | 单元 | 冒烟套真实跑批 | 顺位徽标字号取值(FontFile 大小) | 断言在跑批内取绿;grep 该处零裸字号 | -| V8 | 护甲图标换三枚 PNG | `standee_body.gd:8-10` 常量改路径;`:485`/`:496` 绘制改贴图 | `armor_icon_textures_bound` 落冒烟面 | 单元 | 冒烟套真实跑批 | 三档键 → 对应 PNG 资源引用(ResourceLoader 加载结果) | 断言在跑批内取绿;三档键各绑到对应 PNG | -| V9 | 地台件与护甲三枚入包 | 产出入 `game/assets/` 并被实装引用 | `plinth_and_armor_assets_loaded` 落冒烟面 | 接口 | 冒烟套真实跑批 | `game/assets` 下资源文件存在且被实装引用(尺寸 48×12 / 24×24) | 断言在跑批内取绿(资源可加载且尺寸 48×12 / 24×24) | -| V10 | 改前/改后对拍图产出 | T1 存基线样张;T10 生成并排图 | `sample_sheet_before_after` 落冒烟面 | 探针 | 样张脚本真实跑批 | 基线版与改后版两张源样张文件 + 并排图输出文件 | 断言在跑批内取绿:基线版与改后版两张源文件均存在、尺寸一致、并排图已生成 | - -- **方向稿目检**(用户判定)在 V1–V4 之前执行,目检通过后才冻结机检。 -- **独立验收审计**:入口 `reports/iter-验收审计-<日期>.md`,由未参与实现的会话或子代理执行,未过不得合并。 -- **用户目检项一律「登记不阻塞」**:登记进实现报告即完成卡内义务,不作为合并或下一迭代开工的前置。 -- 重闸表述:批末按本批改动域选档跑 `tools/run_all_gates.sh`(本批含代码面,走代码域)。 - ---- - -## 9. 异常分级 - -- **L1 自救**:单条断言红且定位明确 → 一次重试修实现,不改动判据。 -- **L2 记录继续**:同一红灯连续三次 → 记录进实现报告,继续推进其余卡,不停批。 -- **L3 停机写报告等用户**:触碰第 4 节任何一条 🔴 红线;或样张四闸中任一闸无论如何都过不去(可能意味着规格本身有缺口);或需要新增色值(余量为 0,须呈报作者裁)。 - ---- - -## 10. 代拍板白名单 - -1. 样张脚本内的临时变量命名、辅助函数拆分方式。 -2. 断言在 `CHECKS` 内的 id 命名与登记顺序。 -3. 程序化产出素材时的绘制实现细节(颜色取自 v3.22 在册值、不新增色)。 -4. 两版样张的输出文件名与落盘目录(落 `artwork/` 在途区)。 - -超此清单者一律呈报。 - ---- - -## 11. 待裁点 - -**零待裁点,开工门=U0。** - -说明:B 区高度文 270 vs 代码 252 的差异已在第 5.2 节定死处置(本批按代码 252 出样张、只登记不修),不构成待裁点;样张所需色值全部已在 v3.22 在册,本批零新增色,故无额度类分叉。 - ---- - -## 12. 落位与可复用性预检 - -**复用面**: - -- 样张绘制**复用既有** `tools/render_sample_sheet_v3.py`(1174 行,已有画布、分区、`CHECKS` 框架),不新建脚本——新脚本会与既有断言体系并行,形成两套事实源。 -- 色值与字号**复用既有** `UiKit` 常量(`HP_BAR_BACK`、`FS_HINT`、血条填充新常量同址登记),禁在视图内写裸字面量。 -- 站桩绘制**就地改** `standee_body.gd`,不新建站桩视图。 - -**唯一面**: - -- 血条填充色只落在 `UiKit` 一处常量,`:444` 与 `:441` 两处绘制点均引它,禁各自写字面量。 -- 护甲三档键 `{"light","ward","heavy"}` 只在 `standee_body.gd` 常量处定义一次,`:485` 与 `:496` 共用。 -- 地台几何已在 `:405` 单一来源(注释明写「防两处漂移」),本批不另立第二处几何。 - -**分层与交互面**: - -- 样张脚本(`tools/`)→ 只产出图与断言报告,不进游戏运行时;与呈现层的交互=读取 `UiKit` 常量值,只读不写。 -- 呈现层(`standee_body.gd`)→ 经 `UiKit` 取色与字号,不直连数据表;数值只经 ConfigDB 单点(本批无玩法数值改动)。 -- 新增素材(PNG)→ 落 `game/assets/` 被呈现层按路径加载,路径串只在常量处定义一次。 -- 跨层红线不因新增而绕:Core 零 UI、随机只经 RngService(本批无随机改动)、数值只经 ConfigDB。 diff --git a/roadmap.md b/roadmap.md index 388202cb..bf6b9f1b 100644 --- a/roadmap.md +++ b/roadmap.md @@ -5,8 +5,8 @@ ## 当前位(只回答「现在该做什么」;三行内随批次换代,禁止在此扩写成状态快照) - **阶段**:M3——Alpha 版本的完整实现(2026-10-09 立规:未明令宣布完成前停留 M3,迭代只排 M3 需求,M4 不排期;根目录 stage.txt 为旧阶段开关仅存档)。 -- **迭代位**:迭代 1–42 全部已完成——迭代 42 两卡(gdstyle 尾波清偿批+level_runner 商店委托层拆除)2026-10-29 合回(合并提交 65dff22f),2026-10-30 完成批后收尾(反哺点 1 落文 architecture v1.26、反哺点 2 被零豁免裁决消解;产出物退役+账面换代;PARITY 对拍漂移与批末小件已移交待办清单)。迭代 43(战斗一屏样张批)已合回(合并提交 3b66d1a6)——批后收尾未做。 -- **下一步**:迭代 43 批后收尾(反哺点 13 条落文核对→产出物退役→账面换代,batch-closure 承接;迭代 43 行状态仍记待开工,随收尾订正);随后迭代 44 待开工(组合根注册面+战斗编排归约+测速循环三卡,编队前置=迭代 42 合回已满足)。待编池:营地交互重做卡⑤(排卡④之后)、卡④(已退回美术设计段,美术设计闭合后重立卡)、冒险前资源配比预设(冻结备选)、迭代 30 原卡②③(2026-10-17 已剔出迭代 30 规划、退回待设计,待美术/设计定稿后重新立卡)。批后可裁事项:gdstyle 基线 refresh 收账随零豁免各批合回一次人工 `--refresh --force`(待办清单在册)。 +- **迭代位**:迭代 1–43 全部已完成——迭代 43(战斗一屏样张批)2026-10-30 合回(合并提交 3b66d1a6),同日完成批后收尾(反哺点 13 条处置闭合:落文四处 art-bible v3.23/art-prompts v2.10/战斗表现 v1.2/test-conventions 旧句清偿,消解三条,移交待办清单两条目;产出物与两卡需求卡片退役;方向稿目检登记体验验证清单 ㊶)。迭代 42 收尾记录见 git 提交 7ec2af58。 +- **下一步**:迭代 44 待开工(组合根注册面+战斗编排归约+测速循环三卡,编队前置=迭代 42 合回已满足)——开工前宜裁 PARITY 对拍漂移查因/重锚(闸 11 触面)与迭代 43 批后待裁三点(待办清单在册)。待编池:营地交互重做卡⑤(排卡④之后)、卡④(已退回美术设计段,美术设计闭合后重立卡)、冒险前资源配比预设(冻结备选)、迭代 30 原卡②③(2026-10-17 已剔出迭代 30 规划、退回待设计,待美术/设计定稿后重新立卡)。批后可裁事项:gdstyle 基线 refresh 收账随零豁免各批合回一次人工 `--refresh --force`(待办清单在册)。 ## 里程碑时间线 @@ -76,7 +76,7 @@ | 迭代 40 | 已完成(2026-10-28) | 已退役(git 历史可考) | 2026-10-27 | ≈6.375 个工作日 | 已退役(git 历史可考) | | 迭代 41 | 已完成(2026-10-29) | 已退役(git 历史可考) | 2026-10-27 | ≈13.15 个工作日〔用户特批 2026-10-27 超 10 个工作日〕 | 已退役(git 历史可考) | | 迭代 42 | 已完成(2026-10-29) | 已退役(git 历史可考) | 2026-10-29 | ≈5.375 个工作日 | 已退役(git 历史可考) | -| 迭代 43 | 待开工 | reports/需求卡片-战斗一屏样张批-2026-10-28.md | 2026-10-29 | ≈6.5 个工作日 | — | +| 迭代 43 | 已完成(2026-10-30) | 已退役(git 历史可考) | 2026-10-29 | ≈6.5 个工作日 | 已退役(git 历史可考) | | 迭代 44 | 待开工 | reports/需求卡片-组合根注册面批-2026-10-29.md
reports/需求卡片-战斗编排归约批-2026-10-29.md
reports/需求卡片-测速循环批-2026-10-29.md | 2026-10-29 | ≈7.875 个工作日 | — | | 迭代 45 | 待开工 | reports/需求卡片-呈现层状态件批-2026-10-29.md
reports/需求卡片-gdstyle尾波补件批-2026-10-29.md | 2026-10-29 | ≈7 个工作日 | — | diff --git a/体验验证清单.md b/体验验证清单.md index a3c3d9a7..64ce816f 100644 --- a/体验验证清单.md +++ b/体验验证清单.md @@ -293,7 +293,7 @@ ## ㉘ 未开格类型徽章批——类型微光实机目检(迭代 30 卡①顺带登记;能力验证半=双帧 glow 作用集取证 2/4/4·outside=0+golden off 帧 0.10–0.14%+探针 case⑰+单测五段 51 检查) -> 类型微光实装(默认开、组合根布尔可切)后,玩家可见面=棋盘格内五组类型微光。机检只能证明「作用集正确/开帧一致/关帧逐位一致」,真机上「五组分不分得清、看着脏不脏」仍需人眼。**群伤组明度档为 provisional 值**(art-bible v3.15 登记,明细见其 git 提交史),观感复核归战斗一屏样张批(迭代 30 卡②)——本节第 5 项读数作该复核的输入。登记不阻塞(2026-10-12 真人检测立规)。 +> 类型微光实装(默认开、组合根布尔可切)后,玩家可见面=棋盘格内五组类型微光。机检只能证明「作用集正确/开帧一致/关帧逐位一致」,真机上「五组分不分得清、看着脏不脏」仍需人眼。**群伤组明度档为 provisional 值**(art-bible v3.15 登记,明细见其 git 提交史),观感复核归战斗一屏样张批(该批 2026-10-30 已合回——迭代 43,方向稿目检登记 ㊶、复核随其一并执行)——本节第 5 项读数作该复核的输入。登记不阻塞(2026-10-12 真人检测立规)。 | # | 目检项 | 判据 | |---|---|---| @@ -479,3 +479,16 @@ | 4 | 营地三柜台与同调交互回归 | 树淬炼/锻造工坊/秘宝匣三柜台可购可交互,同调充能与改前一致 | - **红灯信号**:任一屏/浮层布局错位、交互无响应或读数与改前不一致即报缺陷。 - **结论回流**:呈现缺陷归待办清单登记新条目。 + +## ㊶ 迭代 43——战斗一屏样张批方向稿目检(2026-10-30 随批后收尾登记) + +> 单卡合回(2026-10-30,git 提交 3b66d1a6):战斗一屏样张批——五项实装定值(血条危险红/条底收常量/顺位徽标提档/护甲三枚 24×24 PNG/名字行素底牌不压地台+地台件九宫格接装)+样张脚本扩展(两版画布出口、整屏四项与战斗表现五项机检 30/30 全绿、单元套件 18 checks 全绿)。**方向稿目检先行**(art-bible §1.4 闸形)——机检已全绿,气质终审通过才算样张整体过闸;通过前终稿资产与动画设计不启动。登记不阻塞(2026-10-12 真人检测立规);读数与论证详见实现报告(git 提交 3b66d1a6 一线可考)。 + +| # | 目检项 | 判据 | 材料 | +|---|---|---|---| +| 1 | 方向稿气质与构图 | 气质=明亮地窟看台、立绘最抢眼、无压抑;构图/分区/明度三档带/首焦落点与设计意图一致 | `artwork/mockups/sample_battle_screen_1280x800.png`、`sample_battle_screen_1920x1080.png`(归档位 `artwork/archive/战斗一屏样张批-2026-10-29/`) | +| 2 | 改前/改后五项定值对照 | 血条色/素底牌/徽标/护甲图标/地台件五项前后差异可辨 | `sample_battle_screen_before_after.png` | +| 3 | 类型微光 provisional 明度档观感复核(原归本批承接,见 ㉘ 节) | 五组微光在样张渲染下分得清、看着不脏;复核结论回流 art-bible §4.2 微光色带行 | 同 1(样张含五组微光渲染) | + +- **红灯信号**:气质否决(压抑/抢焦/看台感不成立)、任一定值前后不可辨或微光混读即报缺陷回炉。 +- **结论回流**:呈现缺陷归待办清单登记新条目;目检通过=样张整体过闸,art-bible §1.4 与战斗表现.md 的过闸状态随之换代。 diff --git a/待办清单.md b/待办清单.md index 8c19de13..0b1cb2f6 100644 --- a/待办清单.md +++ b/待办清单.md @@ -17,6 +17,24 @@ **状态**:待执行 +#### 迭代 43 批后待裁三点——B 区高度对齐/名字行字号档位/换色常量退役(2026-10-30 登记,来源=批次移交) + +**实况**:证据=迭代 43 反哺点清单 1/8/10(已按吸收即死退役,git 历史可考)。①**B 区高度 270 vs 252**——battle.md 区表文 270、代码 252,18px 差异;样张按代码 252 出(样张反映实机)。②**站桩名字行 12px 档位归属**——standee_body.gd 名字行取 `UiKit.FS_CAPTION`(12px),art-bible §7.4 字号档位表下属「清单外 11–13px」。③**art-bible §4.1 换色合并残余三处**——`STAGE_BG` 换值(#3E342A→#3E362C)未执行;`STAND_STONE_RIM`(#C4AC84)仍被 board_cell_unit 口沿高光在役引用;`STAND_STONE_EDGE`(#5A4C3A)由地台缺位回退路径在役引用。 + +**缺口**:三点各差一次用户裁决——①B 区高度对齐方向(改实装=需求改动走写卡/改文档=battle.md 区表落 252 归文档批落文);②名字行 12px 提档 `FS_HINT`(14,与顺位徽标同款)或增补装饰 caption 在册面;③三常量彻底退役与否(涉实装件改指与 art-bible §4.1 登记句换代)。裁后各归其段。 + +**改动面**:文档+游戏代码 + +**状态**:待文档设计 + +#### 迭代 43 批后移交小件——能力清单补行+四色墨断言(2026-10-30 登记,来源=批次移交) + +**实况**:证据=迭代 43 反哺点清单 9/13(已按吸收即死退役,git 历史可考)。逐条:①**能力清单补行**——game/tests/README.md 能力清单无战斗一屏样张批 V5–V9 代表用例行(卡片成文早于清单 2026-10-29 改版定稿),归写卡段随下一写卡会话按 test-conventions §8.3 补行(能力=站桩呈现定值与素材绑定;代表用例=`game/tests/unit/presentation/standee_present_values_test.gd:_init`,真实入口=`UiKit.load_tex()`/`StandeeBody.name_line_probe()`),并同步覆盖域表「战斗表现.md」行。②**意图徽标四色墨补机检断言**——样张脚本 S1 文字对比为绘图用色值对表,意图徽标四色墨(对 PANEL_DATA 垫牌)未入 CHECKS;独立审计复算 4.97–5.62 全 ≥4.5 事实成立仅缺机检断言,`tools/render_sample_sheet_v3.py` CHECKS 补一条对表断言(values 全在册,零新增色)。 + +**改动面**:游戏代码+工具代码 + +**状态**:待执行 + #### 架构审查优化讨论——全库架构审计读数的逐条裁决与整改分批(2026-10-29 登记,来源=审计发现) **实况**:2026-10-29 全库架构静态审计完成,读数见 reports/审计-全库架构审查-2026-10-29.md(七节:总评/健康面/P0/P1/P2/待裁点/取证口径;零测试执行零引擎运行,全部结论带 文件:行号)。健康面已逐条核干净:Core 零 UI 八项判据全零命中、core 内 RNG 单点 100% 成立、字符串式信号连接全库 0 处、core 层零超长函数、19 表 ↔ 19 schema 一一对应、无循环 preload。问题集中在三条「写了没闸守」的纪律被实际破坏:①数值单一事实源被 18 处硬编码击穿,最危险两处是 `presentation/main.gd:787` 与 `:790` 把 `rap_refresh_cost=8` 与 `refresh_cap_per_round=2` 写死进提示文案(紧邻 783 行是正确读表的),表改文案不改、玩家直接受错误数字;另有 4 组代码自标「机制结构常量/产出约束」的字面量(`node_map_generator.gd:12` `MAX_WIDTH`、`action_economy.gd:14` `CHARGE_LAYER_CAP`、`board_data.gd:9` `SPAWN_AREA_CELLS`、`node_map_generator.gd:83-94` 域字面量)是否入表待裁。②`game/sim/` 与 `game/core/` 四组平行实现——扫雷推理引擎双份(`board_generator.gd` `measure_inferability` 族 vs `auto_player.gd` `_deduce` 族,输入集口径不同:前者含 safe_set oracle、后者 no-peek)、伤害掷点期望重算(`damage_probe.gd:196-201`)、档位排序与驱动循环双份(`level_autoplay.gd` vs `treasure_item_table.gd:44` 与 `battle_driver.gd:17`)、FakeDB 伪造表喂生成器——直接威胁「模拟读数 = 游戏真实数值」这一数值验证前提。③RNG 单点纪律在 core 外失守(sim 4 处/probe 1 处/tests 3 处自建 `RandomNumberGenerator`,均显式定种、确定性尚存),而 `static_scan.sh` 的 S1/S2 扫描面只含 `DIR_CORE` + `DIR_PRES`。守卫面另有三缺口:S8 是 9 文件显式清单(新增结算文件忘登记=静默不扫,缺位自检只防删改不防增)、S9 类型闸与 S13 质量闸扫描面止步于 core+data+presentation(sim/probe/tests 三层除 S11/S12 外零闸)、S13 三处豁免常态化到最大户文件(`battle_orchestrator`/`main.gd`/`tune_sim_controller`);另有四个 core 文件零测试点名(`attune_loadout`/`battle_fx_host`/`meta_state_store`/`slot_store`)。P2 级:`core/settlement/` 五段类直读写编排器私有成员 20+ 处(`oc._damage.*`/`oc._enemy_system.*`,GDScript 无编译期检查、改名静默断裂);架构文档三处漂移(`architecture.md:110` 登记的 `core/hero_ledger.gd` 盘上不存在且 `hero_ledger_test.gd:171` 显式断言它必须不存在、`:135` 行数过期、EC8 热重载门后 `ConfigDb.reload()` 零调用方且走 `load()` 拿不到磁盘新值);class_name 级双向依赖(`core/config_db` → `data/schemas/board_gen_table` → `core/board_data.SPAWN_AREA_CELLS`)与 `NODE_TYPES` 词表双份;`MetaProgression` 是唯一用 `get_node("/root/...")` 取依赖、唯一跨 Autoload 直调的单例。 @@ -169,23 +187,6 @@ **状态**:待美术设计(备选) -#### 战斗一屏样张 P0 未开工——界面成品是否过审的那把尺子还没建(2026-10-13 登记,来源=审计发现) - -**实况**:[美术圣经](design/art/art-bible.md) §7.1 明文写着"程序化占位=临时态,任何屏的终稿闸=§1.4 整屏样张过闸;占位态禁止跨里程碑"。而 [美术素材状态清单](design/art/art-status-checklist.md) 把「战斗一屏样张」这件最高优先级的素材标的是**未开始**——也就是说,**判定界面美术算不算过关的那把尺子到现在还没造出来**。2026-10-16 曾编入迭代 30 卡②(UI 呈现三卡批序位②),2026-10-17 用户裁定不满足「迭代=代码实现批」的开发条件、剔除回待设计(理由=样张交付物本身就是设计规格,正式字体与素材均未定稿;同日样张批开工已被用户终止)。v1.4 旧卡留 reports/需求卡片-战斗一屏样张批-2026-10-16.md 作素材,非已写卡状态,重启不得直接开工。Alpha 出口裁决:列入 Alpha 硬前置——站桩帧动画的定版前置与主角+三 Boss 重产都依赖它。 - -**2026-10-28 美术设计段闭合**:差的那轮「设计讨论→需求澄清→美术定稿」已完成并落文——样张即设计目标图,五张规格表(尺寸档/色板/明度档/字号档/素材清单)全定、样张构图与内容清单全定、验收判据清单全定、16 条待裁点全数清零(最后一条 B-1 色板第二道门口径经 2026-10-28 用户裁取乙案宽松口径);样张的产出手段与素材输入级别已定,样张开工门复判 PASS。原缺口三件的前两件(目标规格清单、屏内素材规格)由此闭合,第三件(重启须重新立卡)转为本条的下一动作。 - -关联文档清单: -- 美术线闭合凭据(art-bible 条款版本):[美术圣经](design/art/art-bible.md) v3.22(2026-10-28)——§1.4 样张产出手段与素材输入级别登记句、§2 世界底层两子带、§4.1 第二道门口径改写与色板转正/换色合并登记、§4.2 血条填充显式句与蓝族违例值退役、§6.1 舞台背景路径订正与近景地台独立件、§6.3 三关色板终值取值程序、§7.2 文字禁直接压地台、§7.4 顺位徽标不增列与字重重开钩子注销、§7.6(三) 氛围两派维持不统一、§8.2 护甲图标与地台件规格与棋盘小人 32px 源档终值、§8.4 方向集口径追认 -- 美术线设计轮定值与依据:2026-10-28 设计轮(过程稿已按「吸收即死」删除、不入库,结论已吸收进上一条,推导沿革见 commit 50702ea5 与 10d7c82b) -- 配套资产登记:[美术资源依赖清单](design/art/art-assets-checklist.md)(2026-10-28,§3.7 护甲类型图标三枚与 §4 舞台背景/地台件两行)· [素材路径分工约定](design/art/asset-path-map.md)(2026-10-28,`scene/` 子目录现役列) -- 相关文档:美术线(战斗一屏样张的验收标准归 [战斗表现](design/gdd/systems/战斗循环/战斗表现.md) 与 [美术圣经](design/art/art-bible.md) §1.4 共裁) -- 需求卡片:reports/需求卡片-战斗一屏样张批-2026-10-28.md(2026-10-28 重新立卡,十二节齐备,旧卡 v1.4 已作废;待编入迭代,编入后由编排段记「已编迭代 N」) - -**改动面**:美术素材 - -**状态**:已写卡+已编迭代 43 - #### UI 氛围层与九宫格切片观感修——光柱硬边与面板切片错位(2026-10-13 登记,来源=审计发现) **实况**:原两处,一处已修一处存续。①光柱硬边**已修**(2026-10-14 迭代 26 T4:`ui_kit.gd` 第 263 行起的光柱贴片改带内 alpha 0→0.05→0 三角过渡+纵向衰减上亮下暗,grilling Q7 裁连续 alpha 方案;LINEAR 白名单已随反哺入册 art-bible v3.14 §8.2)。②九宫格切片错位**存续**——结算屏与图例屏的面板边缘可见错位小方块,成因是九宫格切片参数与素材尺寸不匹配(仪式石框 258 字节小图按 12 像素切片、石板亮面板 314 字节按 16 像素切片,铺到四百多像素宽面板中段拉出错位),须先核素材尺寸能否撑住新切片值(border_stone/panel_stone 均 48×48),可能要重出素材,归「UI 贴图重构批」后续贴图批次。 @@ -315,7 +316,7 @@ **实况**:来源=playnote 用户试玩记录「UI 优化,第二第三关的棋盘看着太累了;不知道是因为亮度还是对比度的原因,看着非常费劲,非常不舒服」。2026-10-13 用户裁定:**这是需要做的**,且本就属版本标准的覆盖范围——[08-Alpha版本标准](design/gdd/08-Alpha版本标准.md)「五 · 表现」已新增「棋盘观感(第二 / 三关亮度与对比度)」行,标待做。**开工前须先定性(沿用既有裁决)**:是**素材轴**问题(棋盘瓦片与格面图标本身的明度与色相),还是 **UI 轴**问题(舞台底色与叠加层的对比关系)——两轴修法完全不同,定性错了等于白改一轮;该定性要求(原备忘 (e) 项)是本条的开工前置。2026-10-16 曾编入迭代 30 卡③(UI 呈现三卡批序位③),2026-10-17 用户裁定剔除回待设计(自身挂「素材轴/UI 轴」定性人闸+甲/乙〔recolor/远程生图重产〕素材裁点;若裁乙,其瓦片规格依赖战斗一屏样张批的目标规格清单产出)。v1.4 旧卡留 reports/需求卡片-二三关棋盘观感批-2026-10-16.md 作素材,非已写卡状态。与已完成注销的「呈现层残余 <4.5:1 文字位」分工:本条管**棋盘区域整体的观感**(亮度/对比度/费劲感,体感问题),彼条管**具体文字位的对比度读数**(机检可判硬指标),两条不同面不互相替代。Alpha 出口裁决:Alpha 必须,先做素材轴/UI 轴对照定性;出口=用户实机目检不再判「看着费劲」。 -**缺口**:还差「素材轴 / UI 轴」定性设计讨论与甲/乙素材裁点裁决;素材轴若走重产,还依赖战斗一屏样张批的目标规格清单产出。旧卡 v1.4(reports/需求卡片-二三关棋盘观感批-2026-10-16.md)在册但非已写卡状态,其前置未完成三件:①「素材轴 / UI 轴」定性未做,这是既有条款规定的开工前置;②甲(recolor 现瓦片)/乙(远程生图重产)素材裁点未裁;③若裁乙,瓦片规格压在样张批的目标规格清单上,而那份清单的前置正是上一条未完成的样张设计轮——本条第三项压在卡②身上。 +**缺口**:还差「素材轴 / UI 轴」定性设计讨论与甲/乙素材裁点裁决;素材轴若走重产,还依赖战斗一屏样张批的目标规格清单产出。旧卡 v1.4(reports/需求卡片-二三关棋盘观感批-2026-10-16.md)在册但非已写卡状态,其前置未完成三件:①「素材轴 / UI 轴」定性未做,这是既有条款规定的开工前置;②甲(recolor 现瓦片)/乙(远程生图重产)素材裁点未裁;③若裁乙,瓦片规格压在样张批的目标规格清单上——该清单已随战斗一屏样张批落定(art-bible v3.22 五张规格表,2026-10-30 合回)。 - 相关文档:[HUD框架](design/gdd/systems/表现与支撑/HUD框架.md)(UI 轴:舞台底与叠加层)+ [美术圣经](design/art/art-bible.md)(素材轴:瓦片与格面图标的明度色相)——定性前两方共裁 **改动面**:美术素材+游戏代码