Files
gplan-2/CLAUDE.md
T
DKChan d5783a5740 refactor(tools): 测量面去单关直入口——难度读数改冒险条件口径(用户指令 2026-09-23)
- verifier_batch.gd: level 段(直入口单关基线 360 局/全量)整段移除——满血零上下文进关
  与真实冒险条件通关率脱节(直入口 L2 普通 5% vs 营地检查点 L2 条件 90% 同期并存),
  曾误导曲线调参;逐关读数由 adventure 段行内 levels_cleared/stopped_at 派生,零补采
- balance_verifier.py: 直入口验收带(LEVEL_BANDS)退役,新增①逐关条件通关率表
  (通关数/到达数,±95%CI,带待重锚只测不判——重锚归曲线调参批);营地检查点判定同批
  暂停(旧带值锚直入口读数不可比);--n 参数随段删除;--from-raw 兼容旧 raw(level 行忽略)
- 退役 level_monte_carlo.gd + level_debug.gd(单关扫描/单关诊断——同口径产 misleading 数据,
  替代面 = balance_verifier 冒险段 / adventure_monte_carlo)
- level_autoplay 头注:run_level 降格机制夹具/单战锚点专用——通关率/难度类测量禁用
- 保留面(非测量,零改动):smoke_all 机制夹具(治疗数学/选路状态机/L2 首遇战 12 种子锚行)、
  rhythm_batch/defense_scan/damage_probe 单战机制扫描——断言对象是具体机制非通关率数据
- 文档同步:难度曲线与Boss v0.19(带口径退役注记:调参表行+验收标准行+版本历史)/
  entities.yaml(clear_rate_target 两轮过期带值对齐退役注记+tool_carrier 换主载体)/
  CLAUDE.md(工具行两处)/ README(headless 工具节)/ 07-体验验证清单 / docs/code-conventions
  §5.2 / board_stat_probe 注释
- 验证:py_compile 过;冒烟 553 项 0 失败三闸全过;balance_verifier --quick 端到端 36 局
  2.7 分钟出报告(完美档逐关 87.5%→42.9%→0% 冒险条件口径首读数);doc 三闸失败集与
  master 逐项一致(lint 8/死链 7/term 1 均既有)
2026-09-23 05:24:13 +08:00

6.0 KiB
Raw Blame History

Dungeon Sweeper(扫雷 × 自动战斗 闯关 Roguelike)

扫雷推理层 + 自动战斗结算的两段式回合 Roguelike。个人开发,MVP 优先管线。 设计入口:design/gdd/02-系统清单.md(根索引)· 概念:design/gdd/00-游戏概念.md · 旧版 GDD 归档(只读参考):design/archive/gdd-2026-09-14/

本文件只保留全局元信息与硬性红线;一切领域细则在子文档,动手前先查「规范导航」。

Technology Stack

  • Engine: Godot 4.7.2 · Language: GDScript · Build: SCons(engine)+ Godot Export Templates · 资源管线: Godot Import System + 自定义 resource pipeline
  • Godot 可执行文件(本机固定路径):D:\code\godot\Godot_v4.7.2-stable_win64_console.exe——headless / 命令行一律用 console 版;编辑器版为同目录 Godot_v4.7.2-stable_win64.exe

Engine Version Reference

@docs/engine-reference/godot/VERSION.md

运行与验证(垂直切片)

