From 75fafc39654b3fff485307cf3fc61ae6ebb72e1a Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Tue, 20 Oct 2026 02:07:39 +0800 Subject: [PATCH] =?UTF-8?q?docs(qa=E7=9B=AE=E5=BD=95=E9=80=80=E5=BD=B9):?= =?UTF-8?q?=20design/qa/=20=E6=B8=85=E7=A9=BA=E5=88=A0=E9=99=A4=EF=BC=8C?= =?UTF-8?q?=E5=9B=9B=E8=B7=AF=E5=88=86=E6=B5=81=EF=BC=8B=C2=A711=20?= =?UTF-8?q?=E7=AB=8B=E6=8E=A5=E6=94=B6=E6=96=B9=E6=9D=A1=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 40 张取证照与同名对比报告 → game/tests/evidence/ui-audit-2026-10-06/(该目录既有章程「人工测试证据」,目录根新增 .gdignore 令 Godot 整目录跳过导入,图不生成 .import 边车也不进导出包;parity/anchor.json 走文件系统路径读取不受影响) - 有接收方的两份审计(代码术语审计→06:546+迭代31 卡①/测试审计→测试分层卡片)平移 design/research/;iter27-探针迁移对照(T1 未施工=活交付物)迁 reports/,reports/README 放什么表补一行交付物类型 - 已核销的迭代18-实机目检总清单(2026-10-14 十八项全过)删除,顺带清掉其内 4 条指向 8e02dcf0 已删件的回指 - doc-conventions §11:暂存地唯一归 design/research/,验证凭据不归文档目录;新增「落档必写接收方」一行——写不出接收方的不落文件,内容在会话里交付 - tools/balance_verifier.py 报告与原始数据改落 sim-data/(QA_DIR→READINGS_DIR) - 活指针 13 处改判:AGENTS.md:22/30 与 Project Layout game 行、06:546、07:103、career 卡片×4、art-bible §8.2 L490 与 生涯.md:81 两处 8e02dcf0 遗留死指涉、game/tests/README 分级表与台账行、reports/README - 结构闸白名单三处同批收口:IMAGE_PREFIXES 去 design/qa/ 加 game/tests/evidence/、DESIGN_SUBDIRS 去 qa、RETIRED 加 design/qa(目录复活即 FAIL) - .qoder 技能 doc-consistency-check 两处指路改判(harness 配置不入 git,主区直接改) 单件试跑全绿:gdd_lint 10/10、doc_link --strict 死链 0、doc_term --strict 疑似现行 0、pipeline_gate 63 条目/21 卡、repo_structure_audit PASS。 本批 diff 触及 game/ 路径,合回需全量档回执(含代码域测试),待用户点名。 --- AGENTS.md | 6 +- design/art/art-bible.md | 2 +- design/dev/doc-conventions.md | 3 +- design/gdd/06-待办清单.md | 2 +- design/gdd/07-体验验证清单.md | 2 +- design/gdd/systems/跨局循环/生涯.md | 2 +- design/qa/迭代18-实机目检总清单-2026-10-07.md | 52 ------------------ .../代码术语审计报告-2026-10-18.md | 0 .../测试审计-单测与验收门禁标准-2026-10-15.md | 0 .../需求卡片-专长实装批-2026-10-11.md | 2 +- ...片-启动装配与生命周期验收补全批-2026-10-15.md | 2 +- .../需求卡片-敌人表内容修批-2026-10-13.md | 2 +- ...‚卡片-测试分层与门禁语义修正批-2026-10-15.md | 2 +- game/tests/README.md | 4 +- game/tests/evidence/.gdignore | 0 game/tests/evidence/README.md | 17 ++++++ .../ui-audit-2026-10-06/demo/_map_bottom.png | Bin .../ui-audit-2026-10-06/demo/demo_1_start.png | Bin .../ui-audit-2026-10-06/demo/demo_2_camp.png | Bin .../demo/demo_3_settings.png | Bin .../ui-audit-2026-10-06/demo/demo_4_map.png | Bin .../demo/demo_5_battle.png | Bin .../ui-audit-2026-10-06/demo/demo_6_bonus.png | Bin .../ui-audit-2026-10-06/demo/demo_7_shop.png | Bin .../demo/demo_8_end_defeat.png | Bin .../demo/demo_8_end_victory.png | Bin .../demo/raw/raw_1_start.png | Bin .../demo/raw/raw_2_camp.png | Bin .../demo/raw/raw_3_settings.png | Bin .../demo/raw/raw_4_map.png | Bin .../demo/raw/raw_5_battle.png | Bin .../demo/raw/raw_6_bonus.png | Bin .../demo/raw/raw_7_shop.png | Bin .../demo/raw/raw_8_end_defeat.png | Bin .../demo/raw/raw_8_end_victory.png | Bin .../pairs/pair_1_start.png | Bin .../ui-audit-2026-10-06/pairs/pair_2_camp.png | Bin .../pairs/pair_3_settings.png | Bin .../ui-audit-2026-10-06/pairs/pair_4_map.png | Bin .../pairs/pair_5_battle.png | Bin .../pairs/pair_6_bonus.png | Bin .../ui-audit-2026-10-06/pairs/pair_7_shop.png | Bin .../pairs/pair_8_end_defeat.png | Bin .../pairs/pair_8_end_victory.png | Bin .../real/real_10_legend.png | Bin .../real/real_11_confirm.png | Bin .../ui-audit-2026-10-06/real/real_1_start.png | Bin .../ui-audit-2026-10-06/real/real_2_camp.png | Bin .../real/real_3_settings.png | Bin .../ui-audit-2026-10-06/real/real_4_map.png | Bin .../real/real_5_battle.png | Bin .../ui-audit-2026-10-06/real/real_6_bonus.png | Bin .../ui-audit-2026-10-06/real/real_7_shop.png | Bin .../real/real_8_end_defeat.png | Bin .../real/real_8_end_victory.png | Bin .../ui-audit-2026-10-06/real/real_9_debug.png | Bin .../ui-audit-vs-demo-2026-10-06.md | 0 reports/README.md | 1 + .../iter27-探针迁移对照-2026-10-14.md | 0 tools/balance_verifier.py | 11 ++-- tools/repo_structure_audit.py | 8 +-- 61 files changed, 43 insertions(+), 75 deletions(-) delete mode 100644 design/qa/迭代18-实机目检总清单-2026-10-07.md rename design/{qa => research}/代码术语审计报告-2026-10-18.md (100%) rename design/{qa => research}/测试审计-单测与验收门禁标准-2026-10-15.md (100%) create mode 100644 game/tests/evidence/.gdignore rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/_map_bottom.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_1_start.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_2_camp.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_3_settings.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_4_map.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_5_battle.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_6_bonus.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_7_shop.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_8_end_defeat.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/demo_8_end_victory.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_1_start.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_2_camp.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_3_settings.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_4_map.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_5_battle.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_6_bonus.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_7_shop.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_8_end_defeat.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/demo/raw/raw_8_end_victory.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_1_start.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_2_camp.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_3_settings.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_4_map.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_5_battle.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_6_bonus.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_7_shop.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_8_end_defeat.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/pairs/pair_8_end_victory.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_10_legend.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_11_confirm.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_1_start.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_2_camp.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_3_settings.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_4_map.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_5_battle.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_6_bonus.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_7_shop.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_8_end_defeat.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_8_end_victory.png (100%) rename {design/qa => game/tests/evidence}/ui-audit-2026-10-06/real/real_9_debug.png (100%) rename {design/qa => game/tests/evidence/ui-audit-2026-10-06}/ui-audit-vs-demo-2026-10-06.md (100%) rename {design/qa => reports}/iter27-探针迁移对照-2026-10-14.md (100%) diff --git a/AGENTS.md b/AGENTS.md index 48f65ded..2ff6b21c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,7 +19,7 @@ - **交付前验收 = 跑 `tools/run_all_gates.sh`,按本批改动域选档(`--code` 只跑代码域/`--docs` 只跑文档域/不带参数=两域全量),所选域全绿才合回 master**——它是全部验证闸的唯一入口与唯一清单,**域划分也只写在它这一个地方**,闸件增减与分域调整都只改它,文档禁另列清单。一次改动同批混触 `game/` 与文档面时跑全量档。跑完写回执 `game/tests/.gates/receipt.json`(含 `domain` 字段),合回时由 worktree-guard 按 diff 路径推出该验哪个域再校验回执(缺回执/quick 模式/回执 commit ≠ HEAD/域不覆盖本次改动/含新增红,五况一律拦截) - 单件直跑(调试期最窄确认用,**不构成验收**):系统级断言面 `python tools/run_smoke.py`(名带 smoke 但不止存活检查,术语见 `game/tests/README.md`)· 场景探针 `…console.exe --headless --path . res://smoke/ui_probe.tscn` · 单元 `… --script res://tests/run_all.gd` - 调参批量:`--script res://smoke/adventure_monte_carlo.gd`(全冒险期望)· `res://smoke/reward_expectation.gd`(奖励期望);通关率/难度类测量一律走全冒险 -- 数值验证:`python tools/balance_verifier.py`(采集端 `res://smoke/verifier_batch.gd`,报告落 `design/qa/`) +- 数值验证:`python tools/balance_verifier.py`(采集端 `res://smoke/verifier_batch.gd`,报告与原始数据落 `sim-data/`) - 熵增闸(新类别 = 同批修订 Project Layout + 白名单):`python tools/repo_structure_audit.py` ## Project Layout @@ -27,9 +27,9 @@ - `design/gdd/` — 现行设计文档树(根索引 `02-系统清单.md`,文档增删必须同步;`gdd/ux/` 战斗画面与交互规格) - `design/art/` — 美术纯文档(圣经/清单/提示词卡 + references/);评估调研归 `design/research/`;不放图片 - `design/dev/` — 工程规范(五份规约 + architecture + engine-reference) -- `design/qa/` — 验证报告 + QA 呈现产物图;`design/research/` — 调研/提案/评估/历史验收 +- `design/research/` — 调研/提案/评估/历史验收(中间文档唯一暂存地,入内文件到期即死);`design/qa/` 已退役,验证取证归 `game/tests/evidence/` - `artwork/` — 在途图像素材唯一工作区(文档归文档/在途图归一处/终稿归游戏);整目录不入 git(.gitignore 强制),收口归档 `archive/` -- `game/assets/art/` — 已验收终稿(入包被游戏加载);`game/` — 游戏工程本体(代码 + smoke/ 冒烟 + tests/ 单元集成) +- `game/assets/art/` — 已验收终稿(入包被游戏加载);`game/` — 游戏工程本体(代码 + smoke/ 冒烟 + tests/ 单元集成 + tests/evidence/ 验证取证照,该目录 `.gdignore` 令引擎跳过导入不入包) - `sim-data/` — 机器读数据产物;数据件不入 git(入库例外 = README+analyze.py+growth_model.py);MC 锚与读数常驻留盘,无数值调整禁重跑 - `tools/` — python 工具脚本;`archive/` — 收口归档 zip(gitignored) - `reports/` — 迭代批产出物(实现报告/代拍板追认单/GDD 反哺点清单);**实现批唯一可写目录**,只放 .md,不是事实源(细则见 `reports/README.md`) diff --git a/design/art/art-bible.md b/design/art/art-bible.md index 535becf5..c1b5fb4b 100644 --- a/design/art/art-bible.md +++ b/design/art/art-bible.md @@ -487,7 +487,7 @@ - **显示档登记例外(2026-10-06 UI 设计对齐批 P6 甲——64 源 0.5×,待素材批消除)**:柜台四枚 `icon_forge/workshop/atlas/keystone`(64×64 源)显示档统一 **32px = 0.5×**;状态九枚(32×32 源)mini(站桩)档 **16px = 0.5×**。两处均系「显示尺寸侧唯一可调、素材一字节禁改」红线下的人工检整数半倍档,登记为**待消除例外**——素材批出 32px 源后回归 1×。常规档显示一律 1×(状态九枚 32px、手绘十枚 20px/40px 双档、BCard 图标槽 40px=2×)。 - **乙类·角色与单位精灵**(有机形体、非文字):允许运行时非整数倍缩放(NEAREST 过滤不变),容忍轻度像素宽窄不均;判据 = 实机目检,可感不适即回整数档。乙类今后免逐案豁免(豁免蔓延断根)。 - **站桩立绘槽位=高定宽随(2026-10-04 原型审计教训落规)**:立绘/精灵槽位只定「高度的整数倍档」,宽度随源图宽高比自适应——**禁止把全部立绘塞进统一方框强拉**(纵横倍率必须恒等)。实例=UI 原型 88×92 方框把 23×48 地精源横拉 3.83×/纵拉 1.92×、26×48 熊地精 3.38×/1.92× 压扁发花,46×48 主角近方恰等比故独活——方框是按主角比例定的,窄条生物(细长本体裁掉透明边)进主角的框必变形。乙类的非整数豁免只覆盖**等比**缩放,不含纵横异倍变形。 - - **1920×1080 档策略(2026-09-30 三裁决案甲落定——三案呈报见 design/qa/m3-iter9-t8-rulings-2026-09-30.md)**:全局等比(stretch=canvas_items+aspect **keep**)——16:10 设计在 16:9 窗口=等比 1.35×+左右黑边各 ~96px,构图与 1280×800 基准档完全一致(逻辑布局 1920/1280 逐键一致实测);甲类 1.35 非整数缩放例外注记:轻度宽窄不均系本档位接受代价(像素游戏 shipped 常态),实机目检可感不适→回乙案(1920 独立 2× 基准)重议;乙类同前款。 + - **1920×1080 档策略(2026-09-30 三裁决案甲落定——三案呈报原件已随中间文档退役,删除批见 commit 8e02dcf0)**:全局等比(stretch=canvas_items+aspect **keep**)——16:10 设计在 16:9 窗口=等比 1.35×+左右黑边各 ~96px,构图与 1280×800 基准档完全一致(逻辑布局 1920/1280 逐键一致实测);甲类 1.35 非整数缩放例外注记:轻度宽窄不均系本档位接受代价(像素游戏 shipped 常态),实机目检可感不适→回乙案(1920 独立 2× 基准)重议;乙类同前款。 - **画布基准(2026-09-23 用户暂定值)**: - **主角人设原图 = 48×72**(1× 基准,暂定;与站姿降采样可读性验证一致); - **主角战斗状态图(含 B 区站桩侧向)= 48×72**(同上暂定;v1.9 待决注记「主角立绘档空缺」由此完成); diff --git a/design/dev/doc-conventions.md b/design/dev/doc-conventions.md index b0072705..5ccc1b64 100644 --- a/design/dev/doc-conventions.md +++ b/design/dev/doc-conventions.md @@ -117,7 +117,8 @@ | 删除不留死链 | 中间文档删除后,任何现行文档禁止再留指向它的文件路径;改指结论或提交号 | | sim-data 白名单 | 只留 README、日志、分析工具 .py、现行 MC 对拍锚、设计文档 md;可再生原始数据不入库 | | 出口清理项 | 每迭代出口检查单必含:本迭代中间产物逐份核对(结论已吸收、未决已迁移)后删除 | -| 暂存地非档案库 | `design/research/` 与 `design/qa/` 是中间文档暂存地,入内文件默认到期即死 | +| 暂存地非档案库 | `design/research/` 是中间文档的唯一暂存地,入内文件默认到期即死;验证用的截图形凭据与它的对比报告不属文档,落 `game/tests/evidence/`(见该目录 README) | +| 落档必写接收方 | 新报告落档时头部必须写明接收方——`06-待办清单.md` 第几条,或哪张需求卡片。写不出接收方的不落文件,内容在会话里交付即可 | | 迭代实现报告 | 实现批收口的迭代级报告(各卡状态/代拍板追认单/GDD 反哺点清单),属中间文档,**落 `reports/` 不落 `design/`**(2026-10-17 用户裁:实现批禁写 `design/`,`reports/` 是其唯一可写目录):反哺点裁决落文吸收后按「证据只留最新」退役 | | 证据只留最新 | 测试证据只保留最新一次迭代或最新一轮同类审计版本;新证据落位后同批删上一份;待人清单过人闸后同规退役 | diff --git a/design/gdd/06-待办清单.md b/design/gdd/06-待办清单.md index c45e60cd..9ebca0d6 100644 --- a/design/gdd/06-待办清单.md +++ b/design/gdd/06-待办清单.md @@ -543,7 +543,7 @@ #### 代码术语刷新批——禁用词全库清扫+flag→seal 标识符重命名(2026-10-18 登记,来源=会话提及,设计面=工程直入) -**现状**:2026-10-18 用户裁定三组术语刷新(记忆 `project-terminology-rulings-20261018.md`):①GP 是唯一正式命名,「金币」系 AI 噪音全库禁用;②「插旗」全库禁用,正式动作名=封印,「旗」概念不存在;③代码英文标识符 flag_* 全换 seal_*。另「雷格」「惩罚格」2026-10-11 已裁退役→危险格,代码域尚未执行。审计报告(`design/qa/代码术语审计报告-2026-10-18.md`)实查:game/ 代码域实测读数(2026-10-18 需求卡片 v1.4 复核;口径=区分大小写逐处计数,命令见卡片 §2):含 `flag` 的文件 57 个(.gd 53 + .tres 4)共 617 处,剔除 `size_flags_*` 70 处(19 个文件)与 `_fatal_flag` 4 处后**净待改 543 处/42 个文件**;中文禁用词 金币 39 处、插旗 62 处、雷格 75 处、惩罚格 1 处、「旗」含复合词共 376 处。涉及核心逻辑(minesweeper_rules.gd 净 59、battle_orchestrator.gd 33、grant_segment.gd 38)、数据表(feats.tres 15、settlement.tres、action_economy.tres、reward.tres、treasure_items.tres)、呈现层(board_view.gd 23、battle_end_overlay.gd 11、shop_overlay_view.gd、legend_overlay.gd)与冒烟测试(smoke_all.gd 单文件净 156 处=全集 29%)。订正说明:审计报告原记「game/ 约 757 处(flag_ 314 处/29 个 .gd;金币 116/插旗 210/雷格 109)」在现行代码上两种口径都复现不出:中文三词的读数属全库面(全库实测 金币 381/插旗 600/雷格 394 处),与本条的 game/ 范围混记;flag 侧则低估约一倍。逐文件读数以需求卡片 §2 为准。文档面(design/)由另批处理,本条只覆盖 game/ 代码域。 +**现状**:2026-10-18 用户裁定三组术语刷新(记忆 `project-terminology-rulings-20261018.md`):①GP 是唯一正式命名,「金币」系 AI 噪音全库禁用;②「插旗」全库禁用,正式动作名=封印,「旗」概念不存在;③代码英文标识符 flag_* 全换 seal_*。另「雷格」「惩罚格」2026-10-11 已裁退役→危险格,代码域尚未执行。审计报告(`design/research/代码术语审计报告-2026-10-18.md`)实查:game/ 代码域实测读数(2026-10-18 需求卡片 v1.4 复核;口径=区分大小写逐处计数,命令见卡片 §2):含 `flag` 的文件 57 个(.gd 53 + .tres 4)共 617 处,剔除 `size_flags_*` 70 处(19 个文件)与 `_fatal_flag` 4 处后**净待改 543 处/42 个文件**;中文禁用词 金币 39 处、插旗 62 处、雷格 75 处、惩罚格 1 处、「旗」含复合词共 376 处。涉及核心逻辑(minesweeper_rules.gd 净 59、battle_orchestrator.gd 33、grant_segment.gd 38)、数据表(feats.tres 15、settlement.tres、action_economy.tres、reward.tres、treasure_items.tres)、呈现层(board_view.gd 23、battle_end_overlay.gd 11、shop_overlay_view.gd、legend_overlay.gd)与冒烟测试(smoke_all.gd 单文件净 156 处=全集 29%)。订正说明:审计报告原记「game/ 约 757 处(flag_ 314 处/29 个 .gd;金币 116/插旗 210/雷格 109)」在现行代码上两种口径都复现不出:中文三词的读数属全库面(全库实测 金币 381/插旗 600/雷格 394 处),与本条的 game/ 范围混记;flag 侧则低估约一倍。逐文件读数以需求卡片 §2 为准。文档面(design/)由另批处理,本条只覆盖 game/ 代码域。 **归属**:全工程(排雷循环/战斗循环/冒险循环/呈现层/数据表/冒烟测试均触及;主责=术语表裁定执行) diff --git a/design/gdd/07-体验验证清单.md b/design/gdd/07-体验验证清单.md index 9f9dd454..1d758eae 100644 --- a/design/gdd/07-体验验证清单.md +++ b/design/gdd/07-体验验证清单.md @@ -100,7 +100,7 @@ **局后随手记**(一句话即可,事后对日志):每局大概掉了多少血 / 有没有整轮一点血没掉的轮次 / 通关与否 / 有没有"这局特别顺/特别倒霉"的体感(种子体感核对用)。 -**结果回流**:日志取数 → 真人修正系数 k(真人整关承伤中位 ÷ 模拟完美档中位;**正常预期 k>0.5、预警线 k<0.3**——2026-10-03 用户裁)并入 T19 标定报告(落 design/qa/,换代 2026-09-19 判读报告为现行锚);①–⑤ 体感按各条目的回流位分流。 +**结果回流**:日志取数 → 真人修正系数 k(真人整关承伤中位 ÷ 模拟完美档中位;**正常预期 k>0.5、预警线 k<0.3**——2026-10-03 用户裁)并入 T19 标定报告(落 design/research/,换代 2026-09-19 判读报告为现行锚);①–⑤ 体感按各条目的回流位分流。 **2026-10-01 数值修复批后试玩注记**(master 4b4a011 起的正式标定局):本批已落 hero 血池 20→26 / 直伤雷三行 4/5/5→6/8/8 / L1 系敌 atk 2→1(轨迹与读数见 numfix 报告(已退役,git 历史可查))。试玩时对号新增两点: 1. **踩雷疼痛感**(本批主刀):「踩很多雷还是轻松活」应是过去式——单雷 6-8 直伤、两三连雷应明显肉疼;若仍无痛感=回调信号,记一句话即可; diff --git a/design/gdd/systems/跨局循环/生涯.md b/design/gdd/systems/跨局循环/生涯.md index baabc742..1ed97511 100644 --- a/design/gdd/systems/跨局循环/生涯.md +++ b/design/gdd/systems/跨局循环/生涯.md @@ -78,7 +78,7 @@ | 期 | 内容 | 前置 | 建议窗口(候选) | |---|---|---|---| -| 期一 | 跨局汇总页 + 主菜单生涯入口落位。总局数/通关局数两个终身计数域随该批做存档 schema 迁移——**✅ 已实装(2026-10-07 迭代 18 卡④)**:汇总段六类九项+营地与系统组生涯钮+存档 v6 两终身计数域〔v5 升 v6 幂等迁移〕;闸读数与代拍板追认单见 design/qa/iter18-career-exit-report-2026-10-07.md | 提纲评审通过。实装批前置义务 = 对齐迭代 16 UI 批后的现行基线:`FS_*` 六档字号 / `TG_*` 语义色 / `BUTTON_MIN_H=40`(`ui_kit.gd:437`)/ 色板单源 / `page_shell` 模态栈纪律(`ui_kit.gd:394`)——与卡③需求卡片同款红线,本文只登记、不展开 | Alpha 后最近一个 UI 窗口 | +| 期一 | 跨局汇总页 + 主菜单生涯入口落位。总局数/通关局数两个终身计数域随该批做存档 schema 迁移——**✅ 已实装(2026-10-07 迭代 18 卡④)**:汇总段六类九项+营地与系统组生涯钮+存档 v6 两终身计数域〔v5 升 v6 幂等迁移〕;闸读数与代拍板追认单原记于该批出口报告,该件已按「吸收即死」在提交 8e02dcf0 删除,读数以本行与该批提交信息为准 | 提纲评审通过。实装批前置义务 = 对齐迭代 16 UI 批后的现行基线:`FS_*` 六档字号 / `TG_*` 语义色 / `BUTTON_MIN_H=40`(`ui_kit.gd:437`)/ 色板单源 / `page_shell` 模态栈纪律(`ui_kit.gd:394`)——与卡③需求卡片同款红线,本文只登记、不展开 | Alpha 后最近一个 UI 窗口 | | 期二 | 历史冒险回看整段:N 扩容 + 用时埋点 + 旧档摘要迁移 + 逐局列表 + 单局明细(`settlement_review_overlay.gd` 复活承接)+ 营地条带处置(P6 裁案落地) | 期一。实装批开工前须向用户呈报两件:N 终值读数(20 / 50 / 维持 10 三选一)与「用时」埋点口径(计时起点、暂停是否计入——字段级细节本文不做) | 期一落地后独立批 | | 期三 | 图鉴承接(敌人优先,范围与顺序随 P3 甲);「见过」记账面 schema 义务随该批执行 | 期二或独立评估 | Beta 窗口候选(与教学引导同段评估——图鉴的「认得」轴与教学相关;06 教学引导节各条 2026-10-04 起已整体标 Beta 阶段) | diff --git a/design/qa/迭代18-实机目检总清单-2026-10-07.md b/design/qa/迭代18-实机目检总清单-2026-10-07.md deleted file mode 100644 index 96559586..00000000 --- a/design/qa/迭代18-实机目检总清单-2026-10-07.md +++ /dev/null @@ -1,52 +0,0 @@ -# 迭代 18 四卡实机目检总清单(2026-10-07 交付) - -迭代 18 四卡已全部已合并进 master:卡③ 提案批(merge de067ae)/卡⑤ 混编投放批(merge 0dbe3c3)/卡⑦ 种子随机化批(merge b91b973)/卡④ 生涯界面批(本批)。目检归用户逐项过;每节标注详细判据所在的出口报告。目检不阻塞后续开发,但发现的问题按正常缺陷修复流程登记。 - -> **✅ 核销状态(2026-10-14 qa 收尾批)**:用户实机目检回报全部完成,未呈报问题——卡⑤ 四项、卡⑦ 八项、卡④ 六项共 18 项同批核销(卡③ 纯文档批无实机目检项;卡⑤ 难度带 MC 取证读数挂账条随 M4 数值批履行,不属人闸)。 - -## 一、卡③ 武器锻造系统设计提案(纯文档批——无实机目检) - -人闸=**提案盘问裁决**(异步,不阻塞其余卡): - -- 提案正文:`design/research/提案-武器锻造系统-2026-10-07.md`(八节框架)。 -- 17 个设计裁点的全备选案一览表:`design/qa/iter18-forge-exit-report-2026-10-07.md` §四(推荐主线=丙案「当前武器单选+每件武器独立等级与特效」等,逐点呈裁)。 - -## 二、卡⑤ 混编遭遇首批投放批 - -目检四项(详细判据:`design/qa/iter18-mixenc-exit-report-2026-10-07.md` §7): - -1. 第 2 关深度 5 的普通节点触发战斗:同场出现两种敌人——熊地精重击手 + 巨蜘蛛巢群(巨蜘蛛 2-3 只)。 -2. 同场敌人出场顺序与表序一致:重击手在前、巨蜘蛛巢群在后。 -3. 同场敌人实例总数不超过 4。 -4. 首遇教学位回归不变:巨蜘蛛首遇位(第 2 关节点 4)固定 2 只不加骰;钩爪恐魔(第 3 关节点 0/1)固定数量。 - -## 三、卡⑦ 种子随机化与调试浮窗升级批 - -前置:以 `DS_DEBUG=1` 启动游戏(详细判据:`design/qa/iter18-seed-exit-report-2026-10-07.md` A-I 九节): - -1. 应用启动后调试浮窗默认打开(手动可关、角标可再开)。 -2. 主菜单连续开多次新冒险(非首局、种子框留空):各局种子互不相同(当局数据区块可查本局种子);首次冒险(新档第一局)固定种子 42。 -3. 调试种子框输入合法整数时全场景按输入值生效(含首局)。 -4. 对局中可从战斗屏 HUD 角标与关卡地图屏角标开合浮窗;其他层打开时浮窗暂隐、关闭后自动恢复。 -5. 当局数据区块六项(种子/关卡/节点/HP/GP/钥石)与实际局况逐项一致。 -6. 从浮窗发起调试对局正常;对局进行中批量模拟与调试对局两按钮禁用。 -7. 浮窗开着时棋盘输入不被锁死、暂停角标不置灰;开新冒险/续玩路径正常(浮窗自动收起)。 -8. 断点续玩逐位正常(存档种子回填)。 -- 随附:代拍板追认单六项(区块标题/占位提示词/角标落点等)见出口报告追认单节。 - -## 四、卡④ 生涯界面实装批·期一 - -目检六项(详细判据:`design/qa/iter18-career-exit-report-2026-10-07.md` A-H 八节): - -1. 主菜单「营地与系统」组出现「生涯」钮(营地钮之后),点击开生涯全屏页、关闭返回主菜单。 -2. 汇总页六类九项数值与存档实况逐项一致:总局数/通关局数/各关通关次数/Boss 首杀/Boss 总击杀/钥石余额/属性锻造合计/道具工坊解锁计数/天赋树已购聚合。 -3. 旧档(v5 格式)载入后生涯页正常显示(终身计数缺省补零),无损坏。 -4. 生涯页开着=游戏输入锁定(与其他层同语义);与设置/确认弹窗等他层开合关系正常。 -5. 页内零「前往他处」跳转入口(只有返回);零动效。 -6. 局内(战斗屏/地图屏)无生涯入口;存档往返(退出重进)后计数不漂移。 -- 随附:代拍板追认单十一项(字段命名/文案/行序排版/分组标题等)见出口报告追认单节。 - -## 挂账提醒(非目检项) - -- 卡⑤ 难度带 MC 取证读数:顺延 Alpha 收官 M4 数值批统一执行,届时另行报批(07-⑱ 在册)。 -- 卡⑦ 三裁决(首次固定/显式指定/种子不进玩家 UI)2026-10-07 已裁,本批即其执行。 diff --git a/design/qa/代码术语审计报告-2026-10-18.md b/design/research/代码术语审计报告-2026-10-18.md similarity index 100% rename from design/qa/代码术语审计报告-2026-10-18.md rename to design/research/代码术语审计报告-2026-10-18.md diff --git a/design/qa/测试审计-单测与验收门禁标准-2026-10-15.md b/design/research/测试审计-单测与验收门禁标准-2026-10-15.md similarity index 100% rename from design/qa/测试审计-单测与验收门禁标准-2026-10-15.md rename to design/research/测试审计-单测与验收门禁标准-2026-10-15.md diff --git a/design/research/需求卡片-专长实装批-2026-10-11.md b/design/research/需求卡片-专长实装批-2026-10-11.md index 2d926218..efafdb4a 100644 --- a/design/research/需求卡片-专长实装批-2026-10-11.md +++ b/design/research/需求卡片-专长实装批-2026-10-11.md @@ -16,7 +16,7 @@ 3. `game/data/tables/adventure.tres:8-22` 旧三档配额结构(curio_quota_attack_common 18 等);`:31-34` 凭证四参(chance 20/quota 2/limit 1/pity 5);`adventure_table.gd:22` 注释仍写旧资源四项。 4. `game/core/adventure_runner.gd:44` Boss 通关兑付=**提升三选一**(信号注释「非末关通关恰一次」)+部分回血——与目标设计(专长三选一+回血)不符,属换代非新增;`:411-440` `_apply_curio_pick`:kind="relic"→`_feats` 持有集、refresh→`_attune_refresh_x`、属性类走 CURIO_APPLY_ROUTES 声明式路由(新加算类零代码);`:93-95/:819-826` 凭证保底/限购/出现三计数器在役;`:218-219` 断点扩列先例(feat_ticket_pity/sold)。 5. `game/data/tables/treasure_items.tres:76,111` 淬毒刃纹/封印爆裂(原标中殉爆)两行在役待迁(迁出即删)。 -6. 冒烟基线 840 项 0 失败(design/qa/iter19-card0 出口报告);MC 链=adventure_monte_carlo.gd+analyze_playtest.py 聚合。 +6. 冒烟基线 840 项 0 失败(iter19 出口报告已随中间文档退役,读数原样记于此);MC 链=adventure_monte_carlo.gd+analyze_playtest.py 聚合。 7. 06 在册:秘宝实装批条目(③专长侧联动由本卡承载)、生命比例扩签前置条、旧 MC 行为锚作废重锚归数值批条。 8. 秘宝充能账在役(attunement.gd)——凭证件「同调电池」的跨层写入目标账已存在,不依赖秘宝实装批。〔**2026-10-18 注**:同调电池经用户裁**删除**,本条前提对后续批不再成立;`attune_charges` 账本本身作为秘宝基础设施保留〕 diff --git a/design/research/需求卡片-启动装配与生命周期验收补全批-2026-10-15.md b/design/research/需求卡片-启动装配与生命周期验收补全批-2026-10-15.md index 2ccb99ff..3bf9d504 100644 --- a/design/research/需求卡片-启动装配与生命周期验收补全批-2026-10-15.md +++ b/design/research/需求卡片-启动装配与生命周期验收补全批-2026-10-15.md @@ -120,7 +120,7 @@ | req-card 技能(`~/.workbuddy/skills/req-card/SKILL.md`,仓外用户级) | §7 验证闸:补「每条验收测试须配变异验证项」要求 | **机械面,随批**(T6;仓外文件,随批改不入 git) | | [07-体验验证清单](../gdd/07-体验验证清单.md) | 新增目检节:F5 启动态(主菜单在顶层、按钮可点) | **机械面,随批**登记(不阻塞) | | [active.md](../../active.md) | 收口快照+状态记录 | **机械面,随批**(收口时) | -| design/qa/iter28-实现报告-2026-10-15.md | 收口产物:各卡状态+代拍板追认单+GDD 反哺点节+变异验证记录表+冒烟断言数增量 | **机械面,随批**(收口时产出) | +| reports/iter28-实现报告-2026-10-15.md | 收口产物:各卡状态+代拍板追认单+GDD 反哺点节+变异验证记录表+冒烟断言数增量 | **机械面,随批**(收口时产出) | | design/dev/architecture/architecture.md | 装配合同常量成为层序唯一事实源、boot 链路后置条件成文、run_scope 生命周期矩阵——若与现行陈述有差(iter27 反哺点在册:06 登记「场景分层/会话生命周期陈述滞后于实态」) | **反哺点**(列实现报告待用户裁决,另批落文;设计权威文档不随批更新) | | [08-Alpha版本标准](../gdd/08-Alpha版本标准.md) | 测试基建四行(冒烟套件/单元测试套件/界面探针/机器可读的呈现断言,:128-132)状态不因本批改变——本批只加断言不加新设施类 | **无关联文档**(四行在役不变) | diff --git a/design/research/需求卡片-敌人表内容修批-2026-10-13.md b/design/research/需求卡片-敌人表内容修批-2026-10-13.md index 68af2481..12814318 100644 --- a/design/research/需求卡片-敌人表内容修批-2026-10-13.md +++ b/design/research/需求卡片-敌人表内容修批-2026-10-13.md @@ -205,7 +205,7 @@ L2 熊地精池(attack/lunge/heavy)对比 L1 熊地精池(attack/charge/he 1. `skills.tres` 两新行的 `skill_id` / `display_name` 命名形态(小写下划线 / 中文双字,与既有 12 行同风)——取值已定,形态细节自理。 2. `enemy_table.gd` / `unit_container.gd` 的写法沿用 `armor_type` 同款(可省略 + 缺省回退 + 未知枚举报错)。 -3. MC 配对读数的种子沿用既有基线种子,报告落 `sim-data/` 或 `design/qa/` 随既有命名惯例。 +3. MC 配对读数的种子沿用既有基线种子,报告落 `sim-data/` 随既有命名惯例。 4. N1 落值后若发现 (1,2) 需连带微调 `atk_min/atk_max`(现行 0-2)——**仅限本行**,且须登记。 5. `expect_pools` 6 键的键值同步写法(保持既有字典风)。 diff --git a/design/research/需求卡片-测试分层与门禁语义修正批-2026-10-15.md b/design/research/需求卡片-测试分层与门禁语义修正批-2026-10-15.md index 63f244a6..9c1c533f 100644 --- a/design/research/需求卡片-测试分层与门禁语义修正批-2026-10-15.md +++ b/design/research/需求卡片-测试分层与门禁语义修正批-2026-10-15.md @@ -7,7 +7,7 @@ - **v1.4(2026-10-15 用户令「决策记录归 git commit log、不另存决策文档」)**:①历史决策文档体系整体废除,在效事实已由 10-15 文档批迁入 `design/dev/architecture/architecture.md`;②🔴 契约 5 改写为「架构事实唯一源」口径;③Q1 闭环、§5 同步面改写为 architecture.md;④全文引用清除。 - **v1.5(2026-10-16 roadmap 编入笔)**:roadmap 迭代 29 行改写为本批+新增「迭代 30+ 位空」行;§5 `roadmap.md` 同步行与排期行更新;订正 v1.3 条目尾部重复段。 - **v2.0(2026-10-16 三轮复查后定稿笔;用户令「实现相关的都可以用你推荐的,但重新检查一遍」)**:①**事实面改指针(N1 甲)**——§2 不再自持门禁/扫描域事实表,一律指 `design/dev/architecture/architecture.md`「测试与质量域」节(:135-178)三张表(五模块归属表/「三条判定硬闸现行状态」×5 闸矩阵/S1–S8 承接表),本卡只留**本批专属增量事实**;②**首轮 11 问按推荐案全裁**(Q1 闭环·Q2 作废·Q3–Q7 依推荐);③**第二轮 N1/N2 亦按甲**:N1=§2 改指针,N2=T6 收 S3 路径修正(+0.25d);④**订正四处事实**:PASS 串判定面实为 **8 件探针**(轻闸 4+`--full` 4,仅 `ui_click_probe` 查退出码)非 4;`game/smoke/` 实为 **29 个 `.gd`**(17 个无 `.tscn` 宿主)非 38;T5 的 `status_container` **不是零覆盖**(2 个单测已指名)→ 换 **`board_generator`**;README「门禁节已由 ci-removal 批改写」前提不成立(分支未合入)→ CI 残留 8 处改由本批 T2 清除;⑤**订正死引用**:`AGENTS.md:21/:106/:116` 与 §0 的 `:102-103`(该计数指当时 `CLAUDE.md` 压到 71 行;2026-10-19 改名后文件为 75 行,节号仍不存在)、`.github/workflows/tests.yml`(F3/F5/F6 直引已删文件)、`golden_compare.py:11`(实际 :13);⑥**新增架构文档回写义务**:本批落地后须把「三条判定硬闸现行状态」矩阵的「缺失」改「在位」、S 表 S3/S5 随之更新(§5)。 -- 来源:[测试审计 — 单测覆盖与验收门禁标准 v1.1](../qa/测试审计-单测与验收门禁标准-2026-10-15.md)(`design/qa/`,2026-10-15;加载 `godot-builder` + `godot-auditor` 双技能审计产出) +- 来源:[测试审计 — 单测覆盖与验收门禁标准 v1.1](测试审计-单测与验收门禁标准-2026-10-15.md)(同目录 `design/research/`,2026-10-15;加载 `godot-builder` + `godot-auditor` 双技能审计产出) - 归属:**测试基建批**(req-card §3:缺陷修复/工程债/**测试基建**/重构类工程需求凭 bug 证据或 06 在册条目直接写卡,**无设计定稿前置要求**——本批凭据即审计报告 A 类证据) - 排期:**迭代 29**(2026-10-15 用户令;**2026-10-16 已写入 roadmap 迭代 29 行**——原「M4 顺延 29+」行随 M4 数值批废除改写为「迭代 30+ 位空」记录)。开工门=U0,须用户 `/iter` 发令。 - **并行性前提已满足**:iter28「启动装配与生命周期验收补全批」已于 2026-10-15 入库收口(冒烟 1086→1125/0),串行裁决的阻塞条件不复存在。开工即建 worktree 分支,主区只读铁律不变。 diff --git a/game/tests/README.md b/game/tests/README.md index c6ba0b27..54fd137e 100644 --- a/game/tests/README.md +++ b/game/tests/README.md @@ -78,7 +78,7 @@ timeout 120s godot --headless --script tests/run_all.gd | Integration | Integration test OR playtest doc | 落地时随批建 `tests/integration/[system]/`(目录已删空壳,章程见上) | | Visual/Feel | Screenshot + lead sign-off | `tests/evidence/` | | UI | Manual walkthrough OR interaction test(场景探针为首选) | `tests/evidence/` | -| Config/Data | Smoke check pass | `design/qa/` | +| Config/Data | Smoke check pass | `sim-data/` | ## game/smoke/ 游离脚本台账(迭代 29 T7 逐个定性) @@ -89,7 +89,7 @@ timeout 120s godot --headless --script tests/run_all.gd | 脚本 | 定性 | 用途与触发方式 | 结果由谁判 | |---|---|---|---| | `adventure_monte_carlo.gd` | **在役**(`AGENTS.md` 在册入口) | 全冒险期望 MC;`tools/parity_anchor.py` 的对拍载体 | 工具脚本逐位比对 | -| `verifier_batch.gd` | **在役**(`AGENTS.md` 在册入口) | `tools/balance_verifier.py` 的采集端(数值验证) | 报告落 `design/qa/` | +| `verifier_batch.gd` | **在役**(`AGENTS.md` 在册入口) | `tools/balance_verifier.py` 的采集端(数值验证) | 报告落 `sim-data/` | | `reward_expectation.gd` | **在役**(`AGENTS.md` 在册入口) | 奖励期望测量(非封锁格分布/资源类型频次) | 人工读 stdout | | `monte_carlo.gd` | 在役 | 战斗期望 MC(胜轮数/承伤/清图/开格分布) | 人工读 stdout | | `auto_player.gd` | 在役(库件) | 自动玩家策略单一实现——被 `battle_driver` preload | 宿主脚本 | diff --git a/game/tests/evidence/.gdignore b/game/tests/evidence/.gdignore new file mode 100644 index 00000000..e69de29b diff --git a/game/tests/evidence/README.md b/game/tests/evidence/README.md index 87741d0c..2d9d6e4a 100644 --- a/game/tests/evidence/README.md +++ b/game/tests/evidence/README.md @@ -4,3 +4,20 @@ 面向表现/手感的验收(视觉锚三硬约束、格子样张测试、结算屏可读性、呈现义务台账核对)归此处—— 自动化探针(场景级)能覆盖的走 `tests/unit` / 探针场景,不能 G-W-T 的走本目录。 + +## 图像取证包 + +一次验证的图与它的对比报告放在同一个目录:`<主题>-<日期>/`,内部子目录装图(现例:`demo/` 原型截图 · +`real/` 实机截图 · `pairs/` 左右并排合成图),包内同名 `.md` 装报告(逐屏差异、结论、判定记录)。 +报告头部必须写明接收方——`design/gdd/06-待办清单.md` 第几条,或哪张需求卡片。接收方处理完毕后整包删除, +历史进 git 提交信息。 + +## 引擎不导入本目录 + +本目录根的 `.gdignore` 让 Godot 整目录跳过:图不生成 `.import` 边车,也不进导出包。 +这里的图是验收凭据,不是被游戏加载的资源——要加载的走 `game/assets/`,机检基线图走 `game/tests/golden/`。 + +## 现存内容 + +`ui-audit-2026-10-06/`:实机 12 屏 × demo 原型 v2.1 逐屏对比,报告同名。 +产出它的探针 `game/smoke/ui_audit_probe.gd` 已退役(commit 94f1bba8「孤儿探针退役」批),该包图像不可重制。 diff --git a/design/qa/ui-audit-2026-10-06/demo/_map_bottom.png b/game/tests/evidence/ui-audit-2026-10-06/demo/_map_bottom.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/_map_bottom.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/_map_bottom.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_1_start.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_1_start.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_1_start.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_1_start.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_2_camp.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_2_camp.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_2_camp.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_2_camp.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_3_settings.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_3_settings.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_3_settings.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_3_settings.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_4_map.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_4_map.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_4_map.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_4_map.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_5_battle.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_5_battle.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_5_battle.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_5_battle.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_6_bonus.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_6_bonus.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_6_bonus.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_6_bonus.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_7_shop.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_7_shop.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_7_shop.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_7_shop.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_8_end_defeat.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_8_end_defeat.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_8_end_defeat.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_8_end_defeat.png diff --git a/design/qa/ui-audit-2026-10-06/demo/demo_8_end_victory.png b/game/tests/evidence/ui-audit-2026-10-06/demo/demo_8_end_victory.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/demo_8_end_victory.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/demo_8_end_victory.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_1_start.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_1_start.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_1_start.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_1_start.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_2_camp.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_2_camp.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_2_camp.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_2_camp.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_3_settings.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_3_settings.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_3_settings.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_3_settings.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_4_map.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_4_map.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_4_map.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_4_map.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_5_battle.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_5_battle.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_5_battle.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_5_battle.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_6_bonus.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_6_bonus.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_6_bonus.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_6_bonus.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_7_shop.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_7_shop.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_7_shop.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_7_shop.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_8_end_defeat.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_8_end_defeat.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_8_end_defeat.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_8_end_defeat.png diff --git a/design/qa/ui-audit-2026-10-06/demo/raw/raw_8_end_victory.png b/game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_8_end_victory.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/demo/raw/raw_8_end_victory.png rename to game/tests/evidence/ui-audit-2026-10-06/demo/raw/raw_8_end_victory.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_1_start.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_1_start.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_1_start.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_1_start.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_2_camp.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_2_camp.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_2_camp.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_2_camp.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_3_settings.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_3_settings.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_3_settings.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_3_settings.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_4_map.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_4_map.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_4_map.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_4_map.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_5_battle.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_5_battle.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_5_battle.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_5_battle.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_6_bonus.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_6_bonus.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_6_bonus.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_6_bonus.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_7_shop.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_7_shop.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_7_shop.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_7_shop.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_8_end_defeat.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_8_end_defeat.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_8_end_defeat.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_8_end_defeat.png diff --git a/design/qa/ui-audit-2026-10-06/pairs/pair_8_end_victory.png b/game/tests/evidence/ui-audit-2026-10-06/pairs/pair_8_end_victory.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/pairs/pair_8_end_victory.png rename to game/tests/evidence/ui-audit-2026-10-06/pairs/pair_8_end_victory.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_10_legend.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_10_legend.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_10_legend.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_10_legend.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_11_confirm.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_11_confirm.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_11_confirm.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_11_confirm.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_1_start.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_1_start.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_1_start.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_1_start.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_2_camp.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_2_camp.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_2_camp.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_2_camp.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_3_settings.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_3_settings.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_3_settings.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_3_settings.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_4_map.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_4_map.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_4_map.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_4_map.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_5_battle.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_5_battle.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_5_battle.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_5_battle.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_6_bonus.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_6_bonus.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_6_bonus.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_6_bonus.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_7_shop.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_7_shop.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_7_shop.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_7_shop.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_8_end_defeat.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_8_end_defeat.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_8_end_defeat.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_8_end_defeat.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_8_end_victory.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_8_end_victory.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_8_end_victory.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_8_end_victory.png diff --git a/design/qa/ui-audit-2026-10-06/real/real_9_debug.png b/game/tests/evidence/ui-audit-2026-10-06/real/real_9_debug.png similarity index 100% rename from design/qa/ui-audit-2026-10-06/real/real_9_debug.png rename to game/tests/evidence/ui-audit-2026-10-06/real/real_9_debug.png diff --git a/design/qa/ui-audit-vs-demo-2026-10-06.md b/game/tests/evidence/ui-audit-2026-10-06/ui-audit-vs-demo-2026-10-06.md similarity index 100% rename from design/qa/ui-audit-vs-demo-2026-10-06.md rename to game/tests/evidence/ui-audit-2026-10-06/ui-audit-vs-demo-2026-10-06.md diff --git a/reports/README.md b/reports/README.md index 43757fe9..c7952e6e 100644 --- a/reports/README.md +++ b/reports/README.md @@ -10,6 +10,7 @@ | `iter-实现报告-<日期>.md` | 各任务卡状态、实机目检总清单、遗留读数义务 | 迭代批 | | `iter-代拍板-<日期>.md` | 批内 agent 替你拍的决定清单,等你追认或推翻 | 迭代批 | | `iter-反哺点-<日期>.md` | 需要写进 `design/` 权威文档的点,逐条列清"哪个文件哪一节、改成什么、依据是什么" | 迭代批 | +| `iter-<交付物名>-<日期>.md` | 需求卡片点名的其它交付物(例:`iter27-探针迁移对照-2026-10-14.md`=11 个探针的成员依赖面清单) | 迭代批 | ## 不放什么 diff --git a/design/qa/iter27-探针迁移对照-2026-10-14.md b/reports/iter27-探针迁移对照-2026-10-14.md similarity index 100% rename from design/qa/iter27-探针迁移对照-2026-10-14.md rename to reports/iter27-探针迁移对照-2026-10-14.md diff --git a/tools/balance_verifier.py b/tools/balance_verifier.py index b994c546..db03663a 100644 --- a/tools/balance_verifier.py +++ b/tools/balance_verifier.py @@ -33,7 +33,8 @@ r"""数值验证工具(判定端)——自动化评判 + 元进度爬升测 python tools/balance_verifier.py --na 60 --k 60 --seed0 9000 --spend atk_first python tools/balance_verifier.py --only adventure --inject max_hp:3 --na 100 python tools/balance_verifier.py --from-raw # 免重跑,对既有采集重新判定/出报告 -输出:控制台判定结论 + design/qa/balance-verifier-<时间戳>.md(报告)+ 同名 .raw.jsonl(原始逐局数据)。 +输出:控制台判定结论 + sim-data/balance-verifier-<时间戳>.md(报告)+ 同名 .raw.jsonl(原始逐局数据)。 + 两件均落 sim-data/(整目录不入 git,读数以最新一份为准)。 兼容注:2026-09-23 前的旧 raw.jsonl 含 level 段(直入口单关)行——本版判定自动忽略, 逐关读数一律由冒险行派生。 """ @@ -51,7 +52,7 @@ ROOT = Path(__file__).resolve().parent.parent SLICE = ROOT / "game" GODOT = r"D:\code\godot\Godot_v4.7.2-stable_win64_console.exe" SCRIPT = "res://smoke/verifier_batch.gd" -QA_DIR = ROOT / "design" / "qa" +READINGS_DIR = ROOT / "sim-data" VJSON_PREFIX = "VJSON " ERROR_MARKERS = ("SCRIPT ERROR", "Parse Error") @@ -728,8 +729,8 @@ def main(): print(f"[数值验证] 已载入既有采集 {len(rows)} 局:{raw_path}") else: rows, _ = collect(args) - QA_DIR.mkdir(parents=True, exist_ok=True) - raw_path = QA_DIR / f"balance-verifier-{ts}.raw.jsonl" + READINGS_DIR.mkdir(parents=True, exist_ok=True) + raw_path = READINGS_DIR / f"balance-verifier-{ts}.raw.jsonl" with open(raw_path, "w", encoding="utf-8") as f: for r in rows: f.write(json.dumps(r, ensure_ascii=False) + "\n") @@ -747,7 +748,7 @@ def main(): if args.from_raw: md_path = raw_path.with_suffix(".md") else: - md_path = QA_DIR / f"balance-verifier-{ts}.md" + md_path = READINGS_DIR / f"balance-verifier-{ts}.md" md_path.write_text(md, encoding="utf-8") print(f"[数值验证] 报告:{md_path}") print(f"[数值验证] 原始逐局数据:{raw_path}(--from-raw 可免重跑重判)") diff --git a/tools/repo_structure_audit.py b/tools/repo_structure_audit.py index c08ff25f..41f9ea1a 100644 --- a/tools/repo_structure_audit.py +++ b/tools/repo_structure_audit.py @@ -28,18 +28,18 @@ TOP_DIRS = {"archive", "artwork", "design", "game", "sim-data", "tools", "report ROOT_FILES = {"AGENTS.md", "README.md", "roadmap.md", "stage.txt", "review-mode.txt", ".gitignore", ".zcodeignore"} # 3) 图像允许目录(相对路径前缀;archive/ 为归档 zip 不扫) -# design/qa/ 收编(迭代 5 返工批 2026-09-29——U2 目检预览图/QA 呈现产物归位,commit 留痕) # game/tests/golden/ 收编(迭代 19 卡① T2/T6 2026-10-08——棋盘 golden 基线=机检测试资产非美术素材, # 素材齐盘态生成入库【基线换代权限 Q6】;T1 落库时漏改本白名单致熵增闸红,同批修订 commit 留痕) +# game/tests/evidence/ = 验证取证照与它的对比报告(目录根 .gdignore 令 Godot 跳过导入,图不进包) IMAGE_EXTS = {".png", ".jpg", ".jpeg", ".webp", ".gif", ".svg", ".pxo", ".psd", ".bmp"} IMAGE_PREFIXES = ("artwork/", "game/assets/", "design/art/references/", "design/dev/architecture/", - "design/qa/", "game/tests/golden/") + "game/tests/golden/", "game/tests/evidence/") # 4) 退役路径(目录或文件任一再现即 FAIL) RETIRED = ["production", "docs", "tests", "qa-data", "design/registry", "design/art/candidates", "production/mockups", - "design/ux", "game/tools"] + "design/ux", "game/tools", "design/qa"] # design/ 一级子目录白名单(防 ad-hoc 新目录) -DESIGN_SUBDIRS = {"art", "dev", "gdd", "qa", "research"} +DESIGN_SUBDIRS = {"art", "dev", "gdd", "research"} def scan():