Commit Graph
427 Commits
Author SHA1 Message Date
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 33e1f11057 test(卡② T7补漏): 补齐 §9 正向验收主力 V1/V2/V6 与全 Vn 标注 + V1/V4 变异验证
前批合回时漏建卡② §9 逐需求点「正向验收主力」断言(四桶机制),仅靠迁移旧测+V12 兜底——
V12 formed/rules 输出面不作判据,adventure 桶跨战持久若坏不会红,核心缺陷消解无回归网。本批补:
- V1 冒烟新段:同一 RunLedger 两 begin_battle 各真实 request_dig,断 adv_twin_digs 经 ctx 就地写宿主字典跨战累积=2
- V2:start_adventure 后 adventure 桶置空(feat_vouchers)
- V6 冒烟新段:次战新编排器 fx_counters_battle 天然空、battle 桶 insurance_used 读 0
- V3/V4/V5/V7/V8/V9/V10 补〔无状态化 Vn〕尾缀使 §9 可追溯
- 变异验证:V1 断 adventure 桶引用改新建空字典→3 条红;V4 断 level 桶不共享→红(证回归网真拦得住)
2026-10-21 02:45:57 +08:00
DKChan d00f24a8ec merge(迭代 32 卡②): 效果引擎无状态化批合回
EffectEngine 改纯计算引擎(零运行时状态·仅 _triggers+db)+四桶外置宿主(round/battle→编排器、level→LevelRunner、adventure→RunLedger)+
搬运链整段删除+dig_combo 死路删+前缀校验双落点+引用闭合加载致命+V9 负面套件+V12 同种子复放三组判读通过(off 逐字节一致)+S12 旧件零残留。
完成定义 8 条全绿;代码域闸 all_green(回执 6491f7d5),parity 落 skip(契约 12)。
2026-10-21 00:04:15 +08:00
DKChan b42463c920 fix(卡② T7): config_db_cross_validator 引用闭合 5 行补类型标注过 S9 类型闸
trig_rows→Array[Variant]、dd/tr/c/do2→Dictionary[Variant,Variant](R1 无类型容器归零)。
config_db_test EXIT=0、counter_prefix_fatal EXIT=1(负向)、runtime 零转换错误。
2026-10-20 23:54:02 +08:00
DKChan 430f97f071 test(卡② T7-V13): 旧档改名前 counter 键续玩受理零崩溃断言
feat_vouchers 注入含旧键(拼接构造避 S12)的 adventure_counters → resume_adventure 受理、留桶成死键(无迁移,契约 9)。
2026-10-20 23:24:58 +08:00
DKChan 003581f4c4 feat(卡② T7-V10): static_scan 新增 S12 旧件零残留扫描 + 清尽注释内旧符号
- S12 扫 game/ 全域 .gd/.tres(改名与旧符号同存数据行/测试/smoke,非仅 core):
  counters_export/counters_seed/counters_merge_export/counters_seed_snapshot/_reset_tree_limited_counters
  + 带引号旧 id "tree_sense_*"/"twin_digs"/"instinct_atk"(引号锚定不误伤新名)零命中
