feat(令牌配额口径清扫·提前实施卡批): 照需求卡片 v1.2(reports/需求卡片-令牌配额口径清扫批-2026-10-26.md,用户 2026-10-26 裁准提前实施并从简)落地十一处清扫+两处配套——q1 schema 头注四处(:32-36 段并单口径现行句 70/25/7/0=102、:49 位序句、:58「总量 98 锚」→102、:202 deck_total 旧 104 句按实算改写=tier_total 四档求和 102,凭证走 feat_ticket_* 不进牌库);q3 tres 头注五处(批次1 已并,本笔订正一处失实:删「配额键未载表补表归待办」句——写卡会话实查 B1 论断:ap_rare 显式载表与默认同值、rap/时沙走缺省合法,validate 含默认求和恰=常量 7 且绿,无补表义务);q4 golden README「魔法道具 HUD」→「秘宝 HUD」(采直换新名形态,不落「时名」括注以免撞 S11——卡片措辞方向内)+宿主断言标签(批次1)+验证集清单重生成 1583 条对账零差异;B4b 三处「罕见」按裁定原文保留,S11 显式留档豁免单登记 4→7 处(adventure_table:26 档名映射注+:93 与 curio_deck:130 契约④原名引述,附出处注)——补齐卡片关联同步面未列的闸口缺口。契约1 数值与断言条件零触碰(TIER_QUOTAS/三处默认/tres 数值行/条件表达式逐字不动)。卡片与待办条目随批删除(用户裁:活干完登记即毁),验收证据随本信息与下笔撤销证明留档
This commit is contained in:
1 parent
7d2fbe158f
commit
89605e42e6
7 files changed
+16
-190
No files matched your search
@@ -29,9 +29,9 @@ const TIER_COMMON := "common"
|
||||
const TIER_EXCELLENT := "excellent"
|
||||
const TIER_RARE := "rare"
|
||||
const TIER_LEGENDARY := "legendary"
|
||||
## 档位配额结构锚(四级直映射 70/25/3/0;
|
||||
## 稀有档投放三 kind=ap 3/rap 2/时沙 2
|
||||
## → 合计 稀有 7、总量 102(「净删」口径=出池件配额直接归零,禁转给别件保住总量)。provisional 投放
|
||||
## 档位配额结构锚(四级 70/25/7/0=102;
|
||||
## 稀有档投放三 kind=ap 3/rap 2/时沙 2。
|
||||
## 「净删」口径=出池件配额直接归零,禁转给别件保住总量。provisional 投放
|
||||
## (「四级配额表重构」+Q3 单迭代全量),偏离 GDD 占位记录随追认单呈报;
|
||||
## validate() 硬断言;此后改总量=重裁非调参)。
|
||||
const TIER_QUOTAS := {"common": 70, "excellent": 25, "rare": 7, "legendary": 0}
|
||||
@@ -46,7 +46,7 @@ const TIER_QUOTAS := {"common": 70, "excellent": 25, "rare": 7, "legendary": 0}
|
||||
@export var shop_refresh_cost_curve: float = 1.8 # [1.0,4.0] knob(MC-1 provisional——按已付费刷新数幂曲线,A 链同族)
|
||||
|
||||
# —— 令牌配额(kind × tier 计数;未列组合 = 0。四级档名 common/excellent/rare/legendary
|
||||
# 承袭同一物理位序〔70/25/3 零偏离〕;资源凭证 kind 的 rare 档配额见各行现值)——
|
||||
# 承袭同一物理位序〔70/25/7/0〕;各 kind 现值见行注默认)——
|
||||
@export var curio_quota_attack_common: int = 18 # [0,99]
|
||||
@export var curio_quota_attack_excellent: int = 5 # [0,99]
|
||||
@export var curio_quota_max_hp_common: int = 17 # [0,99]
|
||||
@@ -55,7 +55,7 @@ const TIER_QUOTAS := {"common": 70, "excellent": 25, "rare": 7, "legendary": 0}
|
||||
@export var curio_quota_armor_excellent: int = 5 # [0,99]
|
||||
@export var curio_quota_gp_common: int = 18 # [0,99]
|
||||
@export var curio_quota_gp_excellent: int = 5 # [0,99]
|
||||
@export var curio_quota_heal_excellent: int = 3 # [0,99]——恢复件(refresh 挤占 2 席位,总量 98 锚不变)
|
||||
@export var curio_quota_heal_excellent: int = 3 # [0,99]——恢复件(refresh 挤占 2 席位,总量 102 锚不变)
|
||||
@export var curio_quota_refresh_excellent: int = 2 # [0,99]——刷新次数件(补给类成员;provisional 归曲线调参)
|
||||
@export var curio_quota_ap_rare: int = 3 # [0,99]——AP 件(稀有档)
|
||||
@export var curio_quota_rap_rare: int = 2 # [0,99]——储备金袋(投放 provisional 归调参)
|
||||
@@ -199,7 +199,7 @@ func tier_total(tier: String) -> int:
|
||||
return total
|
||||
|
||||
|
||||
## 牌库总量(结构锚——T2 四级 98 + T4 凭证投放 6 = 104:70+25+9+0)
|
||||
## 牌库总量(=tier_total 四档求和 70+25+7+0=102;凭证投放走 feat_ticket_*,不进牌库)
|
||||
func deck_total() -> int:
|
||||
var total := 0
|
||||
for tier in TIERS:
|
||||
|
||||
@@ -34,7 +34,7 @@ feat_ticket_limit = 1
|
||||
feat_ticket_pity_step = 5
|
||||
|
||||
; 迭代 20 T2 池结构案D 换代(2026-10-11,奇物.md 池结构与抽取 v1):四级档位 70/25/7/0 = 102 枚——
|
||||
; 稀有档投放三 kind=AP 件 3/储备金袋 2/时沙 2;储备金袋与时沙的配额键未载于本表、运行取 schema 缺省值,补表归待办清单;
|
||||
; 稀有档投放三 kind=AP 件 3/储备金袋 2/时沙 2(ap_rare 显式载于本表,与 schema 缺省同值);
|
||||
; 概率与上限解耦(案②令牌池+提前退役):概率位=档+令牌数、已拿上限=curio_cap_*(拿了才计);
|
||||
; 曝光槽=三选一 2 格全池+1 格优秀档以上子池(子池空回退全池);凭证不进子池。
|
||||
; 前史 TP0 令牌池换代(2026-10-03,node-reward v2.2 追认 b 落地):三选一池 = 固定配额令牌池——
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
(本批零视觉改动,判定属常规复核。)
|
||||
- 2026-10-25(迭代 37 卡① T3):**判失效 → 显式重制 + 复闸**。实测棋盘三图
|
||||
changed = 0.13% / 0.11% / 0.10%,差异像素全落 900×760 棋盘裁剪区内、裁剪区外 0,
|
||||
按加严口径不判有效;成因定位为 `2f3a87e9`(魔法道具 HUD)注入 `REWARD_BADGE` 预读格
|
||||
按加严口径不判有效;成因定位为 `2f3a87e9`(秘宝 HUD)注入 `REWARD_BADGE` 预读格
|
||||
字形——晚于 2026-10-08 建基提交,与本批零因果。呈报后用户裁「重制三张基线」,
|
||||
经 `tools/golden_baseline_refresh.sh` 换代;复闸 changed = 0.00% / 0.00% / 0.00%,
|
||||
启动态菜单 0.00%(未重制)。
|
||||
@@ -127,7 +127,9 @@ fi
|
||||
# 在册断言标签成片误红;代价=该行同时出现的真闸档用词也不报,靠文档域 08 闸兜住)
|
||||
# 扫描面:game/ 全域 .gd/.tres/.md/.json/.sh(.txt 不收=第三方许可证非本仓库文本)
|
||||
# 注释文本提取:.gd/.sh 取 # 后文本;.tres 取 ; 后文本;.md 取整行;.json 无注释语法(保留扩展名但不产生注释段)
|
||||
# 三层豁免依序:①闸门自指(行内含检查/禁令形态即跳过)②显式留档豁免单 4 处 ③非注释面天然不取
|
||||
# 三层豁免依序:①闸门自指(行内含检查/禁令形态即跳过)②显式留档豁免单 7 处 ③非注释面天然不取
|
||||
# 豁免单新增三处(2026-10-26 令牌配额口径清扫批 B4b 用户裁定保留):adventure_table.gd:26 档名映射对照注
|
||||
# +adventure_table.gd:93 与 curio_deck.gd:130 四口径契约④原名引述——合法载体非残留,改写即断链
|
||||
|
||||
if [ -d game/core ]; then
|
||||
S11_TABLE="design/gdd/术语表.md"
|
||||
@@ -179,6 +181,9 @@ else
|
||||
if(FILENAME~"level_runner"&&FNR==832)next
|
||||
if(FILENAME~"adventure_runner"&&FNR==403)next
|
||||
if(FILENAME~"damage_math_test"&&FNR==36)next
|
||||
if(FILENAME~"adventure_table"&&FNR==26)next
|
||||
if(FILENAME~"adventure_table"&&FNR==93)next
|
||||
if(FILENAME~"curio_deck"&&FNR==130)next
|
||||
print FILENAME":"FNR":"words[i]
|
||||
next
|
||||
}
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# 验证集清单(断言快照·冻结)
|
||||
|
||||
> 生成日期:2026-10-25 · 基点 commit:`d1c95ade6fbfe01a9cdc4bee2de29cf0729ce15b` · 源:cross_system_flow_test.gd、node_map_determinism_test.gd、save_rng_roundtrip_test.gd、system_test.gd、damage_controller_test.gd、damage_math_test.gd、roll_multiplier_test.gd、round_flow_skill_pool_test.gd、seal_polarity_test.gd、skill_unlock_test.gd、variant_placement_test.gd、source_guard_test.gd、system_contracts_test.gd、adventure_feats_test.gd、board_gen_reward_test.gd、board_generator_test.gd、breakpoint_resume_test.gd、config_db_cross_validator_test.gd、config_db_resolver_test.gd、curio_refresh_paid_test.gd、effect_words_t1_test.gd、feat_vouchers_test.gd、level_map_type_vis_test.gd、level_shop_economy_test.gd、level_table_validate_test.gd、meta_progression_forge_test.gd、minesweeper_rules_test.gd、node_map_generator_test.gd、node_map_growth_test.gd、pool_case_d_test.gd、save_boot_no_activate_test.gd、save_manager_domain_test.gd、save_slot_isolation_test.gd、save_slot_summary_test.gd、settle_segments_test.gd、treasure_effects_test.gd、treasure_items_test.gd、tree_requires_level_test.gd、tree_rules_v11_test.gd、config_db_fatal_oob_test.gd、config_db_test.gd、counter_prefix_fatal_test.gd、forge_table_test.gd、level_gen_params_test.gd、reward_dangling_treasure_test.gd、rng_service_test.gd、rng_stream_boot_test.gd、table_structure_guard_test.gd、treasure_target_violation_test.gd、example_test.gd、battle_narrator_test.gd、forge_workbench_test.gd、hud_presenter_test.gd、level_map_info_fog_test.gd、modal_flow_test.gd、pacing_queue_test.gd、player_copy_sweep_test.gd、reward_overlay_test.gd、standee_fx_sweep_test.gd、terrain_tile_sets_test.gd、theme_projection_test.gd、type_glow_test.gd、ui_font_asset_test.gd、test_kit.gd
|
||||
> 生成日期:2026-10-26 · 基点 commit:`7d2fbe158fa38d98b917762aa8812a80c8d70aea` · 源:cross_system_flow_test.gd、node_map_determinism_test.gd、save_rng_roundtrip_test.gd、system_test.gd、damage_controller_test.gd、damage_math_test.gd、roll_multiplier_test.gd、round_flow_skill_pool_test.gd、seal_polarity_test.gd、skill_unlock_test.gd、variant_placement_test.gd、source_guard_test.gd、system_contracts_test.gd、adventure_feats_test.gd、board_gen_reward_test.gd、board_generator_test.gd、breakpoint_resume_test.gd、config_db_cross_validator_test.gd、config_db_resolver_test.gd、curio_refresh_paid_test.gd、effect_words_t1_test.gd、feat_vouchers_test.gd、level_map_type_vis_test.gd、level_shop_economy_test.gd、level_table_validate_test.gd、meta_progression_forge_test.gd、minesweeper_rules_test.gd、node_map_generator_test.gd、node_map_growth_test.gd、pool_case_d_test.gd、save_boot_no_activate_test.gd、save_manager_domain_test.gd、save_slot_isolation_test.gd、save_slot_summary_test.gd、settle_segments_test.gd、treasure_effects_test.gd、treasure_items_test.gd、tree_requires_level_test.gd、tree_rules_v11_test.gd、config_db_fatal_oob_test.gd、config_db_test.gd、counter_prefix_fatal_test.gd、forge_table_test.gd、level_gen_params_test.gd、reward_dangling_treasure_test.gd、rng_service_test.gd、rng_stream_boot_test.gd、table_structure_guard_test.gd、treasure_target_violation_test.gd、example_test.gd、battle_narrator_test.gd、forge_workbench_test.gd、hud_presenter_test.gd、level_map_info_fog_test.gd、modal_flow_test.gd、pacing_queue_test.gd、player_copy_sweep_test.gd、reward_overlay_test.gd、standee_fx_sweep_test.gd、terrain_tile_sets_test.gd、theme_projection_test.gd、type_glow_test.gd、ui_font_asset_test.gd、test_kit.gd
|
||||
> 提取口径:静态 `check(` 调用点,括号配平归集(可跨行);缺省源=三宿主遍历
|
||||
> (unit/**+integration/**+system_test.gd)。本基点实测 1583 个静态调用点;行级
|
||||
> `grep -c "check("` 是另一口径(含 `func check(` 定义行与注释行),两口径各自浮动,
|
||||
@@ -872,7 +872,7 @@
|
||||
| 502 | 385 | "非战斗期(选路态)abandon 受理" | a10.runner().current_battle() == null and a10.abandon() | (待填) | | |
|
||||
| 503 | 389 | "剔牌库/替换场景:冒险启动(seed 11——道具解锁集只含 wide_scout_band)" | a11.start_adventure(11, {"treasure_unlocked": {"wide_scout_band": true}}) | (待填) | | |
|
||||
| 504 | 398 | "池耗即枯竭(attack/ap 令牌耗尽不出候选——%s)" ↩ % str(draw) | not draw_kinds.has("attack") and not draw_kinds.has("ap") | (待填) | | |
|
||||
| 505 | 399 | "池耗后候选恒 ≥2(稀有/罕见档余量——防「三选项全不可选」死角)" | (draw as Array).size() >= 2 | (待填) | | |
|
||||
| 505 | 399 | "池耗后候选恒 ≥2(稀有档余量——防「三选项全不可选」死角)" | (draw as Array).size() >= 2 | (待填) | | |
|
||||
| 506 | 408 | "池收缩——40 次重抽零 aux 候选(停点渠道 aux 卡退役,迭代 11 第①批 T7)" | not treasure_seen | (待填) | | |
|
||||
| 507 | 417 | "满血通关回血 0 合法(封顶口径——heal_gained=0 非负溢出)" | int(cap["payload"].get("heal_gained", -1)) == 0 | (待填) | | |
|
||||
| 508 | 420 | "节点共享池场景:冒险启动(seed 13)" | a13.start_adventure(13, {"treasure_unlocked": {"wide_scout_band": true}}) | (待填) | | |
|
||||
|
||||
@@ -1,165 +0,0 @@
|
||||
# 需求卡片:令牌配额口径清扫批(schema/tres 头注口径统一+game 面旧档名清扫)
|
||||
|
||||
- 版本:**v1.2**(v1.0→一轮「回炉」→v1.1→二轮闭合复检「回炉(窄修)」:tres:37 漏枚举+「罕见」另三处待裁定→v1.2 折入定稿,复核记录见 §12)
|
||||
- 来源:[待办清单](../待办清单.md)「adventure 令牌配额 schema 锚与 tres 现行值不一致+game 面旧档名残留」条目(2026-10-26 登记,状态=待写卡)(唯一事实源:工程证据指认=条目实况+本卡 §3 行号级实查+grilling 补查——**条目核心论断经实查订正**:schema 常量与 tres 实际一致、校验活着且绿;本卡范围=旧口径表述清扫+订正结论落档)
|
||||
- 归属:`game/data/schemas/adventure_table.gd`(头注口径四处)+ `game/data/tables/adventure.tres`(头注旧口径四处)+ `game/tests/golden/README.md`(旧名一句)+ `game/tests/unit/core/adventure_feats_test.gd`(断言标签文本)+ `game/tests/验证集清单.md`(清单行同步)
|
||||
- 排期:未编入(迭代批卡片;估时 ≈0.3 工作日)
|
||||
- 开工门:U0+复核门过(§12);零待裁点
|
||||
|
||||
## 0. 前置依赖与并行性
|
||||
|
||||
- **第〇步核对(2026-10-26 写卡会话)**:来源条目=需求性工程条目(证据带 file:line),跳过设计线放行;条目状态=待写卡。
|
||||
- 与迭代 37 零文件交叠;与 2026-10-25/26 各批卡零交叠。
|
||||
- **条目论断订正**(§3 B5 出结论):「schema 锚与 tres 现行值不一致」不成立——rap_rare/time_sand_rare 的 2/2 是 schema @export 默认值(tres 只显式化 ap_rare=3),逐 kind 求和恰等于常量 7;`validate()` 结构锚校验活着、guard_test 断言绿。真问题=头注旧口径表述残留(schema 四处+tres 四处)+两处旧档名——零数值改动、零行为断言变化(断言条件不动、只改标签文本)。
|
||||
|
||||
## 1. 目标与完成定义
|
||||
|
||||
**目标**:令牌配额的全部旧口径表述(rare=3 直映射时代数字+旧三级档名)从 game 面清出,四处头注/两处测试文本与现行唯一事实源(tres 实值+TIER_QUOTAS=70/25/7/0、deck_total 实算 102)对齐;条目登记时的失实论断随卡订正落档。
|
||||
|
||||
**改动单元清单**(🔴 契约 1):
|
||||
|
||||
| # | 单元(实查·grilling 补查全枚举) | 改法 | 依据 |
|
||||
|---|---|---|---|
|
||||
| q1 | `adventure_table.gd` 头注旧口径三处::32「四级直映射 70/25/3/0」(:32-34 整段与现行「稀有 7/总量 102」句并排混写)+:49「70/25/3 零偏离」+:58「总量 98 锚不变」(heal_excellent 行注——三级时代 98) | 三处按现行口径改写(70/25/7/0 与 102;:32-34 段合并为单口径现行句,沿革归 git log);**数值零触碰**(TIER_QUOTAS :37 与 @export 默认 :60-62 逐字不动) | code-conventions 文件头注释纪律;数值单一事实源 |
|
||||
| q2 | `adventure_table.gd:202` `deck_total()` 头注「结构锚——T2 四级 98 + T4 凭证投放 6 = 104:70+25/9+0」——rare=3 时代口径(70+25+3+0=98)遗留且凭证错算入 deck 总量;实算=102 | 头注按实算改写(deck_total=102=70/25/7/0;凭证投放不走 curio_quota、不进 deck_total);函数体零触碰 | 同上;实算核对 T0 复核 |
|
||||
| q3 | `adventure.tres` 头注旧口径五处::36「70/25/3/0=98 张」+:37「普通 70/优秀 25/稀有 3/传说 0…旧 70/25/3 直映射改名承袭」(含「稀有 3」旧值与「70/25/3」沿革句——二轮补枚举)+:41「普通 70/稀有 25/罕见 3 = 98 张」(旧三级档名活句)+:45「罕见〔AP 3〕」构成句(:44-45 档位构成段新旧名混写)+:53「70/25/5」 | 五处按现行口径与新四级名改写(:37 改「普通 70/优秀 25/稀有 7/传说 0=头奖位留空」方向、删沿革句——措辞 L1);tres 数值行零触碰 | 档名四级映射(01-核心循环 v1.5);旧名清扫=术语表口径 |
|
||||
| q4 | 旧档名两处:`golden/README.md:26`「魔法道具 HUD」+`adventure_feats_test.gd:399` 断言标签「池耗后候选恒 ≥2(稀有/罕见档余量……)」(验证集清单 :875 序号 505 冻结同文本;条件表达式 `(draw as Array).size() >= 2` 与档名无关) | README 句改「秘宝(时名魔法道具)」方向;断言标签改新档名(**条件表达式零触碰**)+验证集清单 :875 行同步+`python tools/extract_checks.py --diff` 对账零差异 | 术语表退役词(「魔法道具」2026-09-15/「罕见」2026-09-14);清单同步义务(test-conventions §8.3) |
|
||||
|
||||
**完成定义**:
|
||||
|
||||
1. q1–q4 落地;三条 grep 判据过(§8 wr1)+清单对账零差异;
|
||||
2. 数值与断言条件零变化(TIER_QUOTAS/三处 @export 默认/tres 数值行/断言表达式逐字不变——wr1 读数对拍);全套闸按本批改动域选档全绿;
|
||||
3. 撤销证明一条(wr1);三份产出物写齐(T1)——含条目论断订正结论落档。
|
||||
|
||||
## 2. 设计事实源
|
||||
|
||||
| # | 出处 | 取用条款 |
|
||||
|---|---|---|
|
||||
| D1 | 工程证据指认=条目实况+本卡 §3 实查(论断订正) | 清扫范围 |
|
||||
| D2 | [code-conventions](../design/engineering/code-conventions.md) §1(文件头注释纪律:只写现行、禁变更叙事) | q1/q2/q3 改写口径 |
|
||||
| D3 | [术语表](../design/gdd/术语表.md) 档名与退役词口径 | q3/q4 旧名清扫依据 |
|
||||
| D4 | [test-conventions](../design/engineering/test-conventions.md) §8.3 | 断言标签改动须同步验证集清单 |
|
||||
|
||||
## 3. 现状事实(2026-10-26 写卡会话实查+grilling 补查于 master eb04313b;开工日 T0 复核行号)
|
||||
|
||||
| # | 事实 | 出处 |
|
||||
|---|---|---|
|
||||
| B1 | `TIER_QUOTAS := {"common":70,"excellent":25,"rare":7,"legendary":0}`(:37);rare 实投=ap 3(:60 默认)+rap 2(:61)+时沙 2(:62)=7——常量与逐 kind 求和一致;tres 只显式化 `curio_quota_ap_rare = 3`(:19,与默认同值) | `game/data/schemas/adventure_table.gd:37/60-62`;`game/data/tables/adventure.tres:19` |
|
||||
| B2 | 校验活着且绿:`validate()` :227-231 按 TIER_QUOTAS 逐档核对 `tier_total`(以载入值求和——含 tres 未显式化的默认值);`table_structure_guard_test.gd:99-100` 断言全绿——条目「不一致」论断不成立的实证(grilling 复核确认求和链闭合) | `game/data/schemas/adventure_table.gd:210-233`;`game/tests/unit/data_config/table_structure_guard_test.gd:99-100` |
|
||||
| B3 | schema 头注旧口径三处+deck_total 旧口径一处::32「四级直映射 70/25/3/0」/:49「70/25/3 零偏离」/:58「总量 98 锚不变」/:202「T2 四级 98+T4 凭证投放 6=104:70+25+9+0」(deck_total 实算 102) | `game/data/schemas/adventure_table.gd:32/49/58/202` |
|
||||
| B4b | **「罕见」三处合法保留·显式豁免**(二轮裁定):schema:25-26 档名映射注(「罕见→稀有」——名映射对照载体,删则转换关系丢失);schema:92-93 与 curio_deck.gd:129-130「罕见只在概率不在价格」=奇物四口径契约④**原名引述**(改写即脱离契约原名断链)——grep② 文件面不含它们、非残留 | `game/data/schemas/adventure_table.gd:25-26/92-93`;`game/core/curio_deck.gd:129-130` |
|
||||
| B4 | tres 头注旧口径五处::36「70/25/3/0=98 张」/:37「稀有 3…旧 70/25/3 直映射」沿革句(二轮 grep① 实跑命中补枚举)/:41「普通 70/稀有 25/罕见 3 = 98 张」/:45「罕见〔AP 3〕」(:44-45 档位构成段新旧名混写)/:53「70/25/5」 | `game/data/tables/adventure.tres:36/37/41/44-45/53` |
|
||||
| B5 | 旧名残留两处:golden/README.md:26「魔法道具 HUD」(成因记录句内);`adventure_feats_test.gd:399` 断言标签「(稀有/罕见档余量……)」(v1.0 误记 smoke_boot.gd:399——smoke_boot 全文仅 77 行,grilling 订正;验证集清单 :875 序号 505 源址列=399 即此件) | `game/tests/golden/README.md:26`;`game/tests/unit/core/adventure_feats_test.gd:399`;`game/tests/验证集清单.md:875` |
|
||||
| B6 | 「魔法道具」全仓 game/ 面命中仅 README:26 一处(grep 实查) | grep 实查 |
|
||||
|
||||
## 4. 设计契约(红线,违反 = L3 停机呈报)
|
||||
|
||||
🔴 **契约 1 · 数值与断言条件零变化**:TIER_QUOTAS、三处 @export 默认值、tres 全部数值行、adventure_feats_test:399 的条件表达式——逐字不动;只改注释/头注/README/标签文本与清单行。
|
||||
|
||||
🔴 **契约 2 · 清单跟上**:q4 断言标签改动后 `tools/extract_checks.py --diff` 对账零差异;禁为免对账保留旧标签。
|
||||
|
||||
🔴 **契约 3 · 头注只写现行+清扫不漏点**:q1–q3 改写后 schema/tres 头注零旧口径数字与旧档名误用(**§3 B3/B4/B5 清单逐处全清——清单外新发现即 L3 停机呈报**,禁实现段自行扩点;B4b 豁免三处除外);现行口径全库唯一(与 B1 实投一致)。
|
||||
|
||||
🔴 **契约 4 · 禁为机检文本保留无效成员**(req-card 第 13 条):禁为避免改断言标签/清单行而保留旧档名文本;机检键(清单冻结文本)与契约 1 冲突时停卡呈报。
|
||||
|
||||
## 5. 范围边界
|
||||
|
||||
**做**:q1–q4(B3/B4/B5 清单全部十一处:schema 四+tres 五+旧名两);grep 验证;对账;撤销证明;产出物(含论断订正结论)。
|
||||
|
||||
**不做**:
|
||||
- TIER_QUOTAS 或配额任何数值调整(provisional 现状不动——归未来数值标定窗口);
|
||||
- node-reward GDD 文档(v2.9 已按 tres 现行值对齐——零反哺预期,T0 核对注记);
|
||||
- design/ 面旧词(已由 termsweep-20261026 批清扫);**B4b 三处「罕见」豁免**(档名映射注+契约④原名引述——非误用;GDD 侧若将来改契名,随批同步)。
|
||||
|
||||
## 6. 关联文档同步面
|
||||
|
||||
| 文档 | 关联点 | 同步义务 |
|
||||
|---|---|---|
|
||||
| `待办清单.md` | 来源条目状态推进+论断订正注记(实现报告落档) | 反哺点 · 列清单(①:状态核对注记) |
|
||||
| [node-reward](../design/gdd/ux/node-reward.md) v2.9 | 文档面已按 tres 现行值对齐——T0 核其与 B1 无冲突后零改动注记 | 反哺点 · 列清单(②:预期零改动注记) |
|
||||
|
||||
## 7. 任务卡
|
||||
|
||||
### 卡前 · 文件结构图
|
||||
|
||||
| 文件 | 职责 | 行为改动 |
|
||||
|---|---|---|
|
||||
| `game/data/schemas/adventure_table.gd` | q1(:32/:49/:58)+q2(:202)头注口径(复用既有·修改) | 非行为改动(注释面)→ wr1 |
|
||||
| `game/data/tables/adventure.tres` | q3(:36/:41/:44-45/:53)头注旧口径(复用既有·修改) | 非行为改动(注释面)→ wr1 |
|
||||
| `game/tests/golden/README.md` | q4a 旧名一句(复用既有·修改) | 非行为改动(说明文本) |
|
||||
| `game/tests/unit/core/adventure_feats_test.gd` | q4b 断言标签文本(复用既有·改标签) | 非行为改动(标签文本;条件零触碰)→ wr1 |
|
||||
| `game/tests/验证集清单.md` | q4b 清单行同步(复用既有·同步) | 非行为改动(清单面)→ wr1 |
|
||||
|
||||
(零新增文件、零新增函数。)
|
||||
|
||||
### 接口块
|
||||
|
||||
- **wr1 grep 判据**(三条,各零输出):①`grep -n "70/25/3\|70/25/5\|70+25+9\|总量 98" game/data/schemas/adventure_table.gd game/data/tables/adventure.tres`;②`grep -n "罕见" game/data/tables/adventure.tres game/tests/unit/core/adventure_feats_test.gd`;③`grep -n "魔法道具" game/tests/golden/README.md`。
|
||||
- **q4 对账命令**:`python tools/extract_checks.py --diff` → 零差异。
|
||||
- **数值不变判据**:改前改后 `tier_total` 四档读数(70/25/7/0)与 `deck_total()`(102)对拍一致(table_structure_guard_test 直跑绿即护栏)。
|
||||
- **最窄闸**:table_structure_guard_test+adventure_feats_test 单件直跑+对账;全套闸按本批改动域选档。
|
||||
|
||||
### 落位与可复用性预检
|
||||
|
||||
- **零新增件**:十处全在既有文件原位改写;清单同步复用 extract_checks 既有工具。
|
||||
- **复用面**:现行口径唯一事实源=TIER_QUOTAS 常量+tres 实值(B1)——头注改写只指认它,不引第三处数字。
|
||||
- **唯一面**:头注改写后全库配额数字表述唯一(schema/tres/README/清单同口径);「罕见」「魔法道具」在**判据面**(grep②③ 文件集)清零——B4b 豁免三处为合法载体非残留。
|
||||
- **分层**:纯文本面;数值/断言条件零触碰。
|
||||
|
||||
### T0 事实坐实(≈0.05d)
|
||||
|
||||
- [ ] 复核 B1–B6(重点:B3/B4 十处逐行确认无第十一处、B2 求和链复核记录);确认措辞方向。可核查结果:口径核对表进实现报告素材。
|
||||
|
||||
### T1 清扫实装+对账(≈0.2d)
|
||||
|
||||
- [ ] 实装 q1–q4(十处)。可核查结果:wr1 三条 grep 零输出;对账零差异;两测试单件直跑绿。
|
||||
- [ ] 验证步骤:全套闸按域选档跑一次全绿。
|
||||
|
||||
### T2 撤销证明+产出物落位卡(≈0.05d,末卡)
|
||||
|
||||
- [ ] 撤销证明一条:回退 q3 的 :41 hunk(旧名活句还原)→ wr1 grep② 命中即红 → 还原复绿。记录进实现报告。
|
||||
- [ ] 写齐三份产出物(实现报告〔十处口径核对表+论断订正结论+实机目检总清单——零玩家可感项写明理由〕/代拍板追认单/反哺点清单〔§6 逐条落点〕)。
|
||||
- [ ] 合并前置:独立验收审计(§8.3)逐行「通过」。
|
||||
|
||||
**估时合计 ≈0.3d**。编排注记:微件卡;断言标签改动触闸面套件文本——与探针/冒烟改动类他卡同波无冲突。
|
||||
|
||||
## 8. 验证闸
|
||||
|
||||
### 8.1 改动—验收对照表
|
||||
|
||||
| 需求点 | 改动(文件:行/行为) | 验收测试(名称+落点+尾缀) | 层级 | 真实入口 | 撤销证明 |
|
||||
|---|---|---|---|---|---|
|
||||
| wr1 十处口径与旧名清扫 | q1–q4 文本改写 | 三条 grep 零输出〔wr1〕+对账零差异+四档读数对拍(70/25/7/0、102) | 静态文本+单元护栏 | grep/extract_checks 真实跑批+两测试单件直跑 | 回退 :41 hunk → grep② 命中即红(T2) |
|
||||
| wr2 产出物 | T2 三份 | 件核〔wr2〕 | — | — | 缺项红 |
|
||||
|
||||
### 8.2 测试削弱申报
|
||||
|
||||
零(断言条件零改动;标签文本换代属 q4 申报内改动,清单同步)。
|
||||
|
||||
### 8.3 独立验收审计
|
||||
|
||||
入口=未参与实现的会话或子代理;报告落 `reports/iter<N>-验收审计-<日期>.md`;抽查重点=契约 1(数值与条件逐字核对)、契约 3(§3 B3/B4/B5 清单十一处全清、B4b 豁免三处未被顺手改)、对账记录、头注零沿革叙事。未过不得合并。
|
||||
|
||||
## 9. 异常分级
|
||||
|
||||
- **L1(自救)**:十处具体措辞。
|
||||
- **L2(记录继续)**:行号漂移。
|
||||
- **L3(停机呈报)**:T0 发现 deck_total 实算与 102 不符(B3 推导失实——口径问题升数值问题另裁);发现 B3/B4/B5 之外第十一处旧口径/旧名残留;改写被迫触数值行(超契约 1)。
|
||||
|
||||
## 10. 代拍板白名单(超清单必呈报)
|
||||
|
||||
1. 十处具体措辞(语义=现行口径、旧名清除)。
|
||||
2. q4b 新标签文本。
|
||||
3. 提交切分与 worktree 分支命名。
|
||||
|
||||
## 11. 待裁点
|
||||
|
||||
**零待裁点,开工门=U0。** 灰色推导一处(呈报可否决,随 T2 反哺点):条目「不一致」论断按 §0/§3 订正为「表述口径问题、数值一致」——依据=B1/B2 实查+grilling 求和链复核;若用户坚持将 rap/时沙配额也显式化写进 tres(数值面文件改写),超出本卡文本清扫范围,须另立批。
|
||||
|
||||
## 12. 自审六查与 grilling 复核记录
|
||||
|
||||
**自审六查(2026-10-26 写卡会话,v1.0)**:①规格覆盖;②步骤扫描;③类型一致性;④审查焦点——数值零触碰护栏、清单跟上、论断订正落档;⑤篇幅比例;⑥落位预检。
|
||||
|
||||
**grilling 一轮复核记录(2026-10-26,独立子代理对抗复核,判「回炉」两阻断)**:①阻断一=q4b 断言文件张冠李戴(v1.0 误写 smoke_boot.gd:399——该文件全文 77 行;实址 `adventure_feats_test.gd:399`,清单 :875 序号 505 源址列即证)——v1.1 折入:归属/文件结构图/接口块 grep② 三处订正;②阻断二=清扫枚举不完备(v1.0 只列 :41 一处——tres 实有 :36/:44-45/:53、schema 实有 :49/:58,按 v1.0 判据开工即 L3)——v1.1 折入:q1/q3 范围扩为 schema 三处+tres 四处(B3/B4 全枚举)+grep① 口径串判据重设+契约 3「十处全清」;③应修=deck_total 头注 :202 行号订正——已并入 q2/B3;④复核确认=论断订正成立(求和链闭合、guard_test 绿、deck_total 实算 102)、§11 显式化出口处理正确。
|
||||
|
||||
**grilling 二轮闭合复检记录(2026-10-26,独立子代理,判「回炉(窄修)」)**:一轮两阻断核闭合;窄修两处+新裂缝——①tres:37 漏枚举(「稀有 3…旧 70/25/3 直映射」沿革句含旧值——grep① 实跑命中,v1.0/v1.1 均未列)→v1.2 入 q3/B4(第五处);②「罕见」game 面另三处未裁定(schema:25-26 映射注/schema:92-93+curio_deck:129-130 契约④原名引述)→v1.2 裁定 B4b 合法保留显式豁免(§5/§7 唯一口径改「判据面清零」);③B3 引文笔误(70+25+9+0)订正;§8.3/契约 3 口径统一为「§3 清单逐处」。
|
||||
@@ -673,17 +673,3 @@
|
||||
|
||||
**状态**:已写卡
|
||||
|
||||
---
|
||||
|
||||
#### adventure 令牌配额 schema 锚与 tres 现行值不一致+game 面旧档名残留(2026-10-26 登记,来源=批次移交)
|
||||
|
||||
**实况**:文档面旧词清扫批(termsweep-20261026)连带发现。证据四件:①`game/data/schemas/adventure_table.gd` 常量 TIER_QUOTAS={common:70, excellent:25, rare:7, legendary:0}(头注自记「稀有 7、总量 102」系 provisional 投放)与 `game/data/tables/adventure.tres` 现行逐 kind 配额求和(common 70/excellent 25/rare 3〔仅行动点件〕/legendary 0=98 张)不一致——schema 校验是否按该常量核对 tres 总量、provisional 投放是否落表,须核对后统一口径;②同一 tres 头注两段注释新旧口径并存(「稀有 3/98 张」与「稀有 7/102 张」混写);③`game/tests/golden/README.md:26`「魔法道具 HUD」系秘宝旧名;④`game/tests/验证集清单.md:850`「稀有/罕见档」旧档名并写。零行为断言变化,属注释/常量口径/说明文字修订。
|
||||
- 相关文档:[node-reward](design/gdd/ux/node-reward.md) v2.9(文档面已按 tres 现行值对齐);档名四级映射=`data/schemas/adventure_table.gd` 头注
|
||||
- **2026-10-26 写卡会话订正与定稿**:①论断订正——「schema 锚与 tres 不一致」不成立(rap/时沙 rare 默认值 2/2,逐 kind 求和恰等于常量 7;validate 校验活着且绿、guard_test 断言绿;deck_total 实算 102);②真问题=头注旧口径残留(schema 四处+tres 五处——rare=3 直映射时代数字与沿革句)+旧档名两处(golden/README:26「魔法道具」、adventure_feats_test.gd:399「稀有/罕见档」);③「罕见」另三处经裁定合法保留(schema:25-26 档名映射注+schema:92-93 与 curio_deck.gd:129-130 契约④原名引述)。
|
||||
|
||||
关联文档清单:
|
||||
- 需求卡片 reports/需求卡片-令牌配额口径清扫批-2026-10-26.md(2026-10-26 v1.2,grilling 两轮复核(一轮回炉两阻断闭合+二轮窄修),零待裁点;估时 ≈0.3d)
|
||||
|
||||
**改动面**:游戏代码
|
||||
|
||||
**状态**:已写卡
|
||||
Reference in new issue
Block a user