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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

入轻闸默认段(ui_contrast 之后);轻闸 --quick 墙钟 363s → 405s(新探针约 40s),轻闸上限内。
2026-10-16 15:41:01 +08:00
DKChan c4fa65ef44 feat(迭代29 T3): L2 集成层建承载——integration/ 首个用例 + parity 收编为条件闸件
建 game/tests/integration/(此前只有章程句无实体):首个集成用例 save_rng_roundtrip_test.gd
=存档 ⇄ RNG 快照往返,17 条断言,跨 SaveManager(落盘+版本迁移链)× AdventureRunner(断点消费)
× RngService(续跑零跳号)× 停点态确定性。与 unit/core/breakpoint_resume_test 的分工:那件是单测
只验首战开板一致,本件验跨系统闭环——含「旧版本档经迁移链后断点仍可续玩」这一真实玩家路径。
并入 run_all manifest(27 套,零新机制)。
变异验证:把断点 rng_counter 改坏 → 精确命中「续玩取数号位 = 断点号位」断言见红。

tools/run_all_gates.sh 新增 11 号「回放确定性对拍」**条件闸件**:每次跑批都对 merge-base 做一遍
触面判定(data/tables/rng_service/save_manager/meta_progression/settlement/damage_math/
damage_controller/battle_orchestrator/adventure_monte_carlo),未触面 SKIP;触面也**不自动跑**——
对拍调的是 MC 脚本,属「跑批发起前须用户批准」红线,闸只负责把触面判定做一遍并显式要求批准
(批准后 PARITY_APPROVED=1 重跑),杜绝「该跑却没人记得」。指纹逻辑把 SKIP/NEED-APPROVAL 同记 skip,
两种未跑状态互变不算闸况变化。baseline.json 登记 11 闸条目(新增闸件否则会判「无基线」而红)。

README:目录布局增 integration/;新增「测试三层与承载目录」节(L1/L2/L3 各自的判什么/承载/入闸方式
与分层判据);integration 章程句由「将来落地」改为「已建承载」。
2026-10-16 15:20:25 +08:00
DKChan 853bd12baa docs(迭代29 T2): 术语订正与 CI 残留清除(机械面)
README:CI 残留 6 处全清——头注 CI 行改「门禁=本地闸」+无远端无 CI 声明、目录布局「CI 冒烟统一入口」
→「单元套件统一入口」、Running「CI 调用点」→「本地闸 02 闸调用点」、「CI 旁必须配外部超时」
→「本地闸必须配」、Static Scan「提交前双跑:本地+CI」→「提交前本地跑」、「## CI」整节(含 gdUnit4
安装说明)→ 改写为「## 本地闸(唯一验收门禁)」。
run_all.gd 头注 CI 残留 2 处清除(外部超时改本地闸、探针由 probe_gate.sh 调用)。
CLAUDE.md 单件直跑清单里 run_smoke.py 标注为「系统级断言面」并指路术语表。

术语:新增 README「术语(本项目内的唯一语义)」小节——冒烟=秒级存活检查/单元套件/场景探针/
集成用例四词各归其位,并显式点破两处历史遗留命名(run_smoke.py 与 game/smoke/ 名带 smoke,
实际承载的是系统级断言面与场景探针,判定看语义不看文件名)。「逻辑冒烟」全库清零。
README 套件计数按开工日读数订正为 26(example_test 退出生产 manifest)。
2026-10-16 15:11:17 +08:00
DKChan 8c82d3bf56 feat(迭代29 T1): 本地闸三硬闸落地——退出码/脚本错误扫描/断言数下限
①退出码为唯一权威判据:probe_gate.sh 八件探针(轻闸 4 + full 4)判定统一走 verdict 函数,
  退出码≠0 即红,PASS 串降级为附加判据(ui_click_probe 本就走退出码语义,签名标记传它自己的
  click_probe 串,不强加 PASS)。
②脚本错误扫描闸件 tools/error_scan.py(标记 import 自 run_smoke.py,禁第二份清单):
  probe_gate 逐探针段扫日志;run_all 侧因 --script 子进程的 stdout 管道恒空(OS.execute 在本机
  Godot/Windows 组合下拿不到输出,且 GUI 子系统 exe 的 stdout/stderr 句柄无效),改为整条命令
  交给系统命令解释器重定向落盘再读,退出码原样回传——引擎二进制取 *_console 版(GODOT_BIN 优先)。