- 非空扫描面自检(185 文件);注入 counters_export 见红、还原回绿(变异验证取证)
- 迁移注释措辞去除旧符号字面、feat_vouchers V16 写键 twin_digs→adv_twin_digs
编号说明:卡① 已占 S11(代码注释禁用词),本扫描落 S12(卡片成文时 S11 未定义,属卡片与现实偏差,归反哺点)。
2026-10-20 23:22:44 +08:00
DKChan b226a292df test(卡② T7-F2): 旧测试断言随无状态化换代迁移(smoke 裸引擎段 + 4 单测件)
- smoke_all 裸引擎段 ~53 dispatch/写口 ctx 化、twin_digs→adv_twin_digs
- _smoke_tree_rules:standalone 引擎自建 ctx、sense 限次跨战持久改 level 桶共享引用(删 export/seed 链)
- effect_words_t1_test ⑥⑦重写为桶语义(adventure 共享字典往返、round_ 前缀随 round_start 整桶清空、battle 无前缀存活、counter_spend 静态)
- tree_rules_v11_test 合成行夹具 lvl_ 改名+删 domain;treasure_effects/settle_segments dispatch/counter ctx 化、dig_combo→geo_types 活 id
冒烟 1150/0、四单测件 EXIT=0(换代同生死,无假绿)。
2026-10-20 23:19:40 +08:00
DKChan 811f988032 rules(规则审阅落地批): 十条评审意见落地——呈报四问/文件头缩窄/禁词表冻结/lean死条文退役/日期批注清除/AGENTS瘦身/分域闸口径/状态栏纯化
- AGENTS.md: 呈报六问改读后自检四问;文件头红线删行数上限与白名单;日期批注清除;回执五况细则挪 process-conventions §3.10;流水线闸过时状态句改事实句
- process-conventions: §1.2 非迭代批改按改动域跑闸;§3.10 承接五况;两处日期批注清除;§2 表格凭据落点改现状清单
- code-conventions: §1.4.1 重写(删 8 行上限/两类白名单/90 文件清偿义务);§2.1 联动;两处日期批注清除
- test-conventions: 三处日期批注清除(三处实证日期属证据保留)
- doc-conventions: §1 lean 死条文删除;§4 词表冻结条款;§12.1 重写(状态行只写状态词;现状=关联文档清单;删括号凭据全部条款);三处日期批注清除;§5 重复词修复
- 术语表: 用语规范节加词表冻结句
- 06-待办清单: 11 条带括号状态行迁移(括号证据移入现状关联文档清单;待裁决说明并入现状;每条状态行只留状态词)
- tools/audit_file_headers.py: 删 R1 行数上限(R0 载体/R2 日期/R3 变更叙事保留)
- tools/gdd_lint.py: R2 表格占比判据与 R2_EXEMPT 整体退役(lean 解读对象已亡,只产存量噪音)
- tools/doc_term_audit.py: 词表冻结注释
- tools/pipeline_gate.py: 状态栏括号凭据核对废止,新增状态行禁括号判据(点名病因短路);闭合证据改现状正文核对(卡片路径磁盘存在性+交叉核、文档路径+版本、art-bible+版本)
- game/tests/static_scan.sh: S10 注释同步

变异验证(test-conventions §6):pipeline_gate 注入括号→状态行含括号内容红 exit1;删正文卡片路径→正文缺卡片路径+交叉核红 exit1;audit_file_headers 注入变更叙事→R2/R3 红 exit1、头注 12 行纯说明→0 红(上限停用实证)。坑册新增:未提交工作区禁 git checkout 变异还原(会连带回滚在途改动),须备份文件法。

全批净变化 +155/−146(12 文件)。
2026-10-20 23:15:05 +08:00
DKChan 4c5bdbc9aa feat(卡② T5): 计数器引用闭合校验 + V9 负面套件 + manifest 登记
- config_db_cross_validator ⑦ 引用闭合:声明集=feats+treasure 各行 do.counter_id,
  读点(when counter id / value_counter / counter_spend counter_id)无同名写入行→加载致命
  (判据只做成员判定,不重写前缀规则——契约 6 两落点同源)
