docs(术语): 设计文档术语刷新批全量入库——2026-10-18 用户裁定(金币/插旗/旗/雷格/惩罚格 五词)design/+tools/ 域落文

- 术语表 v1.13:GP 唯一正式命名(删「局内金币」别名)+旗/控制词条更名封印/控制+封印定性由「插旗的对外表达」更正为正式动作名(全库统一、非比喻)+禁用字面从对外命名扩为全库+删「机制文档内部用语不受限」条款+退役词对照表补三行(金币→GP/插旗→封印/旗→封印印记)+危险格词条「被旗控制」→「被封印控制」+B3 豁免例举去旗
- 机检扩容 tools/doc_term_audit.py:RETIRED_TERMS 新增 金币→GP、插旗|标旗→封印 两行(DEFAULT_DIRS 不变,game/ 扫描归代码批);拔旗|撤旗行继任措辞随批换代(插旗不可逆→封印不可逆)
- GDD 全域正文换代约 200 行/31 文件:金币→GP(金币袋→GP 袋)、插旗/标旗→封印、雷格/惩罚格→危险格(2026-10-11 退役批存量补扫)、旗概念→封印印记(旗判定→封印判定/标中旗→封印标中/标错旗→标错封印/旗格→封印格/旗位→封印位等复合词系);00-游戏概念「封印降级为类型风味词」定性翻转;修订记录/版本历史/禁令引举/更名记载等留档行零动
- registry/entities.yaml(信标网络可达性/事件序/回执驱动三处)+art 五件(art-bible 封印印记六处/comfyui 背旗→背负封印印记/两清单)+dev 七件(architecture 旗集→封印集/code-conventions-cases/test-conventions/架构图 html json 四件)随批换代
- tools 四脚本注释与图内标注换代(clear_dominance_audit/render_sample_sheet×2/analyze_playtest;代码标识符零动归代码批)
- design/qa/代码术语审计报告-2026-10-18.md 随批入库(本批参考素材,06:578 引用闭合 doc_link 死链)
- 06-待办清单/术语表两在途脏件(代码术语批 06 登记+A 表头「不用→禁用」)随批一并入库

自检:doc_term_audit --strict 零疑似现行(45 文件 434 命中全留档类);文档域六闸验收通过无新增红(gdd_lint R3 对 00 正文修订注记一次打回已去注记化改写;doc_link 死链经报告入库闭合);正文残留仅 06:73「拔旗」一处(件派生动词白名单豁免语境、机检同款豁免,设计意图记录不动)
This commit is contained in:
DKChan committed 2026-10-18 06:15:38 +08:00
1 parent 89fb640586
commit bbd49abfb0
49 files changed
+345 -205

No files matched your search

