DKChan
869d00d678
docs(card): 需求卡片 v1.2——开工前自查,钉死四处会卡住施工方的口径
逐条自查「施工方会不会回头问」,查出并定死四处(另有两处笔误订正):
**1. S11 词表范围与 §4「不做」自相矛盾(最严重)**
原 T1 写「词表=退役词对照 + 用语规范 A 表禁用列全部」,但 §4 已把 A 表词
(不得 14/报错 18/对标 1/若干 1/buff 22)列为「不做、待用户另裁」。
⇒ 原写法会让 S11 一落闸就红 56 处,批末闸必然红、无法合回。
定死:词表=退役词对照节第一列 + 显式追加「完美排雷」完整短语;
明确不收 A 表词、不收单字「雷」。A 表将来裁入时另行扩表并单独立批。
**2. 单字「雷」会误伤 26 处保留词**
「排雷玩法/排雷规则」是内部机制名(§10 明定不扩大禁词面),
按单字「雷」扫会全部误判。定死:只收「完美排雷」完整短语。
**3. N7 修法不可行——_fx_emit 有状态,重复调用重复消费限次**
_fx_emit = _fx.dispatch(battle_orchestrator.gd:90-93),forgive_seal_miss 行
走 when lt 1 限次并由 _apply_counter_hit 记账 ⇒ 「先跑一次算 hl 再跑原循环」
会消费两次限次、归因行发两次。
定死:改为把 _emit_row("seal_miss")(:302)**后移**到 _fx_emit 循环(:308-317)之后,
循环跑完 _perfect_forgiven 已就位再判 hl。已实测
grep "insurance_used|perfect_insurance" game/smoke/smoke_all.gd 零命中
⇒ 行序调换不涉冒烟断言。
**4. A10/A11 断言落点不可执行**
原写「断言日志出现/不出现字样」,但日志文本由呈现层 battle_log_view._format_row
生成,core 层单测拿不到。定死:断言 seal_miss 行的 highlight 字段值
(未装备 == "perfect_broken"/装备 == ""),落点 tests/unit/core/;
另加 A12 断言两态文案与呈现分支一致且不含「雷」。
**另订正两处**:§4「做」列表重复第 6 项(完美排雷出现两次);
T4 步骤 adventure_runner.gd 漏列 :771(写 11 处只列 10 个行号)。
**同步新增**:契约 9 S11 闸门自指豁免(smoke_all.gd:1319 的禁字面检查行与
ui_font_asset_test.gd:18-19 字形夹具不含对照性信号,会被自指判红);
变异验证增「去掉自指豁免」一条;代拍板/范围边界措辞同步。
处数对账复核:T3=26/T4=35/T5=11/T6=9,与 §2 清单一致。
流水线闸 PASS:06 条目 64 · 总表数据行 32 · 交叉核 3 链 · 卡片口径 22 张全过。
2026-10-20 03:32:59 +08:00
..
2026-10-19 19:57:00 +08:00
2026-10-20 00:10:43 +08:00
2026-10-20 02:34:59 +08:00
2026-10-19 06:04:09 +08:00
2026-10-20 03:32:59 +08:00