- 新建 counter_prefix_fatal_test.gd(expect1/negative):①meta_ 非法前缀②悬空读点两断言,均正确拒绝
- run_all.gd manifest 登记负面套件
real 数据 config_db_test 26 全绿(闭合零误伤);insurance_used 经 forgive_seal_miss 行 do.counter_id 声明纳入。
2026-10-20 23:12:29 +08:00
DKChan d402ea143a feat(卡② T5-部分): validate_trigger_row 增 counter_id 前缀合法性校验(.tres 行加载致命)
判据单点 counter_id_legal(与 _push_trigger assert 同源,无第二份前缀表);meta_ 出域→errs→加载致命。
feat_vouchers 26 checks 在 ctx 化引擎下全绿(保险 V25 + 卡① A10–A12 未破,契约 5)。
引用闭合校验 + 负面套件 + manifest 归 T5 续(下一轮)。
2026-10-20 23:05:39 +08:00
DKChan 7f45f90484 feat(卡② T6): feats.tres counter_id 改名 + domain/reset_at 键删除 + DO_KEYS 收缩
- twin_digs→adv_twin_digs、instinct_atk→round_instinct_atk(写点+读点 value_counter 成对改)
- 删 9 处 domain/reset_at 键行(含 pain_layers 三处归 battle、insurance_used domain=battle 删键)
- 引擎 DO_KEYS 删 domain/reset_at;do 键白名单注释改前缀归属口径
config_db_test 26 checks 全绿(feats.tres 加载校验通过、跨表护栏零违例)。
2026-10-20 23:04:16 +08:00
DKChan 96d31705b3 feat(卡② T3): 7 施加点 ctx 化 + dig_combo 死路删除 + run_ledger 搬运链方法删除
- action_economy/damage_controller/reward_economy: dispatch 加 _ctx、写口改 EffectEngine.counter_add/counter(_ctx,...)
- battle_orchestrator: _fx_emit→dispatch(counters_ctx)、counter_spend 静态化、删 counters_seed 回灌与 counters_export 战末导出、_feat_yield_adjust 删 dig_combo 死读数与 combo_cap 第五参(零行为差)
- grant_segment: counter 读/value_counter/per ctx 化、_apply_counter_hit 写口静态化、combo_cap 收集删除
- run_ledger: 删 counters_seed_snapshot/counters_merge_export + 头注/字段注改 ctx 直写口径
数据行 domain/reset_at 删除与 feats.tres id 改名见 T6;核心层调用面已对齐新 API。
2026-10-20 23:02:13 +08:00
DKChan a721e529ef feat(卡② T2): EffectEngine 删运行时状态 + ctx 接口 + 静态写口
- 删成员 _counters/_reset_on_round_start/_adventure_counter_ids(引擎零运行时可变状态,仅 _triggers+db)
- dispatch(ctx, event, payload, facts);round_start 特判改 ctx.round_bucket.clear() 整桶就地清空
- counter/dispatch 读路径 _when_ok/_cond_ok/_fact_value 全经 ctx
- 新增 static bucket_of(ctx,id)(前缀→桶唯一出处)+ counter_id_legal(只禁 meta_)
- 写口改 static counter_add/counter_spend(算术逐字承旧);删实例版与 counters_export/counters_seed
- 树合成行 sense 两键改名 lvl_tree_sense_*,删 domain/reset_at 键;_push_trigger 增前缀 assert
- rebuild 签名不变(冒烟调用面零迁移)
调用点施加点迁移见 T3,数据行/测试冒烟迁移见 T6/T7(本提交为无状态内核检查点,全绿在批末)。
2026-10-20 22:57:44 +08:00
DKChan ae5baed699 feat(卡② T1): EffectContext 新建 + 四宿主接线(引擎接口未动·纯 ctx 引用束)
- 新建 game/core/effect_context.gd(四桶公开类型化字段,零方法)
- BattleOrchestrator:fx_counters_round/fx_counters_battle/counters_ctx 三成员,_init 建 ctx 挂自有两桶,
  begin_battle 挂 adventure_bucket(=_ledger.adventure_counters) 与 level_bucket(enc["level_counters"])
