Commit Graph
37 Commits
Author SHA1 Message Date
DKChan 9f80609518 测试层合并批(用户裁 2026-11-07): 「集成测试」层级退役归并单元层——tests/integration/ 三套件(存档⇄RNG 往返/节点图确定性/跨系统流×落盘)实体迁移 tests/unit/ 同闸同协议, run_all manifest 65 套全量单元; 闸名「单元与集成测试」→「单元测试」(run_all_gates/基线键/coverage_receipts 同步); 选闸词 integration 族→save_rng/cross_system/node_map 文件名词; 测试层识别换三元组(职责×触发时间点×覆盖面积, 权威表=test-conventions §1.1 测试层三元组), 层级名降为代称; 术语表退役词对照+doc_term 收「集成测试/用例/层/侧/宿主/族」, 全仓旧字样清零(gdd/规约/README/套件头注/断言标签), 跨系统面性质归属由各套件头注承载; extract_checks 缺省遍历面收 unit/**; test-conventions §8.2 验收四层「集成」改「跨宿主」; architecture 测试层级表三级换代+65 实数; domain_route/AGENTS 字样同步。凭据: 三套件单跑 exit=0; --code 域闸验收通过(冒烟/单元全量/系统/场景探针/渲染闸/静态扫描/熵增闸全绿); --docs 域闸验收通过(文档域七闸零新增红) 2026-11-07 01:59:49 +08:00
DKChan 2cbd2ca9a7 批1(QA harness·探针存量emit真输入化+覆盖登记写入): 两探针52处emit站点转真输入管线(push_input press+release成对)51处,保留1处置灰态穿透emit标〔接线断言〕; 新增probe_coverage_recorder.gd真输入覆盖登记件(旗标在位期间命中入账,锚链归一化键=具名/脚本锚+类#钮面文本+序位,@临时名不入键,JSONP落tests/.gates/coverage/每探针一件); probe_ui_util补coverage_hook单点+push_motion/push_wheel(滚轮press+release成对——只发press钉死鼠标焦点实证fork/返回营地两钮点击全失效)/window_panel/scroll_button_into_view(折叠区行钮rect越窗底栏实证误中返回营地钮,真输入滚轮滚入可视区再点); V5b遮挡试探订正=前窗经真实返回钮清账再真点开窗(emit直发穿遮罩属口径违例); 落点判定补钉2处(esc段子界面开窗落点/树窗返回钮落点); test-conventions §2新增UI驱动断言真输入管线条文(滚轮成对+折叠区滚入+落点判定+接线断言豁免口径); .gates/.gitignore收coverage/。读数: screen_flow_probe孤立直跑PASS(六步动线+屏级互斥全绿); ui_click_probe孤立直跑exit=0问题=0(budget=15210,三笔树购买请求全通,PROBE_SEED=7); 登记落盘ui_click=27控件/38命中/临时名跳过0,screen_flow=19控件/25命中。全量档闸(fd9c8ad9基线): 两新增红均判为主区推进漂移非本批引入——流水线闸红=待办清单QA条目证据句(master 1730a8fb已修),单元settlement_wiring_snapshot红待并master后窄跑复核; 本步凭据=两探针直跑绿+偏差8条已回写qa-harness讨论文档§10 2026-11-06 01:50:50 +08:00
DKChan 1477404294 工程(闸件自检档·基线登记): 闸壳自检入存量基线(绿,12件bash闸件与管线件0解析失败,--gates档首跑实证)——防纯闸件批远端首跑判无基线记录红; 其余各档闸条目原样 2026-11-05 03:51:27 +08:00
DKChan 65115744c6 工程(闸名去编号·用户令): 15闸注册名与基线键去00–10编号前缀, 脚本usage/注释/输出与gate_unit名全换代闸名; 文档五份与.gd三件/run_all.gd注释编号换闸名; AGENTS.md核心原则立第5条对话呈报闸况一律用闸名 2026-11-05 02:32:36 +08:00
DKChan 3c1e3ddf07 工程+文档(CI 合回零等待): 轮询等待件与本地回执判定退役,改按需现查 run 终局态
- 缘由(实证): ci_watch.sh 以「commit status 离开 pending」作终局判据——run 37 开跑 36 秒即写
  verdict=red,该 run 三分半后 conclusion=success(现查 API),同 commit 先红后绿;远端时代 16 条
  红回执所引 run 现查 15 条真红 1 条假红。另两条稳定假红源: 超时档(零触发批远端不建任务——现查
  90abdd4a 的 statuses=null,只要挂了轮询必等满 3000s 写红;runner 排队同形)与多路轮询重复覆写
  (fb27dc2f 三条红挤在 15 秒内)。修判据不如撤等待: 判据移到开工前一次现查,竞态与超时两类假红
  结构性消失。
- tools/ci_check.sh(新): 单次读 run 自身 status/conclusion,未 completed 与零触发一律呈报未落定
  不写红;红态列失败 job 与失败步;只呈报不落盘。退出码 0绿/1红/2未落定/3参数与令牌。
  孤立验证四形态: fb27dc2f→红(run 51 conclusion=failure) / 90abdd4a→未落定(零触发) /
  f1840fbc→未落定(run 55 queued) / 39acdcaa→绿(run 48 success)。
- tools/hooks/post-merge: 只推送不再挂后台轮询;push_failed 判定不再落 ci-status.json,改大声呈报。
- 删 tools/ci_watch.sh 与 .zcode/hooks/ci-status-banner.sh(不入 git 面,主区直改)并从 .zcode/config.json
  注销——该横幅在当前 harness 只挂 worktree-guard 的配置下本就不投递(本会话 ci-status 为 red 全程零横幅)。
- 口径同步: AGENTS.md 运行与验证首条、process-conventions §1 第3条(回执等待纪律→合回零等待纪律)与
  第4条执法分层②、§8 第8条、test-conventions §3 与 §8.7 审计证据行(中/低档证据由落盘回执改为
  可复核的现查读数=commit+run号+conclusion)、run_all_gates.sh 头注与 .gates gitignore 模板句、
  迭代技能两镜像三处(入 git 面外另记 .zcode/.qoder)。
- 待办清单条目「ci_watch 中间态误写终局红回执」整条删除(以退役方式了结,非按原判据修复)。
- 在案真红一条随本批呈报未处理: run 51(迭代 51 合回 fb27dc2f) 失败步=导入缓存刷新+跑闸,
  归因待取 job 日志——红未修不开新批的门按用户发令特批越过。
2026-11-04 06:14:44 +08:00
DKChan ace7b45841 工程(ci追绿·基线登记): game/tests/.gates/baseline.json全绿版入库——含05b色板闸条目(此前提交版缺05b致「无基线记录」判红)与03/05绿位(mac全量目标态); 原件=本地在飞脏件(另一追绿会话产出,待提交面),本批随修复合入 2026-11-03 17:04:16 +08:00
DKChan c91bbdddee 工程(本地CI化改造批·验证模型换代): 合回后跑测试制落地——①机件四件: tools/ci_runner.sh(merge=合回验证点对master尖无条件全量/commit=仅CI红态追绿;锁mkdir+在跑尖端判定+rerun标记=跑完补跑coalesce连发触发只测最新尖端;起手--editor --quit刷类名缓存接管原合并后零复跑动作;读闸回执写ci-status.json+ci-history.jsonl红闸与关键日志行在案)+hooks/post-merge(主工作区merge落地即触发,worktree内合并不触发)+hooks/post-commit(红态追绿触发)+pre-commit换代(撤代码面拦截=主区直改全面放开,合并收尾提交MERGE_HEAD豁免,保留秒级文档闸);②guard瘦身: 合回闸回执六况校验与主区代码面Edit/commit拦截退役,留--no-verify拦截+iter数卡校验+规则闸;③run_all_gates.sh头注换代(强制验证点=合回后CI全量,手动档降开发期)+.gates/.gitignore收CI产物;④规约四份换代: AGENTS(运行验证首条/规范导航行/车道铁律/交付验收红线/改动四类)、process-conventions(§1四条重写=主区直改车道+合回后CI+worktree降为大批约定+执法三层,§3第8/9条=CI验证载体+重跑语义「同一份字节禁止第二次人手跑」)、test-conventions §4(开发期窄测+合回CI+追绿)、iter技能五处(闸域/T0/闸序列/总收口/坑速查);⑤待办条目登记。设计讨论会话内闭合零待裁点,用户已发令;收口=迭代44合回CI首跑 2026-10-30 16:48:00 +08:00
DKChan 2822307436 工程(工程小件批·件5): 闸基线 02/05/09 三键换代——按本批回执 6a3203a8 实测绿重锚(02 关联档分片4/4全绿/05 渲染闸真跑绿/09 静态扫描绿),三键旧红指纹(f9865f1a5a44/de89589e49ed/1a9ad773489f)全部归绿消除,改善态记账入 note;原登记=「02/09 两键」2026-10-30 并入 05 2026-10-30 08:01:50 +08:00
DKChan cfb528b917 工程(场景探针闸合并·基线换代): baseline.json删「03 探针 --click」「04 探针 --full」两旧键、预置「03 场景探针」green键(实测真值=本worktree全量闸03场景探针exit0十件全跑);02/05/09存量红键未动——归「闸基线两键换代」在册条目 2026-10-30 04:20:46 +08:00
DKChan 8491505929 工程(对拍闸退役批): 删除回放确定性对拍闸及全部配套件——闸脚本6c段整删、PARITY_TOUCH_FACES改名CROSSCUT_TOUCH_FACES(02横切回落判定保留)、回执指纹NEED-APPROVAL分支清理、基线删11号条目、parity_anchor.py/parity_compare.py两件删除、evidence/parity锚删除、tests README能力行与工具行删行、adventure_monte_carlo台账行换代、架构文档闸清单删条件件与验收红线史句清理、待办清单数值窗口删对拍锚重锚句与触面粗粒度挂账行删、settle_segments_test头注去失指句——用户裁决:整局重放对拍代价不可承受,正确性由既有单测/集成/探针/渲染golden承载 2026-10-30 02:28:28 +08:00
DKChan 9c12d0a683 iter42-卡2: level_runner委托壳19枚拆除+shop公开化直连键7=33+残留零真残留+基线记账03/04/05(用户裁) 2026-10-30 01:34:06 +08:00
DKChan 80b49c0f96 工程(合回闸关联档批·基线记账): 存量基线 02/09 两键按实测重生成——02 记存量红 fp f9865f1a5a44(9 套件失败,逐项对上待办清单「迭代 41 测试债修复」条)、09 改记现行红项指纹 1a9ad773489f(S9 24 处+S10 4 处+S11 1 处;旧指纹 8467b4588a20 所记 gdstyle 存量红已随迭代 41 还清过期);人工确认凭据=该条目 2026-10-29 用户裁带红合并(代码域现存红全部由该条目承接);基线滞后成因=迭代 41 两卡特许直接合回未重跑代码域闸。记账依据=本批 worktree 收口全量闸实测(commit 117a37e2 域=full,本批改动零新增红);此账使后续跑批按「存量红·对基线零新增」判定,修复批实测归绿后再换代 2026-10-29 05:05:45 +08:00
DKChan 915222fa0a 工程(能力审计闸上电): tools/capability_audit.py 接入文档域 08e——GDD 纯度+能力清单与覆盖域表结构由机检兜底;baseline 加 08e 绿记录、07/08d 条目随批 5 文档清理实测归绿;test-conventions §8.9 与 doc-conventions §5 补闸件指路句(闸件清单唯一出处=run_all_gates.sh 头部) 2026-10-29 02:55:06 +08:00
DKChan 33a4533947 闸基线(迭代40收口记账): 09 指纹刷新 91d45583cf6d→8467b4588a20(用户裁刷)——卡①拆件还债落地,battle_orchestrator 行数红项消失(实测1036≤登记1302;契约2残余36行系合并适配带入master迭代39内容,已裁登记残余债归待办清单),09红项两条收敛为一条(level_map_screen 类变量22>21=迭代38存量,还债归迭代41卡③);指纹按闸壳同款算法对用户探跑日志实算(FAIL 3行=恶化明细+gdstyle汇总+S13汇总),登记值只降不升,全量闸复验;02存量红已随master侧EV重锚批ba5105aa归绿并入合并0166df26 2026-10-28 02:28:11 +08:00
DKChan 8d6b1012ed 工程(EV锚重锚批): round_flow EV 抽样锚 goblin 带宽 [1.00,1.20]→[0.82,1.02]——迭代39触发器批孤注守势(w1·纯buff·血量≤35%情境入池)稀释含闸长期速率 1.1060→0.9148,旧带系触发器前唯一特殊技=突刺结构下登记随池构成换代作废;模拟器维持无情境口径(用户裁2026-10-28,trigger行不过滤、把最坏情形当长期速率),重锚注记随 enemy.tres 表注(照酋长先例)与测试注释;baseline 02 存量红(f74b9a48ef4a)归绿。撤销证明=带宽回退旧值断言复红(exit 1,实测0.9148)→还原复绿;孤立验证单跑套件 exit 0 2026-10-28 01:21:08 +08:00
DKChan 3530144e49 闸基线(迭代39特批带红合并): 02 记存量红(fp f74b9a48ef4a=round_flow EV 锚 goblin 0.9148∉[1.00,1.20],触发器批有意行为改动,重锚归后续数值批待用户发起)+08d 记存量红(red-nokeys=生涯.md:55 引 adventure_runner.gd:814 行号漂移,修复归合并后文档批,反哺点在册);07 基线红→现绿改善随下次重生成记账;09 指纹经 S9 注解修复(f96632de)回归登记值 91d45583cf6d 2026-10-27 18:07:20 +08:00
DKChan 05745df3fb 工程(闸 09 存量红照实记+基线只降不升): 撤销「把两条恶化登记为现行值」的做法(用户裁:标准是尺,不以现状为尺)——①tools/gdstyle_baseline.txt 两条登记值回退 battle_orchestrator max-file-length 1314→1302、level_map_screen max-class-variables 22→21(波 0 已批准的 18 条陈旧键清理保留不动);②tools/gdstyle_gate.py 逐条 NEW/恶化行加 FAIL 前缀——gate 09 的存量红指纹只取含 FAIL 的行,原「NEW/WORSENED」行不进指纹,两次不同恶化集指纹相同=存量红期间任何新增违规或进一步恶化都会被「同款存量红」放过;顺带加 refresh 抬升守卫(重生成会把任一登记值抬高即拒写,须 --force 显式确认;原只有骤降守卫,37625317 曾借重生成静默吸收 3 条抬高);③game/tests/.gates/baseline.json 09 条目改 exit=1+现算指纹 91d45583cf6d(红项=上列两条,逐条点名可核;此前记的 user-approved-iter38 是手写标记,永不等于现算指纹,合回必被拦),note 记现行口径:阈值不变=gdstyle 默认(文件 1000 行/类变量 15 等),还债归迭代 40 卡①与迭代 41 卡③;④static_scan.sh S13 头注补 FAIL 前缀与只降不升两句。验证:--refresh 实测拒写且基线文件逐字节未变;静态扫描实测 exit=1,两条恶化逐条列名。 2026-10-27 06:27:36 +08:00
DKChan 4f4a9bdaad 工程(闸 09 基线刷新): 用户裁不还债, 两项恶化登记为现行值——gdstyle 基线重生成(216 条, 消失键 18 条为历史改善键清账; 恶化 2 条 battle_orchestrator max-file-length 1314/level_map_screen max-class-variables 22 登记为现行值)+.gates/baseline.json 的 09 条目改 exit=0/fp=green。还债归迭代 40 卡①(B1战斗域拆件批已写明 iter38 行数恶化债本批还债归绿), 该批合回后再次刷新收紧。 2026-10-27 06:12:35 +08:00
DKChan c4c6970101 chore(基线): 09 静态扫描记存量红(用户特批带红合并——迭代 38 收口 gdstyle 恶化 2 条:battle_orchestrator 行数 1314>1302=卡④头注必载内容、level_map_screen 类变量 22>21=卡①缓存成员;卡片义务的记账漂移非缺陷,用户裁不管恶化直接合并并特许免测试重跑;后续批次触两文件可顺带还债或经批准重生成归绿) 2026-10-26 18:08:22 +08:00
DKChan 5cf06242d7 chore(基线): 07 doc_link 记存量红(用户令忽略——修复在另一会话未合入,合回闸豁免;外部修复合入后重生成归绿) 2026-10-23 20:49:51 +08:00
DKChan 957391e13b test(批B): 断言层级重构大提交——1065 条断言自 smoke_all.gd 全量迁入 16 标准宿主(冒烟/单元/集成/系统+UI 探针);smoke_all.gd 整体退役;变异引擎按用户令删除、验证改核代码(三冷启动审核员 1065 全审:1047 有效,17 存疑+2 段落级,其中 2 段落级经今日闸记录实证解决);10 条核代码修复(恒真/名实/静默跳过/键名等——grilling 一轮修订);验证集清单回写 1068 条三对齐零差异;底册去向补正与笔误清账 2026-10-23 20:48:20 +08:00
DKChan 8fbd2dd875 test(验证): 批 B 按条变异验证引擎交付——单进程内存内变异(table 表改写/inject 源码注入编译路径接管/state 状态篡改+树形模板)三武器 189 条全跑:验红 131/异常 58(异常全数归因入账:磁盘读取面 2/schema 常量面 4/幂等等值面 2/预算收刀与改坏面缺形 50/基线未复绿 1 套如实亮灯);复验单轮中位 122ms;--adhoc 零配置宿主/--excl-func/--excl-line 毒候选隔离阀/--snap 快照物化/--ledger 台账机生成;seal 提交快照留底 .gates/mut_snapshots 供 --snap 物化;统一台账落 reports/批B-变异统一台账.md(主会话统一验证用 --adhoc 跑剩余未提交宿主) 2026-10-23 13:35:49 +08:00
DKChan 4488278236 feat(闸机): 批 A 闸键映射换代——新增 00 冒烟测试(排最前,tools/run_smoke.py 跑 smoke_boot 场景);01 冒烟全量→01 系统测试(过渡期仍吃 smoke_all.gd,运行器换 run_system_test.py);02 单元套件→02 单元与集成测试(run_all.gd manifest 含 1 条集成用例,名从实);其余 12 键不动;头部注释与跑批横幅同步。baseline.json 同步改键+新增 00 绿记录(note 记缘由仿 08c 先例);09 静态扫描基线 exit=1 系滞后红——单跑实测 exit=0 核绿后改回绿。static_scan.sh S11 设「去重闸」同形异义豁免(机制词含退役词子串,守 smoke_all.gd 在册断言标签);doc_term_audit 词表承接四级测试层废弃词(「重闸」负向断言排除「去重闸」) 2026-10-22 21:13:28 +08:00
DKChan f4ff2af6e7 chore(建档差异收净): baseline.json 按原 2 空格缩进重排——上一笔把整文件缩进改成 1 空格,106 行噪声差异收为 4 行净增 2026-10-21 15:54:29 +08:00
DKChan e425ef1be0 chore(引用可核闸建档注册): 08d 入文档域闸序+三处 game/ 纯文字欠账清净
- tools/run_all_gates.sh:文档域闸序加「08d 引用可核」并补头注 --docs 清单(闸清单唯一事实源只写这一处)
- game/tests/.gates/baseline.json:手工加 08d 绿记录一条(13→14,其余条目原样保留),照 8f66ae15 之 08c 与 e8b6751b 之 06b 先例
- game/tests/static_scan.sh:100:S11 词表来源注释订正——「完美排雷」已于 2026-10-21 入退役词对照表,:122 追加行成冗余(sort -u 去重后行为不变,删它属改闸件词表本体,留待代码批,注释已写明)
- game/tests/README.md::58 套件数 26→35(按 _suites() manifest 实数);:81 Config/Data 证据落点 design/qa/ → 跑批回执+reports/;:92 verifier_batch 报告落点 design/qa/ → sim-data/(依 AGENTS 在册口径)
- doc_ref_audit.py:路径解析补「尾段匹配」一档,tests/run_all.gd/views/level_map_screen.gd 这类相对 game/ 工程的简写不再误判为路径不存在(实测纳入 reports/ 的红项 17→12,余下为历史件真实漂移,佐证排除面划法)
- 待办清单:引用可核注册欠账与 README 分级表 design/qa 两条完成即整条删除;game/ 域欠账条目收窄为 :122 冗余行一项,状态处记用户特批标记
零行为改动:无一行 GDScript、无表数值、无场景资源。验证:bash -n 两闸件语法 OK/baseline 合法 JSON/闸壳 --docs 自身退出码 0(含新注册 08d 与建档记录一致)/引用可核 64 件 84 处红项 0/流水线闸 PASS 69 条目。
2026-10-21 15:53:52 +08:00
DKChan e8b6751b6a chore(闸壳): 06b 变更记录节入存量基线(绿档)——同 08c 流水线闸先例 2026-10-20 05:49:03 +08:00
DKChan 066a9f7e31 docs(active残留): active.md 废除补刀——10-18 五张待执行卡摘「唯一例外=active.md」假指令15处+baseline.json 08b 死记录再删+recolor_terrain_tiles.py 头注出处注记摘除
08b 复活成因:roadmap 压缩批 8f66ae15 与废除提交 27812167 同日、worktree 分叉早于废除,
合回时旧 baseline 被原样带回(该批自记「其余条目原样保留」)——再删并留此记录防三犯。
历史文档约 19 处过去时引用按 registry 注销批(d54cbed7)先例保留不动;
在途分支合回时 diff 再见 08b/active.md 一律就地拒收。
2026-10-20 00:39:26 +08:00
DKChan 8f66ae1559 docs(roadmap): roadmap 压成「里程碑时间线+迭代总表」+流水线闸注册上电 08c——删除「当前位置」节与主路线表全部巨型行(各迭代过程叙述/T 段明细/读数/闸数字/裁决记录退役归 git 史,116→89 行),新建六列迭代总表 30 行一行一迭代(状态=已完成+落地日期自「✅ 完成/已入库」句提取,迭代 17 任务书日期与文本冲突从文本=2026-10-07;需求卡片列 design/research 实存十卡写实路径、卡片已退役十一迭代写保留字、迭代 1~8/10 无卡片制填「—」;编入时间 9~12/14~30 从文本与编入提交可考取真、其余「—」;预计周期历史行全「—」不做 ≤2 周判;实现报告 iter27/28/29/30 写 reports/ 实存路径、其余二十六迭代写退役保留字),M3/M4 里程碑语义立规注(2026-10-09 用户立规)压缩三行后置于里程碑时间线表后语义全保留,执行纪律/批次 loop 规范/维护纪律三节原样保留(含未迁 process-conventions 的迭代粒度界定等立规),执行纪律第 3 条「当前位置挂起清单」指针随节删除改指 active.md 未决面;pipeline_gate.py 机检扩容对齐新表(需求卡片/编入时间/预计周期三列「—」合法=历史行豁免+实现报告列已完成=存在路径或退役保留字、对「—」维持判红,头注旧格式声明换代),doc-conventions §12.2 四列规则同步补「历史迭代不可考填—」与已完成报告列严格句;run_all_gates.sh 文档域 08b 之后注册「08c 流水线闸」(照抄相邻行形态,闸序其余零改动)+头注 --docs 闸清单补 08c+域横幅 6–8c;baseline.json 手工加入 08c 绿记录(新闸件无基线记录必判闸况变化拦合回收执,其余条目原样保留);06 修存量退役词四笔「随批呈报→顺带呈报」(b4671802 回填批带入、doc_term --strict 首次全量跑暴露,非本批引入)。自检:python tools/pipeline_gate.py=PASS(06 条目 51·总表数据行 30·交叉核 0 链全过)exit 0;bash tools/run_all_gates.sh --docs=六闸全绿无新增红 exit 0 2026-10-18 05:15:32 +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 fff4f120d3 merge: 迭代29测试分层与门禁语义修正批入库(十提交, worktree g-plan2-iter29-testlayers) 2026-10-17 00:13:57 +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 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 15c64c3552 fix(冒烟): 屏蔽批两处断言语义订正 + 基线 09 刷新(并行会话头注漂移,非本批引入)
- 变异断言语义订正:board_variant_ids 只装板级/全局型(region 变异在格子级 variants)——
  板级空断言 + 格子级恰一行且在 {magma,ash} 断言 + 确定性比对加 variants 字典逐位
- V1a boot 顶层断言容错调试浮窗(2026-10-16 写死后 boot 即开,浮窗悬浮于菜单之上=
  合法顶层;原守卫「菜单被冒险屏盖住」语义不变)
- baseline.json 09 项 fp 刷新:主区与分支 audit_file_headers 输出逐行一致(128 行),
  漂移源于 20f4a7dc 之后主区 .gd 头注变动(并行会话),本批零引入;红项仍为存量
  127 处,仅对齐指纹
2026-10-16 03:43:35 +08:00
DKChan 20f4a7dc01 feat(收口闸): active.md 体量闸并入全量闸清单——收口漏删旧条目在合回时被拦
- tools/audit_active_state.py:判四条可机械测的膨胀签名(状态记录条目数>30、
  快照行数>10、条目编号重复含并行撞号、指向 design/qa|research 中间文档的死指针),
  另加快照整行自我重复一项(换代不彻底只往顶部 prepend 的签名)。
- 变异验证:对换代前的 34 条版本报 5 项红(A1/A2/A3/A4/A5 全见红),
  对退役后的 3 条版本报绿;两态实测 RC=1/0。
- 入 run_all_gates.sh 为 08b(脚本即清单,不另立第二份闸清单),baseline.json
  随批补 08b 绿项(本分支内实测绿,非臆造)。
- 规约挂指针两处:doc-conventions §10 机械闸句、process-conventions 批次清单 12。
- active.md 按 §10 退役:状态记录 34→3 条,快照 21 行自我重复压回 10 行,
  删「项目当前位置」整节(滞后且与 roadmap/快照重复),未决面按迭代 27/28 重列。
- 不动 Stop 钩子:回合末判收口时机错配(一轮答完≠任务完成),机械层交合回闸,
  语义层交收口技能。
2026-10-15 22:23:53 +08:00
DKChan eb5e892456 fix(闸收敛批三): .gates/.gitignore 入库 + 脚本自愈重建
合回 master 时发现:.gates/.gitignore 未入库,receipt.json 被纳入版本管理——
它是每跑批覆写的当次回执,属中间产物。

成因:重跑闸前用 rm -rf game/tests/.gates 清目录,把 .gitignore 一起带走了;
脚本自身不重建,跑得再多次也不会回来。

- .gates/.gitignore 入库(挡 receipt.json 与 *.log)。
- run_all_gates.sh 启动时自愈:.gitignore 缺失则重建,杜绝复发。
2026-10-15 22:07:13 +08:00
DKChan 94f1bba840 fix(闸收敛批二): gdd_lint 分域豁免 + doc_term 语境豁免 + 孤儿探针退役
用户令四条:清单类与术语表免 GDD 规范性检查、退役词统一处理、文件头另处解决、
无使用的探针全删。

- tools/gdd_lint.py:新增 RULE_EXEMPT(规则粒度分域豁免,**按规则不按文件**)——
  06 免 R3/R4/R7、07 免 R3/R5/R7、术语表免 R2/R5。
  理由逐条写进代码注释:R3 禁修订注记与「登记处条目要能回答谁在何时裁的」直接冲突;
  R4 版本历史节与 06「解决即移除」的状态登记体裁冲突;R5 是节名含「流程」即触发的误匹配
  (07 的「㉖全流程走查」是目检清单节、术语表「开发流程」是词条节);
  R7 长括注在登记处是常态。
  **机械可判的完整性规则 R6/R8/R9/R10/R11 一律不豁免**,真缺陷不得藏起来。
- design/gdd/术语表.md:版本号撞号订正(10-12 那条 v1.2→v1.9,两条 10-13 顺延 v1.10/v1.11),
  按真实时序重排。原撞号源于 2026-10-11 与 10-12 两批各写一个 v1.2。
- tools/doc_term_audit.py:五组退役词按语境豁免而非改正文——
  充能(秘宝主动件现行机制,扩 exempt 信号)、可选类道具与雾格(否定式引用「现行池内无可选类」
  「不做清单」——替换会毁掉句意)、伏击/heavy_multiplier(battle.md 占位表里的退役敌人 id,
  现行规格在 敌人系统.md)、拔旗(06 待办「件派生动词白名单」是待评估设计意图非在用机制)。
  疑似现行 6 处 → 0。
- 孤儿探针退役:ui_layout_probe 与 ui_audit_probe 共 6 文件(.gd/.uid/.tscn)删除——
  两者均无任何闸脚本执行(全仓仅注释与历史报告提及)。
  连带清理 render_gate.sh 头注、board_view.gd cell_size 注释、game/README.md roster 行。
  **遗留**:ui_layout_probe 原承担 1920 档布局机检面,现无承载,已在 render_gate 头注标明待补。
- roadmap.md 迭代循环第 4/5 条:轻闸/重闸改指 run_all_gates.sh,闸清单不再散落第四处。

闸况:9 道绿(含 gdd_lint / doc_link / doc_term 三闸全绿);static_scan S10 文件头 125 处
按用户令不在本批处理,已落 baseline.json 作为存量红。
2026-10-15 21:42:35 +08:00
DKChan 1d4ac91e3b feat(闸收敛批): 验收闸唯一入口 run_all_gates.sh + 合回闸回执强制 + t17 探针隔离修复 + 文档闸清单单一事实源
用户令「迭代完成前必须全量跑一遍所有测试」。起因是 iter27 台账只记 probe --click 未记
--full,t17_defer_probe 红了整个迭代无人发现——根因是闸清单散落 CLAUDE.md /
process-conventions.md / test-conventions.md 三处、彼此不一致、且无任何机器校验。

- tools/run_all_gates.sh(新):全部验证闸的唯一入口与唯一清单,串跑冒烟/单元/探针
  --click/--full/渲染/doc 三闸/静态扫描/熵增闸共十道,写回执 game/tests/.gates/receipt.json。
  与 baseline.json 比对判定:基线红且红项清单未变=存量红零新增(不判失败),
  基线绿转红或红项清单变化=新增红(判红)。python 解释器自动解析带 PIL 的解释器
  并前置 PATH(渲染闸三个脚本依赖 PIL,用错解释器会假红)。
- .zcode/hooks/worktree-guard.sh:Bash 分支加合回闸——merge/rebase/cherry-pick 进
  master 前按目标分支反查 worktree 回执,校验 commit 匹配/非 quick/无新增红三态,
  任一不满足 exit 2 拦截(九态实测:匹配放行、commit 错/quick/含红/无回执/rebase 全拦)。
- game/smoke/t17_defer_probe.gd:隔离面从 main.save_manager = iso_c 改
  ProbeUiUtil.isolate_save(iter27 已确立口径)。原写法对 getter-only 属性赋值无效
  ——组合根 save_manager/meta 是 autoload 读视图,隔离必须落在单例上。修复后 --full 转绿。
- doc_link 三处死链归零:数据配置.md 已退役探针指路、元进度.md/天赋树.md 已改名文档链接。
- CLAUDE.md / process-conventions.md §3第10条 / test-conventions.md §4 三处
  「交付前跑什么」统一为一句话=跑 run_all_gates.sh,删散落清单。

闸况:冒烟 0 / 单元 0 / --click 0 / --full 0 / 渲染 0 / doc_link 0 / doc_term 0 /
熵增 0;gdd_lint 与 static_scan 为存量红,已落 baseline.json 待判读清偿。
2026-10-15 21:16:38 +08:00