③断言数下限:Kit.finish 在 checks==0 时返回专用退出码 2(不是 1——致命类套件期望 1,返回 1 会被
  expect 协议放过);run_all 汇总校验实跑套件数 == manifest 条目数。
④example_test.gd 退出生产 manifest(协议活样板,文件保留;同类先例 fog_lantern 摘除)。

变异验证(三反例 T0 判绿、T1 后全部判红):零断言套件 exit=2 判红/脚本错误套件命中 SCRIPT ERROR
判红/探针打印 PASS 后 quit(1) 判红「PASS 串不抵」。

本卡附带裁决落地(均已用户裁准):
· fx_grant_gp 补进行来源断言豁免表(grant_segment 的专长 GP 入账行无棋盘来源格,每局触发 7 次
  断言失败却因脚本错误不改退出码长期漏过;迭代 21 同款修过 fx_reveal)。
· manifest 增 negative 字段,仅 reward_dangling_treasure 一件(坏表是其测试目标,错误扫描误伤)。
· config_db_test 的 rows 定型数组赋值改 rows.assign——原写法触发 Invalid assignment 中断整个函数,
  敌人表行集三条纪律 10 条断言从未执行过(31 处 check 实跑 21 条);修复后 26 条全跑,其中两条正向
  断言见红,根因是夹具缺 depth-0 锚行(validate 的 anchor 规则),补锚行后全绿。
· system_contracts_test 的 RngStub/UnitContainerStub 空桩换真实实例(定型成员赋值报 type 空)。
2026-10-16 15:08:13 +08:00
DKChan 60449941d7 merge: 08 Alpha版本标准状态刷新批 v1.7 入库(worktree g-plan2-alpha08-20261016)——立绘清晰度方向随2026-10-14用户裁结案(维持像素风·精细手绘像素·不回高清,未决项七减为六)+战斗一屏样张/棋盘观感编入迭代30序位注记+地形变异两行贫矿脉屏蔽注记+06立绘条子问题二与状态行连带换代;纯文档合入,三闸全绿 2026-10-16 06:01:36 +08:00
DKChan 2a218bedd6 docs(08): 状态刷新批 v1.7(2026-10-16 用户令)——08 三处事实回填:①「五 · 表现」立绘清晰度回退评估行 待裁→待做,方向已裁(2026-10-14 用户裁「还是像素风格立绘、但不要太过于像素」=精细手绘像素、不回退高清图,裁决录=美术审计-cursor会话存档 §2.2),未决项七项减为六项重编号;②「五 · 表现」战斗一屏样张、棋盘观感两行加编入注记(2026-10-16 用户令编入迭代 30 序位②③,状态维持待做);③「一 · 排雷循环」「二 · 内容量」地形变异两行加贫矿脉屏蔽注记(2026-10-16 屏蔽删行后 variation.tres 回 region 六行,机制代码保留,重建设计加行即恢复,设计语义面反哺待裁)。连带 06 立绘条两处随裁换代(子问题二叙述+状态行:方向已裁、08 未决项指路改注、余=按新口径重产+大小比例复核;art-bible/character-design 权威面反哺另批待裁)。文头状态行 v1.6→v1.7。条目集合除未决项销项外零增删。三闸全绿(gdd_lint 本批 2 文件 0 不通过/doc_link 1216 链接死链 0/doc_term --strict 疑似现行 0) 2026-10-16 05:59:54 +08:00
DKChan 272cc1ad58 docs(迭代): 迭代 30 编入 UI 呈现三卡批(2026-10-16 用户令)——三卡经「建卡→grilling→按推荐方案代拍板」三步全流程:①未开格类型徽章卡(渲染路线丙=shader 为主+程序兜底、明度档 provisional、开关丙、静态态、两套色带不并入)②战斗一屏样张卡(丙=样张即设计目标图、仅战斗屏、引擎实拍+shader 乙为主半天试验件前置、字重丙、死指涉甲、双口径乙两闸分跑)③二三关棋盘观感卡(L2/L3 同批甲、定性人闸走 06 既裁、素材轴甲/乙裁点挂 T1 出口呈报硬步骤)。grilling 翻案账照卡内审查记录落档:整屏闸机检实存(本批定性=闸后补跑)、五组色相既裁不再问、③卡 Q1 依 06:449 既裁撤销、目检「不阻塞+否决回补」对齐 CLAUDE.md 既裁。roadmap 迭代 30 表行新增(迭代内串行①→②→③、禁三线并行=汇聚文件冲突、合计 ≈11–14d 按批次分会话逐个 U0)、原空位行改迭代 31+(M4 禁令原文保留)、当前位置与近期主战场两处同步;06 三条状态行加编入注记(徽章条 2026-10-05 过期读数标注批内刷新义务)。三闸:doc_link 死链 0、doc_term 疑似现行 0(--strict exit 0)、gdd_lint 本批文件全过——01-核心循环 R5 红灯为并行会话提交 9846a29f 既有问题,非本批引入,另报 2026-10-16 05:01:58 +08:00
DKChan 698d864dcc docs(迭代29 T0): 开工日基线冻结与三反例缺陷坐实
基线(master 752c9a0a,worktree 同点实测):冒烟 1127/0、run_all 27 套、在闸探针 9(轻闸4+click1+full4)、
墙钟 run_all 34s/smoke 71s/轻闸 quick 363s、存量红仅 09 静态扫描 exit=1(S10 文件头 127 处)。