工作目录 = 切片目录本身(含 project.godot 的那一层):

  • 冒烟(全量 headless 断言):python tools/run_smoke.py(包装器三闸:退出码+摘要失败数+SCRIPT ERROR 扫描——脚本错误不计冒烟失败数且静默中断所在函数剩余断言,2026-09-19 台账 84 立闸)。底层命令 = …console.exe --headless --path . --script res://smoke/smoke_all.gd
  • 场景级探针(呈现层回归):…console.exe --headless --path . res://smoke/ui_probe.tscn;另有 ui_tune_probe.tscn(数值调整板)、ui_click_probe.tscn(合成鼠标事件行为探针)
  • 调参期批量工具:--script res://smoke/adventure_monte_carlo.gd(全冒险期望扫描)· --script res://smoke/reward_expectation.gd(奖励获取期望)——单关直入口口径已退役(2026-09-23 用户拍板),通关率/难度类测量一律走全冒险(原 level_monte_carlo/level_debug 已删)
  • 数值验证工具:python tools/balance_verifier.py(零强化冒险逐关条件通关率+止步节点归因+营地循环爬升战役——采集端 --script res://smoke/verifier_batch.gd,报告落 production/qa/;元进度换算率标定与曲线调参的自动化评判面,2026-09-22 数值验证工具批;直入口带判定随口径退役暂停,带重锚归曲线调参批)
  • 交付前验收 = smoke + 全部场景探针全绿(测试细则见 docs/code-conventions.md)

Project Layout

  • design/gdd/ — 现行设计文档树(根索引 02-系统清单.md;文档增删必须同步它)
  • design/archive/gdd-2026-09-14/ — 旧版 GDD 归档(只读参考,不作事实引用)
  • design/registry/ — 跨系统事实登记(术语规范名、已锁数值)
  • production/ — stage、session-state、roadmap、gate-checks、qa
  • prototypes/dungeon-sweeper-vertical-slice/ — 垂直切片(概念 demo 已删,验证报告留档 docs/prototype-report-minesweeper-battle-concept.md)
  • docs/ — 规范与参考文档(权威清单见下方导航)

规范导航(动手前先查表)

时机 权威文档
写代码 / 改代码前 docs/code-conventions.md——结构 / 契约 / 测试 / 语言 / 数值 / 流程六类硬纪律 + 反面案例对照表
写文档 / 改文档前 docs/doc-conventions.md——可读性第一、白话写作、概念封装、引用纪律、文档骨架
查系统设计 / 增删文档 design/gdd/02-系统清单.md——根索引 + 中文规范名↔英文代号对照表
架构与决策记录 docs/architecture/architecture.md + 同目录 adr-*.md
引擎版本与参考 docs/engine-reference/godot/(版本表已在上方 @ 引入)
术语、已锁数值 design/registry/entities.yaml——仅 owner 文档可修订,冲突须显式提出
会话进度记录 production/session-state/active.md——顶部「当前状态快照」节 + 批次台账;收口先改快照再记账,每条 ≤3 行,详情外链
工程路线图 production/roadmap.md——里程碑时间线与下一步顺序(批级视图;实时状态看快照节)

分支纪律(worktree 铁律,2026-09-19 用户立规)

主工作区(本目录,master 检出)只作合并落点与共享状态载体,一切开发/设计改动不得直接发生在主工作区:

  1. 开工:每个任务批次先建独立 worktree 分支再动手:git worktree add ../g-plan2-<任务名> -b <任务分支>。所有代码/文档/数值改动与验证跑测都在 worktree 内进行(注意:未跟踪文件不会出现在新 worktree,需手工搬运)
  2. 收尾:验证全绿(冒烟 + 场景探针)后,在主工作区 git merge --no-ff <任务分支> 落回 master,然后 git worktree remove + 删分支;合并前先看 active.md 尾部台账,避免与并行会话撞号/漏捎带
  3. 豁免面(仅这两处允许主工作区直改):production/session-state/(会话收口)与 .zcode/(钩子配置)——其余一律走 worktree;主工作区 git commit 会被钩子直接拦截
  4. 本铁律由 PreToolUse 钩子 .zcode/hooks/worktree-guard.sh 强制兜底;钩子只约束 agent 侧,用户本人手工改动不受限

硬性红线(勿违反)

  • worktree 铁律:主工作区禁止直接改动与提交(细则见上节;并行会话各占 worktree 互不踩踏)

  • 数值单一事实源:玩法数值只存 data/tables/(.tres),经 ConfigDB autoload 类型化单点读取;禁止数值字面量与自建 load() 表路径

  • RNG 单点:禁止 randomize() / 自建 RandomNumberGenerator——随机只经 RngService 封闭命名流

  • Core 层零 UI 依赖:完整战斗必须可 --headless --script 跑通

  • fail-fast:数据校验错误一律致命中止,无软回退

  • spec-AC 一致性:规约与验收标准不得在同一输入上给出不同答案(所有 GDD 同尺度)

  • 评审隔离:/design-review 必须在独立会话跑(与 /design-system 隔离)