docs(qa目录退役): design/qa/ 清空删除,四路分流+§11 立接收方条款
- 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/ 路径,合回需全量档回执(含代码域测试),待用户点名。
This commit is contained in:
1 parent
becb675aca
commit
75fafc3965
61 files changed
+43
-75
No files matched your search
@@ -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`)
|
||||
|
||||
@@ -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 待决注记「主角立绘档空缺」由此完成);
|
||||
|
||||
@@ -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/` 是其唯一可写目录):反哺点裁决落文吸收后按「证据只留最新」退役 |
|
||||
| 证据只留最新 | 测试证据只保留最新一次迭代或最新一轮同类审计版本;新证据落位后同批删上一份;待人清单过人闸后同规退役 |
|
||||
|
||||
|
||||
@@ -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/ 代码域。
|
||||
|
||||
**归属**:全工程(排雷循环/战斗循环/冒险循环/呈现层/数据表/冒烟测试均触及;主责=术语表裁定执行)
|
||||
|
||||
|
||||
@@ -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 直伤、两三连雷应明显肉疼;若仍无痛感=回调信号,记一句话即可;
|
||||
|
||||
@@ -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 阶段) |
|
||||
|
||||
|
||||
@@ -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 已裁,本批即其执行。
|
||||
File renamed without changes.
File renamed without changes.
@@ -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` 账本本身作为秘宝基础设施保留〕
|
||||
|
||||
|
||||
@@ -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)状态不因本批改变——本批只加断言不加新设施类 | **无关联文档**(四行在役不变) |
|
||||
|
||||
|
||||
@@ -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 键的键值同步写法(保持既有字典风)。
|
||||
|
||||
|
||||
@@ -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 分支,主区只读铁律不变。
|
||||
|
||||
@@ -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 | 宿主脚本 |
|
||||
|
||||
Whitespace-only changes.
@@ -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「孤儿探针退役」批),该包图像不可重制。
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -10,6 +10,7 @@
|
||||
| `iter<N>-实现报告-<日期>.md` | 各任务卡状态、实机目检总清单、遗留读数义务 | 迭代批 |
|
||||
| `iter<N>-代拍板-<日期>.md` | 批内 agent 替你拍的决定清单,等你追认或推翻 | 迭代批 |
|
||||
| `iter<N>-反哺点-<日期>.md` | 需要写进 `design/` 权威文档的点,逐条列清"哪个文件哪一节、改成什么、依据是什么" | 迭代批 |
|
||||
| `iter<N>-<交付物名>-<日期>.md` | 需求卡片点名的其它交付物(例:`iter27-探针迁移对照-2026-10-14.md`=11 个探针的成员依赖面清单) | 迭代批 |
|
||||
|
||||
## 不放什么
|
||||
|
||||
|
||||
File renamed without changes.
@@ -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 <raw.jsonl> # 免重跑,对既有采集重新判定/出报告
|
||||
输出:控制台判定结论 + 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 可免重跑重判)")
|
||||
|
||||
@@ -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():
|
||||
|
||||
Reference in new issue
Block a user