T0-① 三反例全部判绿=三硬闸缺陷坐实(非推断):
a 零断言套件 → run_all PASS;b SCRIPT ERROR 套件 → run_all PASS(错误未中断后续断言,仅外部扫描可抓);
c 打印 PASS 后 quit(1) 的探针 → probe_gate 报「全绿」。三靶子验后已还原。

T0-④ 复核 F1'-F11' 全部 file:line 无漂移(core 23 文件、7 个真零指名、status_container 2 指名、
呈现层 5 件零指名、smoke 29 .gd/12 .tscn 均复核)。
2026-10-16 05:00:06 +08:00
DKChan 55c9d4e718 merge: 主菜单副标题删除批入库(三提交, worktree g-plan2-menusub-20261016) 2026-10-16 04:48:46 +08:00
DKChan dac9a94bd1 chore(冒烟): 菜单 golden 基线合并后重刷——并入 master 调试入口批(752c9a0a)后基线在合并代码上重采(画面含该批恢复的调试角标+本批副标题删除双成因),render_gate 复验 changed=0.00% 全绿 2026-10-16 04:37:06 +08:00
DKChan 5af5104437 Merge branch 'master' into menusub-20261016
# Conflicts:
#	game/smoke/shot_probe.gd
2026-10-16 04:35:22 +08:00
DKChan 752c9a0aa5 merge: 调试入口修正批入库——boot 菜单优先+开始屏右下角「调试」角标恢复(worktree g-plan2-dbgentry-20261016)
用户 F5 实测否决上一批「启动即开」:浮窗 boot 自动开把开始屏盖成调试面板,且菜单层零入口
(关掉后无法再开)。修正三问:入口=开始屏右下角角标+对局中两屏角标(角标实现自 git 历史
40fb4a5c^ 恢复);触发=点击;效果=浮窗悬浮于菜单之上可关。_debug_entry 门控保留(发布前
删 main.gd:219 时角标可见性同批失效)。探针/断言四处换代(smoke V2f/V1a、click_probe、
tune_probe ① 角标点击路径、shot_probe 删死代码)。首轮冒烟抓两处自伤并修复(返回键漏
dbgbtn 致层序红、角标可见性赋值早于门控落定)。全量闸验收通过;合并后主区冒烟兜底。
2026-10-16 04:33:25 +08:00
DKChan 9846a29f4c fix(呈现): 主菜单副标题「扫雷的因 · 逐行兑现的果」整个删除(2026-10-16 用户令——无意义标语,玩家可见面禁扫雷字眼)
- ui_assembler.gd: 副标题 label 两行删除(标题与分隔线之间;局部变量无外部依赖,VBox 回流)
- shot_probe.gd: menu_sub 文字锚/自检腿退役(menu_title 保留)+ 菜单段头部历史注记换代
- shot_checker.py: 菜单·副标题 box/presence 两断言腿同撤(_meta 记录端随 pair 列表自断),不重锚
- golden: menu_boot.png 基线换代——触发原因=副标题件删除画面少一行字(呈现类批内换代,Q6 口径;提交说明强制成因即本条)
- 文档四面同步: 01-核心循环 节标题改「一场战斗的流程」(口号句无承载价值,正文已释流程);HUD框架 双舞台段删口号句保留因果论点并句;教学引导 P0 最小集合候选删「归因提示」项;07 ㉗ 目检判据删副标题字样
- 验证: shot_probe 问题=0;render_gate 全绿(shot_checker PASS / 棋盘三屏 golden OK / 菜单 golden changed=0.00% / 残留 Godot=0);改动面 7 文件(含基线 PNG)
2026-10-16 04:33:17 +08:00
DKChan 849e4b1cd2 docs(卡片): 测试分层与门禁语义修正批升 v2.0(三轮复查结论落文,U0 门只欠发令)
grilling 两轮+一轮只读深挖后一次性升版。首轮十一问按推荐全裁(L2 承载+2 例/parity 收编为条件闸件以守「MC 无数值改动零跑」红线/CI timeout 前提已死改铸为轻闸墙钟预算/integration 并入 run_all manifest/S9 存量豁免维持但新写测试件全类型标注〔升契约 8〕/golden 显式重制+呈报+复闸/smoke 两名不改名只加注);第二轮 N1=§2 改指针(事实面归 architecture.md 测试域三张表,禁双载体漂移)、N2=T6 收 S3 路径修正+零命中自检(+0.25d)。

