写卡(改写族孤儿机制与退役名清退批·grilling复核落文): 复核门跑完再提交——自纠六处(估时加总 1.5–2.5→2.25–2.75 头部与待办实况同改/两分法句把不可达的 R7 误列真实入口断言→R6·R7·R8 归静态判据/R4 能力行拿无关能力名当占位→换图系刷新链路与效果词表接线+伤害单据编排与回放/T2 引用不存在的 manifest 登记面→实为 run_all.gd:195 负面在册/3.3 表 grant_segment:166 误列注释面且漏 279/GDD 正文写代码路径被能力审计拦→改指针句)+按规约自裁三项(标识符 nest_counter→nest_halve、attune_nest_counter→attune_nest_halve 随文案同批改,依据 code-conventions 用语纪律与退役名清零口径,判据补 grep 零命中/零现役通道与零订阅事件词另登待办一条(状态待写卡·来源=审计发现)/纪律落文:process-conventions §1 第2条新增「卡片复核前置判据」——grilling 先于 commit、commit 先于合回,master 不落未成立卡,req-card 技能两份同文)。验证:run_all_gates --docs 首跑 exit=1(流水线闸红 1=新条目标题来源词不在四选一)→改后 exit=0 无新增红;件核 grep 零残留;卡片未合回前序错一处已记(50e71495 先于复核落,按新判据属违规,本提交为纠偏后成文态)
This commit is contained in:
1 parent
50e7149580
commit
3d502ba46a
3 files changed
+24
-16
No files matched your search
@@ -3,7 +3,7 @@
|
||||
来源:待办清单条目「damage_controller 按序改写族——内容孤儿机制与退役名注释层」(2026-11-04 登记,来源=会话提及)。
|
||||
唯一事实源:`design/gdd/systems/跨局循环/锻造工坊.md` v0.13 §满级特效扩展位(本期已按本批口径订正)+本卡「现状事实」所列代码读数;机制处置与注释口径的裁决记录=2026-11-05 会话,用户裁「只要有问题的都要改」,退役内容名一律清退、零现役注册的改写分支一律摘除。
|
||||
验收档:中(一处玩家可见明细行文案换代+若干不可达分支摘除;不写存档、不改乘区公式与数值表)。
|
||||
估时:1.5–2.5 个工作日。切分预案:T3 注释面若单轮改不完,按文件切成 T3a(core 八件)/T3b(schemas+sim+tests),两张各自收尾,不并进 T1。
|
||||
估时:2.25–2.75 个工作日(T0 0.25+T1 0.5+T2 0.5+T3 0.5–1+T4 0.25+T5 0.25 加总)。切分预案:T3 注释面若单轮改不完,按文件切成 T3a(core 八件)/T3b(schemas+sim+tests),两张各自收尾,不并进 T1。
|
||||
|
||||
---
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
### 3.4 玩家可见文案三处
|
||||
|
||||
- `game/core/reward_grant.gd:226`:`mine_hit` 减半路径发射的结算明细行标签——`"惊巢反制——危险格挖掘惩罚减半(%d→%d)" % [...]`,载荷 `"effect_id": "nest_counter"`。`惊巢反制` 与 `nest_counter` 都是退役件名(素材库表一 :18),而这行文案是玩家能看见的,且这条路径今天可达(有现役锻造锋行驱动——`meta_progression_forge_test.gd:694-700` 正在钉它)。
|
||||
- `game/core/reward_grant.gd:189`:`_cell_removal_open` 空集拒绝 reason——`"爆破工兵包:3×3 区域内无可移除危险格(须未揭示且未封印)"`。该通道 `cell_removal` 在册(`game/data/schemas/treasure_item_table.gd:26`、消费点 `reward_grant.gd:160-161`)但零现役数据行(`game/data/` 全域零命中),所以 reason 今天不可达;文案仍挂退役件名。通道本身不进本批(见第 5 节)。
|
||||
- `game/core/settlement/grant_segment.gd:166`:`mine_hit` 订阅中 `kind=open_ticket` 且 `channel="reflect"` 的行开单,明细标签硬编码 `"惊巢反制·反弹"`,归因串 `"attune_nest_counter"`。`"reflect"` 在 `game/data/tables/` 二十一张表逐张 grep 零命中 → 今天不可达,与 `:189` 同类问题(标签挂退役件名)。通道与 `effect_id` 标识符本身不进本批(见第 5 节)。
|
||||
- `game/core/reward_grant.gd:189`:`_cell_removal_open` 空集拒绝 reason——`"爆破工兵包:3×3 区域内无可移除危险格(须未揭示且未封印)"`。该通道 `cell_removal` 在册(`game/data/schemas/treasure_item_table.gd:26`、消费点 `reward_grant.gd:160-161`)但零现役数据行(`game/data/` 全域零命中),所以 reason 今天不可达;文案仍挂退役件名。通道本体不进本批(见第 5 节),本批只清文案。
|
||||
- `game/core/settlement/grant_segment.gd:166`:`mine_hit` 订阅中 `kind=open_ticket` 且 `channel="reflect"` 的行开单,明细标签硬编码 `"惊巢反制·反弹"`,归因串 `"attune_nest_counter"`。`"reflect"` 在 `game/data/tables/` 二十一张表逐张 grep 零命中 → 今天不可达,与 `:189` 同类问题(标签挂退役件名)。`reflect` 渠道本体不进本批(见第 5 节),本批只清标签与归因串。
|
||||
|
||||
### 3.5 一处 sim 死匹配
|
||||
|
||||
@@ -101,8 +101,8 @@
|
||||
|
||||
| 不收件面 | 为什么不做 | 去向 |
|
||||
|---|---|---|
|
||||
| `EVENTS` 零订阅词普查(含 `armor_roll` 发射点去留) | 与「改写分支」不同轴,是事件词表整体普查 | 待办清单另登条目 |
|
||||
| `effect_kinds`/渠道零现役清退(`cell_removal`、`mine_hit_halve`、`open_ticket` 的 `channel="reflect"` 行族) | 通道在册、有消费点、只缺数据行——判「删通道」要连同 schema 词、归因标识与拒绝文案整体裁 | 同上,与 iter52 孤儿函数清退批同族 |
|
||||
| `EVENTS` 零订阅词普查(含 `armor_roll` 发射点去留) | 与「改写分支」不同轴,是事件词表整体普查 | 待办清单本批同登条目「效果通道与事件词的零现役普查」 |
|
||||
| `effect_kinds`/渠道零现役清退(`cell_removal`、`mine_hit_halve`、`open_ticket` 的 `channel="reflect"` 行族) | 通道在册、有消费点、只缺数据行——判「删通道」要连同 schema 词、归因标识与拒绝文案整体裁 | 同上条目,与 iter52 孤儿函数清退批同族 |
|
||||
| GDD 其余仍提退役内容名的句子(`systems/冒险循环/奇物.md`、`systems/战斗循环/地图战斗资源.md`、`术语表.md`、`00-游戏概念.md`、`03-内容规模.md`) | 属文档面用语,不属代码批 | 反哺点清单,文档批落文 |
|
||||
| `game/tests/unit/core/treasure_items_test.gd:31/33/35` 三个退役件名夹具 | StubDB 自造行,不宣称该件现役;改名动的是测试面 | 无——保留 |
|
||||
| `attack_segments` 词表补摘 | 已随甲案退役,本批只在 GDD 订正错句 | 无——已完成 |
|
||||
@@ -163,8 +163,8 @@
|
||||
|
||||
- [ ] `effect_engine.gd:30` 摘出 `"spike"`(`EFFECT_KINDS` 实数 32→31);`:82` 摘出 `"trade_atk"`, `"trade_hit"`(`DO_KEYS` 19→17 项,实数以摘后 `grep` 行内计数为准)。
|
||||
- [ ] 同文件 `:452` 组合规则注释改为只列现役:「任意真族(任一命中即生效):`spawn_spell`。」;`:64`/`:65`/`:157` 注释改写并入 T3 判据面。
|
||||
- [ ] `game/tests/unit/data_config/effect_kind_retired_test.gd`:按既有形态新增两枚探针——`PROBE_SPIKE_MODE`(注入 `{"kind": "modify_ticket", "mode": "spike"}` 行的夹具目录)与 `PROBE_TRADE_KEY`(注入带 `trade_hit` 键的 do 字典)。各建一个 `user://` 夹具目录常量,沿用 `_inject(dir, probe)` 与 `_assert_rejected` 既有函数,不新建套件文件、不改 `manifest` 以外的机检登记。
|
||||
- [ ] 断言名与尾缀:`_assert_rejected` 内新增两条检查——`"词表闭面:kind=spike 出域拒绝"` 与 `"do 键闭面:trade_hit 出域拒绝"`;套件保持负面形态(`expect=1`、`negative=true`),退出码判据不变。
|
||||
- [ ] `game/tests/unit/data_config/effect_kind_retired_test.gd`:按既有形态新增两枚探针——`PROBE_SPIKE_MODE`(注入 `{"kind": "modify_ticket", "mode": "spike"}` 行的夹具目录)与 `PROBE_TRADE_KEY`(注入带 `trade_hit` 键的 do 字典)。各建一个 `user://` 夹具目录常量,沿用 `_inject(dir, probe)` 与 `_assert_rejected` 既有函数,不新建套件文件。
|
||||
- [ ] 断言名与尾缀:`_assert_rejected` 内新增两条检查——`"词表闭面:kind=spike 出域拒绝"` 与 `"do 键闭面:trade_hit 出域拒绝"`;该套件已在 `game/tests/run_all.gd:195` 负面清单在册(`expect=1`、`negative=true`),本步只加探针,不动在册条目与退出码判据。
|
||||
- [ ] 独立验证先行:只跑该套件(`godot --headless --path game --script res://tests/unit/data_config/effect_kind_retired_test.gd`)出绿,再并入全套。
|
||||
|
||||
### T3 注释面退役名改写(0.5–1 工作日,可切 T3a/T3b)
|
||||
@@ -183,16 +183,16 @@
|
||||
|
||||
取用:T0 采到的改前明细行读数。产出:新标签文本(R5/R6 引用)。
|
||||
|
||||
- [ ] `reward_grant.gd:226` 标签 → `"挖掘惩罚减半(%d→%d)"`;`effect_id` 载荷键与值 `"nest_counter"` 本批保留不动(它是运行期标识符,非文案;改名要连状态容器与既有断言一起动,超出本卡范围,记入实现报告遗留项)。
|
||||
- [ ] `reward_grant.gd:226` 标签 → `"挖掘惩罚减半(%d→%d)"`;同处归因串 `"effect_id": "nest_counter"` → `"nest_halve"`(依代码规范用语纪律清零退役名;该串全仓仅此一处、不进存档不读表,改动面=本行+测试匹配串随动)。
|
||||
- [ ] 同文件 `:183` 与 `:221` 注释随 T3 口径改写;`:189` reason → `"中立移除:3×3 区域内无可移除危险格(须未揭示且未封印)"`。
|
||||
- [ ] `game/core/settlement/grant_segment.gd:166` 明细标签 `"惊巢反制·反弹"` → `"反弹伤害"`;同处归因串 `"attune_nest_counter"`、`channel == "reflect"` 判据与开单参数字典逐字不动(契约 3)。
|
||||
- [ ] `game/core/settlement/grant_segment.gd:166` 明细标签 `"惊巢反制·反弹"` → `"反弹伤害"`,同处归因串 `"attune_nest_counter"` → `"attune_nest_halve"`;`channel == "reflect"` 判据与开单参数字典逐字不动(契约 3)。
|
||||
- [ ] `meta_progression_forge_test.gd`:`:694` 匹配串、`:697` 标签文案、`:699`/`:700` 期望串四处随动到新标签;判据仍绑 `step_row` 采集的 `display_name`,`nc_hit != ""` 与等值断言的强度不得降低。
|
||||
- [ ] `level_autoplay.gd:421` 恒 false 的 `contains("雷区图谱")` 条件与该分支一并删,`:415` 注释随删。
|
||||
- [ ] 窄测:`meta_progression_forge_test`、`round_flow_skill_pool_test`、`damage_controller_test`、`table_structure_guard_test` 四套跑绿。
|
||||
|
||||
### T5 产出物落位卡(0.25 工作日)
|
||||
|
||||
- [ ] 轻闸全绿后、合并前写齐 `reports/<迭代号>-实现报告-<日期>.md`:各 T 卡状态、T0/T2/T3/T4 四条读数、契约 1 三条 grep、改前改后对拍逐位一致结论、实机目检总清单(本批目检项:结算明细行减半标签一眼可读、无退役件名突兀感——登记不阻塞)、遗留读数义务(`nest_counter` 标识符、`cell_removal` 通道、`armor_roll` 事件词三件)、实现决定记录。
|
||||
- [ ] 轻闸全绿后、合并前写齐 `reports/<迭代号>-实现报告-<日期>.md`:各 T 卡状态、T0/T2/T3/T4 四条读数、契约 1 三条 grep、改前改后对拍逐位一致结论、实机目检总清单(本批目检项:结算明细行减半标签一眼可读、无退役件名突兀感——登记不阻塞)、遗留读数义务(零现役通道与零订阅事件词两件,已另登待办条目,见第 5 节)、实现决定记录。
|
||||
- [ ] `reports/<迭代号>-反哺点-<日期>.md`:第 6 节每条都要有落点,含「明细标签是否入表」这条规范裁决点。
|
||||
- [ ] 里程碑步出口跑一次全套闸(`tools/run_all_gates.sh --code`);波内出红只做出红最小单元最窄确认。
|
||||
|
||||
@@ -203,13 +203,13 @@
|
||||
| R1 | 摘四段不可达改写分支(锚 `design/engineering/code-conventions.md:15`) | `damage_controller.gd:297-302/305-309/310-313/351-353/368-372/320-323/623` | `damage_controller_test.gd:_run_recipe_sequence`;`roll_multiplier_test.gd:_smoke_armor_roll`;`round_flow_skill_pool_test.gd:_smoke_full_battle`+dump_battle 六组逐字节比对 | 单元+集成 | `BattleOrchestrator.begin_battle()` → 主角先手开单兑付全链 | `step_row` 明细行文本与 `outcome` 取值逐位=T0 基线;静态判据=契约 1 三条 grep 零注册+摘后键集 grep 零 `spike_ready`。**观测面局限申报**:零现役注册行使分支不可达,无法从真实入口造出命中;禁人为注入表行取证(全项目禁变异类测试) | 既有:伤害单据编排与回放;既有:伤害公式与掷点乘区;既有:轮内流与结算五段全序 |
|
||||
| R2 | `EFFECT_KINDS` 摘 `spike`(锚 `design/engineering/code-conventions.md:15`) | `effect_engine.gd:30` | `effect_kind_retired_test.gd:_assert_rejected`(新断言「词表闭面:kind=spike 出域拒绝」,尾缀 `expect=1 negative=true`) | 单元(负面,独立进程) | `ConfigDB.load_tables()` → `EffectEngine.validate_trigger_row` | 出域错误载荷含 `effect_kinds 出域` 文案+进程退出码 1 | 既有:加载期违规表拒绝:跨表悬空/计数器前缀/真视窄域/效果类型出域 |
|
||||
| R3 | `DO_KEYS` 摘 `trade_hit`/`trade_atk`(锚 `design/engineering/code-conventions.md:15`) | `effect_engine.gd:82` | `effect_kind_retired_test.gd:_assert_rejected`(新断言「do 键闭面:trade_hit 出域拒绝」) | 单元(负面,独立进程) | `ConfigDB.load_tables()` → `EffectEngine.validate_trigger_row` | 键出域拒绝错误载荷含 `trade_hit`+进程退出码 1 | 既有:加载期违规表拒绝:跨表悬空/计数器前缀/真视窄域/效果类型出域 |
|
||||
| R4 | 注释面退役名清零 13 文件 42 行(锚 `design/engineering/code-conventions.md:26`) | 3.3 表全部注释行号 | 静态判据:3.3 那条扫描命令注释面命中 0,读数贴实现报告;`--code` 域内静态扫描与 S11 段不变红;宿主既有套件逐位不变 | 静态(闸件扫描) | `BattleOrchestrator.begin_battle()` 链上宿主套件(改写面不进运行期) | 逐文件 grep 读数(文件名+行号+命中 0)+宿主套件回归 | 既有:伤害单据编排与回放;既有:加载期违规表拒绝:跨表悬空/计数器前缀/真视窄域/效果类型出域 |
|
||||
| R5 | 减半明细行去退役件名(锚 `design/engineering/doc-conventions.md:47`) | `reward_grant.gd:226` | `meta_progression_forge_test.gd:_smoke_tree_rules`(换代断言串,落点 694/697/699/700) | 集成(信号采集) | 锻造锋线满级特效 → `BattleOrchestrator.begin_battle()` → `mine_hit` 减半路径 → `step_row` 信号 | `step_row` 行 `display_name` == 「挖掘惩罚减半(6→3)」,且 `power` 减半数值与发射次数逐字不变 | 既有:天赋树购买与六键合成 |
|
||||
| R4 | 注释面退役名清零 13 文件 42 行(锚 `design/engineering/code-conventions.md:26`) | 3.3 表全部注释行号 | 静态判据:3.3 那条扫描命令注释面命中 0,读数贴实现报告;`--code` 域内静态扫描与 S11 段不变红;宿主既有套件逐位不变 | 静态(闸件扫描) | `BattleOrchestrator.begin_battle()` 链上宿主套件(改写面不进运行期) | 逐文件 grep 读数(文件名+行号+命中 0)+宿主套件回归 | 既有:换图系刷新链路与效果词表接线;既有:伤害单据编排与回放 |
|
||||
| R5 | 减半明细行去退役件名(锚 `design/engineering/doc-conventions.md:47`) | `reward_grant.gd:226` | `meta_progression_forge_test.gd:_smoke_tree_rules`(换代断言串,落点 694/697/699/700) | 集成(信号采集) | 锻造锋线满级特效 → `BattleOrchestrator.begin_battle()` → `mine_hit` 减半路径 → `step_row` 信号 | `step_row` 行 `display_name` == 「挖掘惩罚减半(6→3)」,且 `power` 减半数值与发射次数逐字不变;`grep -r nest_counter game/` 零命中 | 既有:天赋树购买与六键合成 |
|
||||
| R6 | 空集拒绝 reason 去退役件名(锚 `design/engineering/test-conventions.md:116`) | `reward_grant.gd:189` | 静态判据:`grep -c 爆破工兵包 game/core/reward_grant.gd` == 0;`table_structure_guard_test.gd` 与 `extended_row_violation_test.gd:_init` 跑绿 | 静态+单元 | `ConfigDB.load_tables()` → `_cell_removal_open` 所在兑付链(零现役行不可达) | grep 零命中读数+通道校验面绿。**观测面局限申报**:`cell_removal` 零现役行,reason 不可达,禁造行取证 | 既有:加载期违规表拒绝:跨表悬空/计数器前缀/真视窄域/效果类型出域 |
|
||||
| R7 | 反弹明细标签去退役件名(锚 `design/engineering/doc-conventions.md:47`) | `grant_segment.gd:166` | 静态判据:`grep -rc "惊巢反制·反弹" game/` == 0;`round_flow_skill_pool_test.gd:_smoke_full_battle` 跑绿 | 静态+集成 | `BattleOrchestrator.begin_battle()` → `mine_hit` 订阅施加链(`channel="reflect"` 二十一张表零命中,今天不可达) | grep 零命中+发射面零变化回归。**观测面局限申报**:同上,禁造行取证 | 既有:轮内流与结算五段全序 |
|
||||
| R7 | 反弹明细标签去退役件名(锚 `design/engineering/doc-conventions.md:47`) | `grant_segment.gd:166` | 静态判据:`grep -rc "惊巢反制·反弹" game/` == 0 且 `grep -rc "attune_nest_counter" game/` == 0;`round_flow_skill_pool_test.gd:_smoke_full_battle` 跑绿 | 静态+集成 | `BattleOrchestrator.begin_battle()` → `mine_hit` 订阅施加链(`channel="reflect"` 二十一张表零命中,今天不可达) | grep 零命中+发射面零变化回归。**观测面局限申报**:同上,禁造行取证 | 既有:轮内流与结算五段全序 |
|
||||
| R8 | sim 恒 false 匹配删除(锚 `design/engineering/test-conventions.md:116`) | `level_autoplay.gd:415/421` | 静态判据:`game/sim/` 全域 grep `雷区图谱` 零命中;`--code` 域内驱动件相关套件跑绿 | 静态+单元 | `game/sim/level_autoplay.gd` 驱动链(测量面,不进游戏运行) | grep 零命中+套件绿。**观测面局限申报**:恒 false 条件不可达,禁造行取证 | 既有:轮内流与结算五段全序 |
|
||||
|
||||
测试方式两分法:R1/R2/R3/R5/R7 归调试接口与真实入口断言(无需目检);R5 的观感归用户目检——目检项「结算明细减半标签文本可读」写进实现报告总清单,登记不阻塞,不作合回前置。
|
||||
测试方式两分法:R1/R2/R3/R5 归调试接口与真实入口断言;R6/R7/R8 三处的改动点今天不可达(零现役注册行驱动),一律走静态判据+观测面局限申报,禁造行取证,也不设目检;R5 的文本观感归用户目检——目检项「结算明细减半标签文本可读」写进实现报告总清单,登记不阻塞,不作合回前置。
|
||||
|
||||
闸口径:本批改动含 `game/` 下非 `.md` 行为载体 → 按 `tools/run_all_gates.sh --code` 选档,所选域全绿才合并;卡内不写死闸件名单。
|
||||
|
||||
|
||||
Reference in new issue
Block a user