Commit Graph
10 Commits
Author SHA1 Message Date
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