事实订正四处:PASS 串判定面实为 8 件探针(非 4);game/smoke 实为 29 个 .gd(非 38);T5 的 status_container 不是零覆盖(2 单测已指名)→ 换 board_generator;README「ci-removal 批已改写门禁节」前提不成立(分支未合入)→ CI 残留 8 处改由本批 T2 清除。死引用订正:CLAUDE.md 旧节号(文件已压到 71 行)、tests.yml(已删)、golden_compare.py 行号。新增义务:批末回写 architecture.md 三硬闸矩阵与 S 表。估时 T0-T8≈6.0-7.5d,软盒 7d。active.md 快照两行同步+状态记录 504。文档三闸全绿。
2026-10-16 04:24:29 +08:00
DKChan bf65b49331 fix(调试入口): boot 菜单优先+开始屏右下角调试角标恢复——用户实测否决「启动即开」
用户 F5 实测:浮窗 boot 自动开把开始屏盖成调试面板(640×约700 居中面板盖掉大半个屏),
且菜单层没有任何浮窗入口(iter18 迁宿主两屏的理由=启动即开,已不成立)——关掉浮窗后
菜单上无法再开。用户令查三问(入口在哪/何时触发/触发后效果)后修正:

- main.gd:_ready 删 boot 自动开浮窗(_debug_entry 门控保留);恢复菜单角标接线
  (pressed→_on_debug_badge_pressed);可见性赋值挪到门控落定之后(原在 _build_ui
  读到初始 false——首跑冒烟抓出)
- ui_assembler:恢复右下角「调试」角标(git 历史 40fb4a5c^ 原实现:PRESET_BOTTOM_RIGHT
  16px 角距+FS_HINT+豁免宽度基准)+ 返回键补 dbgbtn(首跑漏了返回键致 menu_screen
  句柄 null、_build_ui 中断、V1c 层序红——冒烟抓出)
- scenes/menu_screen.gd:暴露 dbgbtn 句柄
- debug_overlay.gd:desc 文案改三处入口说明(开始屏右下角/战斗屏 HUD/地图屏角标)
- 探针/断言四处换代:smoke V2f 改「boot 不开浮窗+菜单角标可见」、V1a 收回严格判据;
  click_probe boot 检查反转+角标检查翻转为缺失才红+删浮窗恢复断言;tune_probe ① 改
  角标真实点击开窗路径;shot_probe 删浮窗归一段(已成死代码)
2026-10-16 04:21:49 +08:00
DKChan aad2999aba chore(zcode): 移除 .zcode 工具配置并更新忽略规则
删除 .zcode 下的 hooks 与 plans 配置,将 .zcode/ 和
.zcodeignore 加入 .gitignore;同时重写试玩问题记录文档,
用新条目替换垂直切片 v1 的旧内容。
2026-10-16 04:14:23 +08:00