- set_fx 三协同件扩 ctx 参并存 _ctx(引擎 API 暂不改,T2 动)
- LevelRunner:level_counters 成员 + enc 下传
- 删 _reset_tree_limited_counters(按关清零改由 level 桶随 new 承载)+ 调用点 + 冒烟旧 V10 直呼断言
冒烟 1150/0(旧断言随函数退役,-1 项符合预期)。
2026-10-20 22:55:28 +08:00
DKChan a8db225799 fix(卡② T0首提交): 采集器 rules 档 tree_rules 类型修复——Array 包裹 split 结果
String.split() 产 PackedStringArray,被 adventure_runner.gd:118/:200 的 is Array 守卫整组静默丢弃,
致 rules 档与 off 档逐位相同(分组空转、V12 rules 组恒假绿)。测试工具类型修复,无玩法改动。
2026-10-20 22:44:21 +08:00
DKChan b3b77ff1b7 test(T7/N7): 新增 A10–A12 两态正向断言(seal_miss 行 highlight + _format_row 零「雷」)
A10 未豁免态 highlight==perfect_broken+完美不成立;A11 豁免态 highlight==空+完美仍成立;
A12 呈现两态文案含已破/已豁免且零「雷」字面。落点 feat_vouchers_test.gd,随 N7 同轮。
2026-10-20 22:24:34 +08:00
DKChan 1bbbdba48a fix(T7/N7): 归因锚改用有效误标判据 + _emit_row 后移 + 两态文案
- _emit_row("seal_miss") 后移到 _fx_emit("seal_missed") 循环之后,使 _perfect_forgiven 先就位
- 判据从 RAW(_perfect_hit_false==1)改为有效误标(hit_false - forgiven == 1)
- battle_log_view seal_miss 文案两态:已破态加金框、豁免态普通色
- "本板"→"本图" 概念对齐
- 修复 suffix 变量遮蔽(改名 miss_note)
2026-10-20 20:48:59 +08:00
DKChan b6629d6848 feat(T2-T6): 五词注释换代——完美排雷→完美封印/板级→整图/门票→专长凭证/正主→现行事实源/落籍→已入库
全局 sed 替换 89 处命中清零(S11 绿)。修复:
- 移交 3 处保留原词(shop.tres:86 display_name、curio_controller:165-166 玩家文案)
- 豁免 enemy.tres:653 历史注记保持"已落籍"
- static_scan.sh 词表追加行与头注恢复禁「」引举句式
- S11 规则文件自身不被自身规则误伤(闸门自指豁免生效)
2026-10-20 20:41:50 +08:00
DKChan 85dce2c77d feat(T1): S11 代码注释禁用词规则落闸——先落规则再见红(89 处)
按契约 6 先写 S11 规则并跑出红,为 T2–T6 批量换代提供回归网。
词表从术语表「退役词对照」节解析+显式追加完美排雷、排除巢穴/旗。
三层豁免(闸门自指/显式留档 4 处/非注释面天然不取)+两道自检。
2026-10-20 20:35:14 +08:00
DKChan c5200b6be9 merge: 禁写变更记录批入库——规约/AGENTS/闸壳/技能四层指令面废除文档内变更日志(gdd_lint R4 反转为禁设+06b 新闸+三工具去豁免),48 份文档版本历史节与 game/README 流水段删除、代码注释 900 余行批次标签清偿(约束句保留、去注释零触碰自证)、卡片「修订记录」块改「审查回写要点」(--docs 闸 dafc5540 六件全绿+变异验证三态真拦:版本历史/修订记录/修改记录)
# Conflicts:
#	game/tests/static_scan.sh
2026-10-20 05:52:25 +08:00
DKChan e8b6751b6a chore(闸壳): 06b 变更记录节入存量基线(绿档)——同 08c 流水线闸先例 2026-10-20 05:49:03 +08:00
DKChan 8a68c9ea11 merge: 同步 master e92a18e1(卡片落位 reports/+dev→engineering 改名批)——四处版本历史节冲突取本批删除侧,reports 卡片重放禁写变更记录清理,06b 闸扫描面扩 reports/ 2026-10-20 05:46:28 +08:00
DKChan 8847d960b5 docs(game/tests注释重基准): 三件套注释路径随 dev→engineering 改名同步(用户特别授权主区直改,纯注释零行为变更) 2026-10-20 05:43:39 +08:00
DKChan 55cdf683da docs(卡片): 退役 11 张失归属需求卡片(迭代 20–30 已完成批)+清偿全部指路与死链
按 doc-conventions §11「吸收即死」「删除不留死链」执行:
- 删 11 张:迭代 20–30 各批卡片(含迭代 28 启动装配卡——roadmap 卡片列早已写「已退役」、文件却仍在盘,属漏删)
- roadmap 卡片列 10 行改「已退役(git 历史可考)」(流水线闸对保留字豁免,pipeline_gate.py:303-309)
- reports/iter27–30 四份报告头部卡片路径改保留字,不留指向已删文件的路径
- 保留卡(战斗一屏样张批/二三关棋盘观感批)对已删卡的 6 处指路改结论内联+提交号
  (徽章卡 7ffd1dc0/测试分层卡 fff4f120),各加一行「指路订正(2026-10-20)」
- 顺带清偿 2 处既存死链:07-体验验证清单 ㉑ 节、HUD框架 视野迷雾注记(两卡早已退役,历史删卡未做引用面清理)
- 顺带清偿 3 处 game//tools/ 下遗漏引用:theme/README、forge.tres T1 注、parity_anchor.py 头注