+2 -2
View File
@@ -103,7 +103,7 @@
| 模块 | 独占职责 | 对外暴露 | 消费依赖 | 引擎 API |
|---|---|---|---|---|
| **board_generator**(A1) | 生成算法(五阶段管线)、BoardGenTable 回填、生成期指标集、合法性谓词(clearable / R₀≠S / min_safe)、可推理率度量(metric_version);生成姿态 = MVP 同步生成 + 加载幕(切片实证 10×10/12×12 同步可接受,WorkerThread 留扩展) | `generate(L, D, rng) -> Board`;度量独立入口×3(推理器 / F3 度量 / 合法性谓词——独立纯函数、同一实现) | ConfigDB(BoardGenTable/VariationTable);board_gen 流(一次 open_stream = 一张图);dig_ap_cost 只读 | 无 |
| **minesweeper_rules**(A2) | 棋盘状态(已开集 O / 旗集 G / 小人位)、三事件面、批次仲裁、install 四不变式 | `install_board(board)`;`settle_batch(intents)`(唯一提交入口);try_dig / try_flag_place / try_flag_pull / try_move(便捷形);`compute_move_path(cell)` 只读;`retire_board()`;三源拒绝(board_face / resource_face / phase)+ sub_reason 封闭枚举 | A1 产物(Board class_name 数据契约);A3 try_spend / last_round_end / 相位 | 无(零表读取、零 UI——切片实证) |
| **minesweeper_rules**(A2) | 棋盘状态(已开集 O / 封印集 G / 小人位)、三事件面、批次仲裁、install 四不变式 | `install_board(board)`;`settle_batch(intents)`(唯一提交入口);try_dig / try_flag_place / try_flag_pull / try_move(便捷形);`compute_move_path(cell)` 只读;`retire_board()`;三源拒绝(board_face / resource_face / phase)+ sub_reason 封闭枚举 | A1 产物(Board class_name 数据契约);A3 try_spend / last_round_end / 相位 | 无(零表读取、零 UI——切片实证) |
| **unit_container**(B2) | hero/enemy 单位实例(hp/atk/实例池:池快照+冷却+摇定动作+保底计数)、行值快照 | spawn / query_alive / rollable_skills / special_skills / set_pending_action / pending_action / basic_streak / commit_action / tick_cooldowns / apply_damage / heal / default_target / ambush_grant_plan / despawn_all(2026-09-16 敌人技能池批:query_beat/query_attack/advance 随行为环退役) | ConfigDB(EnemyTable/SkillTable/HeroTable) | 无 |
| **reward_economy**(B4) | 格面资源身份映射(install 期预分配、Ready 只读、换图映射消亡)、极性路由字典面((类型, 极性)→ 字典行查询;路由执行归 B1 授予段)、F6 当量供给投影 | 封闭 API:roll_board / query_identity / query_full_snapshot / grant / grant_clear / retire_mapping / polarity_row / equivalence_supply / phase / weighted_pick;另有 is_mapped 静默布尔投影(批量工具用) | ConfigDB(RewardTable);reward_roll 流(scope = 每次 install 批) | 无 |
| **helper_items**(A5,切片已实装秘宝域) | HelperItemTable、探测显影语义 | (契约规范源:`../../gdd/systems/跨局循环/秘宝.md`——桥接位:A2 查询接口 + A4 counter_item_ids) | A2 / A4 / B4 | 无 |
@@ -263,7 +263,7 @@
```
Input(鼠标)→ D1 输入翻译 → 意图对象 → A2.settle_batch(唯一提交入口)
→ A3.try_spend(原子扣减)→ A2 棋盘效果(挖/连锁/旗/移动)→ 三事件外发
→ A3.try_spend(原子扣减)→ A2 棋盘效果(挖/连锁/封印/移动)→ 三事件外发
→ [棋盘渲染:D1 BoardView 按事件增量重绘;无事件帧 = 静态 + 动效]
→ 轮次结束 → A3 Waiting → B1 结算编排(段序七段)→ 明细步骤流 → D1 结算屏逐行呈现
```
@@ -5165,7 +5165,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
<!-- Connection paths (before components for correct z-order) -->
<path data-edge-from="main" data-edge-to="stage" data-edge-key="0" data-edge-id="main-stage" data-composition-points="566,132;566,196;125,196;125,260" d="M 566 132 L 566 188 Q 566 196 558 196 L 133 196 Q 125 196 125 204 L 125 260" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
<path data-edge-from="main" data-edge-to="hero" data-edge-key="1" data-edge-id="main-hero" data-composition-points="580,132;580,196;335,196;335,260" d="M 580 132 L 580 188 Q 580 196 572 196 L 343 196 Q 335 196 335 204 L 335 260" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
<path data-edge-from="board" data-edge-to="main" data-edge-label="翻开·插旗·和弦" data-edge-key="2" data-edge-id="board-main" data-composition-points="594,260;594,132" d="M 594 260 L 594 132" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
<path data-edge-from="board" data-edge-to="main" data-edge-label="翻开·封印·和弦" data-edge-key="2" data-edge-id="board-main" data-composition-points="594,260;594,132" d="M 594 260 L 594 132" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
<path data-edge-from="hero" data-edge-to="board" data-edge-label="秘宝两步交互" data-edge-key="3" data-edge-id="hero-board" data-composition-points="420,304;510,304" d="M 420 304 L 510 304" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
<path data-edge-from="main" data-edge-to="save" data-edge-label="存档读写" data-edge-key="4" data-edge-id="main-save" data-composition-points="480,96;28,96;28,512;161,512;161,554" d="M 480 96 L 36 96 Q 28 96 28 104 L 28 504 Q 28 512 36 512 L 153 512 Q 161 512 161 520 L 161 554" class="a-dashed" stroke-width="1.5" marker-end="url(#arrowhead-dashed)"/>
<path data-edge-from="orch" data-edge-to="stage" data-edge-label="结算回流" data-edge-key="5" data-edge-id="orch-stage" data-composition-points="448,554;448,376;125,376;125,348" d="M 448 554 L 448 384 Q 448 376 440 376 L 133 376 Q 125 376 125 368 L 125 348" class="a-emphasis" stroke-width="1.8" marker-end="url(#arrowhead-emphasis)"/>
@@ -5628,9 +5628,9 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
<!-- Connection labels -->
<g data-detail="context" data-edge-from="board" data-edge-to="main" data-edge-label="翻开·插旗·和弦" data-edge-key="2" data-edge-id="board-main">
<g data-detail="context" data-edge-from="board" data-edge-to="main" data-edge-label="翻开·封印·和弦" data-edge-key="2" data-edge-id="board-main">
<rect x="555.4" y="240" width="77.2" height="14" rx="3" class="c-mask"/>
<text x="594" y="250" class="t-muted" font-size="8" text-anchor="middle">翻开·插旗·和弦</text>
<text x="594" y="250" class="t-muted" font-size="8" text-anchor="middle">翻开·封印·和弦</text>
</g>
<g data-detail="context" data-edge-from="hero" data-edge-to="board" data-edge-label="秘宝两步交互" data-edge-key="3" data-edge-id="hero-board">
<rect x="431.2" y="284" width="67.6" height="14" rx="3" class="c-mask"/>
@@ -5871,7 +5871,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
<h3>战斗动作链</h3>
</div>
<ul>
<li>&bull; 棋盘区 翻开/插旗/和弦 → 组合根 → 战斗编排器规则判定</li>
<li>&bull; 棋盘区 翻开/封印/和弦 → 组合根 → 战斗编排器规则判定</li>
<li>&bull; 结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区</li>
<li>&bull; 秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效</li>
</ul>
@@ -601,7 +601,7 @@
"id": "board-main",
"from": "board",
"to": "main",
"label": "翻开·插旗·和弦",
"label": "翻开·封印·和弦",
"fromSide": "top",
"toSide": "bottom"
},
@@ -680,7 +680,7 @@
"dot": "emerald",
"title": "战斗动作链",
"items": [
"棋盘区 翻开/插旗/和弦 → 组合根 → 战斗编排器规则判定",
"棋盘区 翻开/封印/和弦 → 组合根 → 战斗编排器规则判定",
"结算回流:血量攻防→角色信息区 · 受击演出→展示区 · AP 扣减与提示→棋盘区",
"秘宝槽点击走两步交互:角色信息区 → 棋盘区/即刻生效"
]
@@ -5184,8 +5184,8 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
<text data-detail="fine" x="94" y="356" class="t-backend" font-size="7" text-anchor="middle">ACTION_ECONOMY</text>
</g>
<g id="node-minesweeper" data-node-id="minesweeper" data-node-label="排雷循环" tabindex="0" role="button" aria-label="聚焦排雷循环,挖格·插旗·连锁展开, 局内 · 一条命的冒险" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="挖格·插旗·连锁展开" data-node-tag="MINESWEEPER_CYCLE" data-node-context="局内 · 一条命的冒险">
<title>排雷循环 · 挖格·插旗·连锁展开 · 局内 · 一条命的冒险 · MINESWEEPER_CYCLE</title>
<g id="node-minesweeper" data-node-id="minesweeper" data-node-label="排雷循环" tabindex="0" role="button" aria-label="聚焦排雷循环,挖格·封印·连锁展开, 局内 · 一条命的冒险" aria-pressed="false" data-node-kind="frontend" data-node-sublabel="挖格·封印·连锁展开" data-node-tag="MINESWEEPER_CYCLE" data-node-context="局内 · 一条命的冒险">
<title>排雷循环 · 挖格·封印·连锁展开 · 局内 · 一条命的冒险 · MINESWEEPER_CYCLE</title>
<rect x="236" y="300" width="150" height="64" rx="6" class="c-mask"/>
<rect x="236" y="300" width="150" height="64" rx="6" class="c-frontend" stroke-width="1.5"/>
<g aria-hidden="true" data-semantic-sigil="frontend" class="semantic-sigil s-frontend" transform="translate(242 306) scale(0.6875)">
@@ -5195,7 +5195,7 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
<circle cx="6.3" cy="4.8" r=".7" class="sigil-fill"/>
</g>
<text data-node-label="" data-detail-anchor="" x="311" y="330" class="t-primary" font-size="11" font-weight="600" text-anchor="middle">排雷循环</text>
<text data-detail="context" x="311" y="346" class="t-muted" font-size="9" text-anchor="middle">挖格·插旗·连锁展开</text>
<text data-detail="context" x="311" y="346" class="t-muted" font-size="9" text-anchor="middle">挖格·封印·连锁展开</text>
<text data-detail="fine" x="311" y="356" class="t-frontend" font-size="7" text-anchor="middle">MINESWEEPER_CYCLE</text>
</g>
@@ -27,7 +27,7 @@
"id": "minesweeper",
"type": "frontend",
"label": "排雷循环",
"sublabel": "挖格·插旗·连锁展开",
"sublabel": "挖格·封印·连锁展开",
"tag": "MINESWEEPER_CYCLE",
"pos": [
236,
+2 -2
View File
@@ -20,7 +20,7 @@ main.gd 头注曾累积 42 行——历次提交各自追加「本批做了什
## 2.1 信号契约缺失(软锁)
旗动作花完末点 AP 后相位翻 Waiting 但不发 round_end,结算点依赖该事件 → 整局软锁;自动玩家不用旗,冒烟路径覆盖不全没抓住。
封印动作花完末点 AP 后相位翻 Waiting 但不发 round_end,结算点依赖该事件 → 整局软锁;自动玩家不用封印,冒烟路径覆盖不全没抓住。
## 2.2 标识符语义错位
@@ -47,7 +47,7 @@ spawn 把 hero 的 max_hp 设为入参 hero_hp——跨战斗携带 HP 时上限
| 缺陷 | 现象 | 对应规则 |
|---|---|---|
| UI 抖动 / "第3轮"消失 | 悬停文案换行推挤侧栏,末行被挤出视口 | 1.1 拆分 + 视图定长槽 |
| Boss 战 AP 用完不结算(软锁) | 插旗耗尽末点 AP 后整局冻结 | 2.1 事件发射完整性 |
| Boss 战 AP 用完不结算(软锁) | 封印耗尽末点 AP 后整局冻结 | 2.1 事件发射完整性 |
| 道具使用后不消失 | 选用件留存、邻件被误耗 | 2.2 标识符语义单一 |
| 调整板点击无反应 | 面板已实现但被开始层遮挡 | 2.3 层级规则 + test-conventions §2 |
| 上帝对象 | main.gd ~1100 行 | 1.1–1.3 |
+2 -2
View File
@@ -21,13 +21,13 @@
## 3. 缺陷修复必须沉淀回归断言
每个缺陷修复必须在探针或冒烟中留下能抓住该缺陷的断言(例:旗动作耗尽 AP → 必须进入第 2 轮;
每个缺陷修复必须在探针或冒烟中留下能抓住该缺陷的断言(例:封印动作耗尽 AP → 必须进入第 2 轮;
选用道具 → 库存态必须变 Used)。没有回归断言的修复视为未完成。
## 4. 提交前全量验证
交付前跑 `tools/run_all_gates.sh`(不带 `--quick`)全绿——该脚本是全部验证闸的唯一入口与唯一清单,本文禁另列闸件清单。闸件增减只改脚本。
行为探针使用随机化玩家行为(旗/停手/刷新/无效点击)——自动玩家不做的动作就是测试盲区。
行为探针使用随机化玩家行为(封印/停手/刷新/无效点击)——自动玩家不做的动作就是测试盲区。
## 5. 测试函数怎么写——验收清单条目的落码规范