保留 10 张未开工卡(迭代 31 两张、06 在册营地五卡+资源配比、被剔除回待设计的样张/观感两张)。
零设计裁决变更、零数值变更。
2026-10-20 03:37:31 +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 6d601d23dc chore(禁写变更记录批): 版本历史节/日期批注全面废除——gdd_lint R4 反转禁设+三工具去豁免+48 文档删节+game/README 流水段删+代码注释 900 余行轨迹标签清偿(约束句保留)+规约/skills 五层指令面同批改指 git 沿革 2026-10-20 00:22:18 +08:00
DKChan 1deaa55341 chore(rules): 根规则文件改名 CLAUDE.md→AGENTS.md+全库旧名引用同步
- 结构闸白名单 ROOT_FILES 收编 AGENTS.md(改名后主区曾判「根文件越界」红)
- 流水线闸禁写根规则文件标志名只留 AGENTS.md(用户裁:旧名不留双保险)
- design/dev 五份规约+architecture、roadmap、registry、06、三个 README、
  在役需求卡与 QA 标准的引用逐处换代;历史 reports/ 与 .workbuddy 留痕不动
- 顺修三处换名后会误导的行号引用(:56→:59、:63→:68、71 行计数加注)
- 三份主区未跟踪文档(测试审计标准/启动装配卡/营地会话提示)随批搬入并登记
2026-10-19 06:04:09 +08:00
DKChan 0170071da7 test(凭证件裁削): 卡② 对拍锚重锚(删件后牌库与豁免语义变化随批换代)
三变体各 N=20×2 策略重跑;差异面=稀有档候选集少两件(attune_battery/perfect_insurance 零出现)
+完美保险改订阅式后的完美判定面,与用户裁断一致(差异归类见 reports/iter31 实现报告)。
2026-10-19 04:54:17 +08:00
DKChan 072c19b4a5 feat(凭证件裁削): 卡② 同调电池删除+完美保险迁专长+配额净删落地(迭代 31 卡②)
用户 2026-10-18 逐裁四项落码:
- T1/T2 同调电池整件删除:CURIO_KINDS 摘 kind、三字段与三处分发表分支删净、
  runner 侧 _battery_pending/断点键/getter/choose_battery_target 全清(呈现层零接线=有账本无入口)。
- T3 完美保险出池:kind/字段/分发摘除,_pending_insurance 与 level_runner 注入通道
  (voucher_insurance 键、set_voucher_grants 第三参)整链拆除,battle_orchestrator._fx_insurance 删。
- T4 引擎扩签 forgive_seal_miss(EFFECT_KINDS 31→32)+两账相减:新增 _perfect_forgiven 单向累加、
  谓词抽成 perfect_sweep_earned()(有效误标=误标总数−豁免数),_perfect_hit_false 保持纯净=契约 2;
  seal_missed 发射时机与消费点零改动=契约 3(危险直觉·守同事件订阅面在验收组里对拍)。
- T5 feats.tres 第 30 行完美保险专长:rarity rare/cap 省略/domain=battle 显式写出(战斗域首例)/
  desc「本场首次封印落空,不计入完美封印判定」;限次由行 when counter(insurance_used) lt 1 承载,
  do 自带 counter_id 记账由授予段消费点落账(代拍板 3 选型:单行落表,理由见实现报告)。
- T6 配额净删:TIER_QUOTAS rare 9→7、令牌池总量 104→102,validate() 硬断言过;smoke 配额锚/牌库
  构成/专长行数随批换代。
- T7 验收:feat_vouchers_test 39 项全绿(出池反例/断点缺键兼容/账本保留/配额锚/装载/限次一次/
  计数纯净/两账相减真值表/跨战清零/事件不吞)+forge_table 词表闭集断言 31→32。
  变异验证 6 条:5 条证红;「domain battle→adventure」在本 rig 不可观测(未红),已如实登记。
- 存量缺陷顺带修:旧 _emit_row("insurance_used","",…) 空来源会触发行来源断言(旧路径无消费点故从未走红),
  新订阅面给出 source_class=seal_miss。

基线(卡① 合回后 master 4f953ce8):冒烟 1151/0、单元 34 套全绿、探针 --click 全绿(user:// 存档移开态)。
2026-10-19 04:45:49 +08:00
DKChan 2c5cece48d test(代码术语): 卡① 对拍锚重锚(seal_ 标签面,用户裁案甲随批)
三变体 base/attune/shop 各 N=20×2 策略重跑,RUNSUM 面仅标签名换代、数值零差异(差异取证见 reports/iter31 实现报告);jsonl 面 sha256 随新事件名重生。
2026-10-19 03:04:59 +08:00
DKChan 26d182f845 docs(代码术语): 卡① 注记面禁字提及还原(被检查的禁字不是使用)
feats.tres 头注 desc 禁字清单还原为「雷/旗」、命名纪律对照句改「旗〔旧称〕=封印」;
battle_orchestrator 注释双等号读顺。均为注释面,零数据零行为。
2026-10-19 02:54:19 +08:00
DKChan 32fdf957fd refactor(代码术语): 卡① flag→seal 全族换代+game/ 禁用词清扫(迭代 31 卡①)
标识符面:flag_*→seal_ 族(含 Godot 信号 flag_judged→seal_judged 与连接/回调同名、
FACTS 两键 flags_count→seals_count/dug_under_flag→dug_under_seal 全链、
.tres 键名与 schema .gd 同批同步);显式豁免零改动=size_flags_*(Godot 布局属性)+_fatal_flag。
中文面:金币→GP(金币袋→GP 袋)/插旗→封印/雷格→危险格/惩罚格→危险格/旗→封印·封印印记族,
game/ 内 *.gd/.tres/.md/.json 四类禁用词与 flag 双双零命中(V1/V4)。
守卫字面量不动(被检查的禁字不是使用):smoke_all V21 零「雷/旗」检查面、
ui_font_asset_test 字形集攻/雷/旗/封 保持原断言逻辑。
代拍板:板面单字槽 glyph「旗」→「封」(禁字纪律+单字位宽,消费面四处同名随动)。
素材换代(2026-10-18 用户裁案甲):assets/art/board/flag_seal.png→seal_mark.png(素材不入 git,
盘上改名+导入重刷),代码两处 res:// 字符串+COL_FLAG/CURSOR_FLAG 常量同步,
闸件四处随批(run_all_gates.sh/render_gate.sh/golden_baseline_refresh.sh/path_check.py)。
anchor.json 键名手改,重锚与改前改后 diff 随本卡收口(同裁案甲)。

基线读数(改前,主区 ed2dfaf6):冒烟 1151 检查 0 失败/单元 34 套全绿/探针 --click
存量红仅 screen_flow_probe(user:// 断点污染在册已知项)。
改后同批读数(本 worktree):冒烟 1151 检查 0 失败/探针 --click 同一存量红、其余全绿。
2026-10-19 02:52:38 +08:00
DKChan b7b94d1163 chore(主区): 术语补扫批遗留两项入库——project.godot 为编辑器保存时段落重排([debug] 段位与 default_texture_filter 行位,5 增 5 删内容零变化),playnote 为玩家试玩反馈原样追加 11 行 2026-10-19 01:32:54 +08:00
DKChan d659b065c1 chore(导入): 8 个 .uid 入库——迭代 30 期编辑器刷导入生成,此前一直未跟踪 2026-10-19 01:28:41 +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 9a335cb305 docs(08): 混编遭遇第二批裁挂 Beta v1.10(2026-10-18 用户令「挂 beta 吧,不需要再进行讨论了」)——未决项六项减五项(第 4 行删除、5/6 重编号)、二·内容量混编行现状注改写(裁决细节入版本历史,单元格保持净态)、文头状态行 v1.9→v1.10;零代码零内容变更,Boss 多行投放连同 MC 取证与数值统标一系移交 Beta 阶段再议。三闸全绿(gdd_lint 0 不通过/doc_link 死链 0/doc_term 疑似现行 0) 2026-10-18 01:33:36 +08:00
DKChan e5c03eb3ab test(render): 双帧像素取证+判据源探针(迭代 30 卡① T2-④)——board_shot_probe 每关抓微光开(生产默认态)/关(golden 基线保护面)双帧:前置 UiKit.motion_scale=0.5 冻结接触带呼吸相位(静态带色,双帧差异唯一定位在类型微光开关),_check_dual_frames 逐格窗口矩形+到格缘距离判据(de < cell÷8——带外含砖心零侵入=禁整格染色/禁越圈)+每生效格须有实绘像素(微光不空转)+开关快照须在关开关前取;读数落 board_dual_frame_readings.json(报告读数表源)。身份解析接生产同源面(main.gd:251 同构:板在守卫+Active 相位守卫+query_reward_identity 只读代理——裸视图不接则作用集恒空、PASS 假绿,本批实跑两次 glow=0 的根因即此;附带排 Callable.bind 动态派发 Object 硬校验坑,改成员现值+直接方法引用)。新建判据源探针 type_glow_shot_probe(夹具面五组齐现:glow_cells=5、groups=[1-5]、changed_outside=0、相邻组实测 CR 最弱对 1.232、组4/组5=1.423)——真实面随板摇号(双帧 glow=2/4/4),五组齐现互辨取证在夹具面承载,两面分工不混。off 帧对 2026-09-30 代 golden 三基线漂移 0.13/0.11/0.10%(≤2%,接触带静态化预期面,契约 6 未触发、基线未重制);render_gate.sh 整闸全绿(含菜单 golden 0.14%)。 2026-10-17 10:18:55 +08:00
DKChan 80ac80ef1a test(断言三件): 未开格类型微光机检面(迭代 30 卡① T2-①②③)——①冒烟 smoke_all.gd 新增 _smoke_type_glow 八相 24 项(相0 作用集恒等+默认开+已开/r0 零微光/相1 八邻派八型五组逐格映射/相2 清单外"keystone"显式登记+零微光/相3 封锁格零微光零登记/相4 解封复位/相5 off/on 两态+关前快照逐位复现+零玩法写入三面/相6 换图 rebuild 重算/相7 契约 1 同板同序列 on/off 双实例结算逐位一致 12 步 digest 对照);夹具 = seed 4242 L1 板+novice 驱动(初始展开覆盖 8 邻故必驱动)+八邻派型+哈希兜底九型全集;冒烟 1127→1151 项。②单测 type_glow_test.gd 五段 51 检查(归组封闭含清单外 6 负样本+两带并存锚定/冻结色相面 HSV 稽核 ΔH≤0.2°·ΔS≤0.01+群伤 V=0.65 专项/呈现参数锚定 α170·band 0.125·组号域 0-5/伽马合成空间阶梯单调+相邻组模型 CR≥1.20/probe API 形状),登记 run_all.gd(33→34 套件);extends SceneTree+Kit/UiKitScript preload(--script 模式禁 class_name 裸引用)。③ui_input_probe case⑰ 活板面走查(生产身份面:作用集==diggable 键集/真实点击挖开即灭/移动复亮出圈灭/相位门控两态/开关两态零扰动),十八断言全绿。批末变异验证五组反例实证:M1 归组错映(单测+冒烟红)/M2 清单外静默(冒烟红)/M3 相位切换不重算(冒烟+探针红)/M4 α=0 不绘(渲染闸红)/M5 派生路径误触玩法 API(冒烟相7 分叉红)——红输出与还原结论实录见 reports/iter30-实现报告-2026-10-17.md §四。 2026-10-17 10:18:35 +08:00
DKChan bd44e658e8 feat(views): 未开格类型微光五组实装(迭代 30 卡①·Q1 丙案主路径)——色板与归组单点落 ui_kit(TG_GLOW_* 五组+GLOW_* 组号+glow_group_for_cell_type 九值封闭/glow_color_for_group;α170/带宽 cell÷8/软边 0.55/圆角 2 参数常量);shader 面新建 cell_type_glow.gdshader(canvas_item 距离场内缘带柔光:SDF 圆角掩码+mask_rect 豁免区,参数全经 ui_kit 注入守「呈现层裸 Color8=0」)+承载件 cell_type_glow_layer.gd;board_cell_unit 微光子件生命周期(有组才建、组变即换、无组即撤——作用集 ≤8 格常驻、零节点零绘制成本);board_view 作用集派生 _recompute_glow(= _diggable ∩ 身份可查 ∩ 灯光区 − r0,清单外 cell_type 显式登记禁静默空光)+开关 set_type_glow_enabled(Q4 丙案默认开、生产写入面组合根单点)+相位门控与接触带同源(set_dig_glow_enabled 尾链 _sync_glow_to_units 增量重绘)+取证面 type_glow_probe/cell_rect_probe。群伤组色值 = 冻结绯红 #FF2D55 的 V=0.65 档 #A61D37(2026-10-17 契约 5 停机呈报用户裁定「换更暗档」,色相零移动——初版 #FF1A31 ΔH 5.40° 已废);明度档 provisional 值按 Q2 甲案取、复核归样张批;五组 ΔH ≤0.13° 全数「只动明度不动色相」;生成口径 = 渲染合成空间(伽马)阶梯,相邻组模型 CR 1.245/1.234/1.239/1.270。静态无呼吸(Q5 甲案)。铁律:_glow 容器参数化 Dictionary[Vector2i, int](R1A 无类型容器红线);新文件头注 ≤8 行(S10)。 2026-10-17 10:18:14 +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 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 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 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 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 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