From 483cf2a39bae6ec6445c7c9e96dd7515bcc4f9c2 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Mon, 5 Oct 2026 06:15:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A5=87=E7=89=A9=E6=89=B9=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=B9=A6=20+=20=E7=BC=96=E5=85=A5=20roadmap=20=E8=BF=AD?= =?UTF-8?q?=E4=BB=A3=2015?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用户令:概念层裁定已完成,代码与配置改动不做,整理成任务书编入迭代 15 作为该迭代的一个需求。任务书须满足 loop engineering 要求。 新增:design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md 按 roadmap §批次 loop 规范八件成文(缺件不开工): ① 目标与完成定义(7 条可验)② 现状事实(代码级,T0 复核) ③ 设计契约(11 条,6 条 🔴 停机级)④ 范围边界(含"收到即停"清单) ⑤ 任务卡 T0-T8(逐卡估时 ≈4.5d,两段切分预案,切分点=T3 出口) ⑥ 验证闸(轻闸/重闸 + **12 条批末专属验收断言** A1-A12) ⑦ 异常分级(含本批预判的 3 个 L3 高风险点) ⑧ 代拍板白名单 5 项 外加:待用户裁点 4 项(不占本批自裁范围)+ 附录**设计裁定链 v1.0→v2.6** (把 6 轮用户裁定的要点列全,供执行者回溯,不用回头翻 9 次提交) 三批内容:①三套旧词族对齐(feature_*→curio_* 103处/relic_*→feat_* 162处/ 运行层 bonus_*→curio_* 160处;**硬约束 reward_* 已被占用不可用**) ②三条渠道按分类分离(现共用 98 张池、三类混编)③两个新种类入池 (刷新次数 + 专长门票四口径)附带 shop.tres 补回复与 charge 补至 ≥4 件。 roadmap 新增迭代 15 行(M-4 里程碑表内),标注: - 与在途 M-4 各批(判式换代/全局变异/配比预设)**撞同一批文件** (adventure_table.gd / level_runner.gd / adventure.tres), **开工门 = 须确认不并行或用户明示插队**——这是本批最实际的调度约束 - 门 = 迭代 14 出口;估时 T0-T8≈4.5d 可两段切分 🔴 红线里最要紧的两条(都是本会话教训固化): - 兑付频率:奇物不是打一场战斗给一份,关底 Boss 击败=通过这一关是 同一个时刻;专长不得挂在"战斗结算后"(v2.6 用户纠错) - 两条轴互不决定:禁止"因为要进商店所以另立分类"这种反向推导 --- ...务书-奇物词族对齐与渠道分离批-2026-10-05.md | 243 ++++++++++++++++++ roadmap.md | 1 + 2 files changed, 244 insertions(+) create mode 100644 design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md diff --git a/design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md b/design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md new file mode 100644 index 00000000..6f0f921f --- /dev/null +++ b/design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md @@ -0,0 +1,243 @@ +# 任务书:奇物概念收口与词族对齐批(迭代 15) + +- 日期:2026-10-05 +- 设计事实源:[奇物.md](../gdd/systems/冒险循环/奇物.md) v2.6(概念唯一定义,2026-10-05 用户逐轮裁定) +- 登记台账:[06-待办清单](../gdd/06-待办清单.md) 三条目(渠道分工目标态 / 资源类两个新种类入池 / 奇物命名统一后续) +- 实体登记:[entities.yaml](../registry/entities.yaml) `curio` 条目 +- 状态:**定稿待发令**——用户 2026-10-05 令:本批只改文档,代码与配置改动整理成任务书编入迭代 15 +- **loop 计划书八件对照**:①目标与完成定义=§一 ②现状事实(代码级,开工自行复核)=§二 ③设计契约(🔴 触碰=L3 停机)=§三 ④范围边界=§四 ⑤任务卡 T0..Tn=§五 ⑥验证闸=§六 ⑦异常分级=§七 ⑧代拍板白名单=§八 +- **本任务书已有约束**:范式为"设计契约先行、代码后跟"——概念已由用户逐轮裁定定稿(v1.0→v2.6 共 6 轮),本批不做二次设计,只做**落地对齐**。任何在执行中冒出的"要不要改设计"念头,一律记 06 不在本批解决 +- 数值全 provisional:本批只改标识符与结构,**不调任何平衡数值**;档位配额 70/25/3=98 是结构锚(schema validate 硬断言),本批零改动 + +--- + +## 一、目标与完成定义 + +一句话目标:把 v2.6 已定稿的「奇物」概念从**文档层**贯彻到**代码层与数据层**——三套旧词族(`feature_*` / `relic_*` / 运行层 `bonus_*`)全部对齐到统一词族,渠道分工与两个新种类入表,使代码与文档不再各说一套。 + +**为什么现在做**:用户 2026-10-05 的原始诉求是"这导致我们的代码实现和文档描述是分开的"。概念层已裁定完(6 轮),但代码层仍是三个旧词族 + 渠道未分离,**债已经欠了 9 次提交**。顶层已改名「奇物」而代码仍叫 `feature_*`,正是用户最初抱怨的"文档与代码分开"的临时态。 + +完成定义(逐条可验): + +1. **词族对齐完成**:`feature_*` → `curio_*`(103 处 / 7 文件)、`relic_*` → `curio_*` 或 `feat_*`(162 处 / 12 文件)、运行层 `bonus_*` → `curio_*`(160 处 / 8 文件)全部改完,`game/` 下 `grep -c "feature_\|relic_\|_bonus_\|pick_bonus\|BonusInteract\|BonusPick"` 归零(存档键 5 个除外,见 T2 裁点) +2. **渠道分工落地**:三条渠道按分类分离——关底 Boss 击败=通过这一关 → 只出机制类;奖励节点 / 商店 → 只出属性提升类 + 资源类,机制类在此只以门票形式出现;三渠道不再共用同一个池 +3. **两个新种类入表**:刷新次数、专长获取门票进入 `adventure.tres`,各自带全参数 +4. **商店货架补回复**:按默认原则,回复必须在商店货架内(现行缺) +5. **数据缺陷修复**:`relics.tres` 的 charge 标签补至 ≥4 件(档二要求同标签 ≥4,现仅 3 件,永远达不到) +6. **冒烟与三闸全绿**:批末 run_smoke 全量 + 三探针 + doc 三闸对基线**零新增** + 熵增闸 PASS +7. **断点存档往返幂等**:改词族不破存档——旧档能读、新档能续(若 T2 裁点选"换名+迁移",须验 v→v+1 往返) + +## 二、现状事实(代码级,T0 开工须自行复核) + +> 以下是 2026-10-05 读出的事实。开工时按 loop 规范 T0 复核,不以本节为准。 + +### 2.1 词族占用实况 + +| 词族 | 处数 | 文件数 | 主要落点 | +|---|---|---|---| +| `feature_*` | 103 | 7 | `adventure_table.gd` / `adventure.tres` / `adventure_runner.gd` / `level_runner.gd` / `config_db_cross_validator.gd` / `bonus_interact_controller.gd` / `smoke_all.gd` | +| `relic_*` | 162 | 12 | `relic_table.gd`(+`.uid`)/ `relics.tres` / `relics_engine.gd` / `config_db.gd` / `battle_orchestrator.gd` / `damage_controller.gd` / `action_economy.gd` / `level_runner.gd` / `battle_narrator.gd` / `adventure_runner.gd` 等 | +| 运行层 `bonus_*` | 160 | 8 | `_bonus_deck` / `_bonus_taken` / `pick_bonus` / `BonusInteractController` / `BonusPickOverlay` / `bonus_interact_controller.gd` / `level_autoplay.gd` / `breakpoint_resume_test.gd` 等 | + +**🔴 硬约束(不可撞车)**:`reward` 词族**已被占用**——`reward_pick`(rng 封闭流 scope)/ `reward_node`(`grant_aux_item` 的 context 字符串)/ `reward_preview`(道具效果 kind)。**统一词族不得使用 `reward_*`**,本批定为 `curio_*`(`treasure` / `trove` / `curio` / `haul` 零占用,2026-10-05 查证)。 + +### 2.2 封闭词表与结构锚(改动即触碰红线) + +- `AdventureTable.FEATURE_KINDS: Array[String]` = `["attack", "max_hp", "armor", "gp", "ap", "heal"]`——**封闭六项**。断点附随件与牌库剔除态依赖它,扩种类须走 schema + registry 同步修订 +- `AdventureTable.TIER_QUOTAS := {"common": 70, "rare": 25, "rarest": 3}`(合计 98)——**结构锚**,schema `validate()` 内有硬断言:"档位配额结构失锚……改总量须重裁"。本批**入新种类须占配额**,若配额总量不够,**只能在本批内重裁并说明**,不得调参绕过 +- `adventure.tres` 现有 22 个键与 schema 的 22 个 `@export` 一一对应(2026-10-05 脚本校验通过),改名须同步两侧 +- 节点类型是**封闭枚举五种**(战斗 / Boss / 奖励 / 恢复 / 商店)——本批**零扩类**(专长挂 Boss 节点兑付面) + +### 2.3 渠道与池的现状 + +- 现行**三渠道共用同一个 98 张固定配额令牌池**(普通 70 / 稀有 25 / 罕见 3),三类混编 +- 机制类(专长)只占稀有/罕见档,与属性大件混编;商店货架靠"零机制类挤掉一张普通卡"保底 +- 商店货架 = 池 ∖ {GP 袋}(`shop.tres` 的 `pool_shelf` 行族,现为 attack / max_hp / armor_class / ap 四项,**缺回复**) +- 奖励节点与通关三选一**共享同一池、同权重同上限**(`node-reward` v2.4) + +### 2.4 数据缺陷(独立于渠道结构,须单独修) + +- `relics.tres` 的 **charge 标签只有 3 件**,而档位激活要求同标签 ≥4 件——**charge 流派永远达不到档二**,即使获取次数无限 +- 一局确定性专长兑付次数 = 终局前 Boss 个数(三关 = 2 次),而档一阈值是同标签 ≥2——档一刚好够,档二(≥4)须靠门票补齐。**此项用户已定延后复裁**(触发=第四关内容批落地后实测),本批只登记不改 + +### 2.5 断点与存档键(5 个) + +`bonus_deck` / `bonus_taken` / `bonus_pending` / `bonus_result` / `bonus_aux_carry`——为存档兼容沿用历史名。`adventure_runner.gd` 内同时有 `_node_bonus_pending`(奖励节点停点态)。**是否随存档版本迁移换名须本批裁**(见 T2)。 + +## 三、设计契约(违反即返工,🔴 触碰 = L3 停机) + +1. 🔴 **兑付频率不可改**:奇物**不是打一场战斗给一份**。关内普通战斗节点打完不给任何奇物;一关之内只兑付一次,触发点是**关底 Boss 被击败**——按 [冒险结构](../gdd/systems/冒险循环/冒险结构.md) 定义"通关一关 = 该关关底 Boss 被击杀",**这两件事是同一个时刻,不是一条链上的两步**。任何把专长挂到"战斗结算后"的实现即为 L3 +2. 🔴 **两条轴互不决定**:分类轴(给的是什么:机制类 / 属性提升类 / 资源类)与渠道轴(从哪来:奖励节点 / 商店 / 关底 Boss 击败)**不得互相推导**。禁止"因为它要进商店所以另立一分类"这类反向推导(= 06 已登记的"两轴缠回去") +3. 🔴 **Boss 渠道独占机制类**:关底 Boss 击败=通过这一关**只出机制类**,属性提升类与资源类在此不出现。这是渠道轴的定位决定,不是例外,不需另找理由。末关的 Boss 击败后不给(无后续关卡可消费) +4. 🔴 **专长门票四条口径不可改**:①**拿到即开、不可囤积**(不进持有集,选中/买下同一时刻开专长三选一);②**罕见只在概率、不在价格**(货架价与其他商品相当);③**一局限购一次**;④**计步保底**——连续 5 次三选一展示未出现 → 第 6 次必定出现(计数=**展示次数**,刷新后的重展计入,奖励节点与商店共享计数,触发后清零,限购用满后不再触发) +5. 🔴 **统一词族不得用 `reward_*`**(已被 `reward_pick` / `reward_node` / `reward_preview` 占用,见 §2.1) +6. 🔴 **档位配额结构锚不可绕过**:`TIER_QUOTAS` 的 70/25/3 有 validate 硬断言。改总量须重裁并留说明,不得调参绕过 +7. 🔴 **不新增节点类型**:`关卡节点地图` 的节点类型封闭枚举五种不变,机制类挂 Boss 节点兑付面 +8. 🔴 **魔法道具边界不位移**:奇物**当局清零、跨局带走的是魔法道具**(判据走生命周期,不走"带在身上")。本批任何改动不得让奇物进同调位,也不得让魔法道具进当局随机渠道 +9. 🔴 **层级纪律**:奇物只走当局随机渠道(奖励节点 / 商店 / Boss 兑付),不进元进度天赋树 +10. **本批不改平衡数值**:所有 `feature_value_*` / `feature_quota_*` 的**值零变更**。入新种类属结构改动(占配额),非调参 +11. **零战斗期新动词**:机制类表达全部经"扫雷决策 → 自动结算"间接生效,不新增手动闪避 / 主动施法 + +## 四、范围边界(以下均不在本批,收到即停、不顺手做) + +- **任何平衡数值的调参**——档位阈值、门票四参数的具体取值(概率 / 配额 / 限购次数 / 保底步数)、token 配额重裁方案。门票四参数本批只**建结构与字段**,取值走 provisional + 曲线调参批 +- **第四关内容**——用户已定"后续还会有第四关,到时候试完觉得配合太少再调整"。档二可达性复裁触发条件是第四关落地后实测 +- **charge 补件的内容设计**——本批只把 charge 补到 ≥4 件以打开档二通路,**补哪几件是内容裁决**,走独立内容批;本批若判断内容不可自决,则只做"档二对 charge 不可达"的显式登记(数据缺陷留痕),不硬补 +- **玩家可见面违规改法**(06 独立条目:内部分类禁写入玩家可见面 + 档位呈现三路待裁)——属呈现面设计裁决,须用户拍板,本批不碰 +- **教学引导相关**——用户 2026-10-04 裁改排 Beta +- **资源配比预设 / 判式换代 / 全局变异等 M-4 在途批**——与本批词族改名**撞同一批文件**(`adventure_table.gd` / `level_runner.gd` / `adventure.tres`),**须在 roadmap 排期上确认不与在途批并行**,本批开工门 = 相关在途批出口或用户明示插队 +- **存档键换名的迁移实现**(若 T2 裁"换名")——须与存档版本迁移单独裁定,本批可只做"代码侧改名 + 兼容读旧键",迁移写 v+1 归存档批 + +## 五、任务卡(T0..T8 逐卡估时) + +> **估时合计**(provisional,工作日)≈ 4.5 日,在 ≤3 日软时间盒边缘。**切分预案**:T0-T3 一段(词族对齐)≈ 2 日;T4-T8 二段(渠道分离 + 入表)≈ 2.5 日。切分点 = T3 出口。超限即按 loop 规范切迭代(L3 汇报)。 + +### T0 开工(≈0.3d) + +- 建 worktree(分支名建议 `curio-wordfamily-20261005`),**主工作区只作合并落点** +- 基线复读记档:冒烟全量数字 / 三探针(`ui_input_probe` 十一断言)/ doc 三闸 / MC 对拍基准 / `git status` 归属核对(并行遗留只标旗不碰) +- **复核 §2 全部事实**(词族处数、封闭词表、配额锚、存档键清单),与本节不符以实测为准并回写本任务书 +- 输出:worktree 名 + 基线数字 + 事实复核差异表 + +### T1 词族对齐第一批:`feature_*` → `curio_*`(≈0.7d) + +- 范围:`FEATURE_KINDS` → `CURIO_KINDS`、`feature_quota()` → `curio_quota()`、`feature_value()` → `curio_value()`、`feature_candidate_count` → `curio_candidate_count`、`feature_quota_{kind}_{tier}` → `curio_quota_*`、`feature_value_{kind}_{tier}` → `curio_value_*` +- 涉及:`adventure_table.gd` + `adventure.tres`(键名)+ 6 个引用文件 +- **值零变更**(只改键名与常量名) +- ⚠️ `FEATURE_KINDS` 是封闭词表、断点附随件与牌库剔除态依赖它 → 改名须与 `entities.yaml` 同批同步 +- 轻闸:冒烟全量绿 + 存档往返测试绿 + +### T2 词族对齐第二批:运行层 `bonus_*` + **存档键裁点**(≈0.7d) + +- 范围:`_bonus_deck` / `_bonus_taken` / `pick_bonus` / `BonusInteractController` / `BonusPickOverlay` / `bonus_interact_controller.gd` / `level_autoplay.gd` / `breakpoint_resume_test.gd` +- **文件改名须同步 Godot `.uid` 与 `.tscn` 引用**(非文本层,无法靠 grep 自证) +- **裁点(本任务书内唯一待裁,批内自裁可行但须台账留痕)**: + - 五个**断点存档键**(`bonus_deck` / `bonus_taken` / `bonus_pending` / `bonus_result` / `bonus_aux_carry`)换不换名? + - 甲=**不换**(保存档兼容,仅改代码侧变量名)——推荐 + - 乙=换 + 兼容读旧键(旧键读入映射到新键,写出用新键) + - 丙=换 + 存档版本迁移到 v+1(**范围外**,本批不做) + - 建议甲或乙;若判断丙才对,回写本任务书并转 06 +- 轻闸:冒烟全量 + **断点存档往返测试绿** + `ui_click_probe`(触碰 presentation) + +### T3 词族对齐第三批:`relic_*` → 机制类(≈0.8d) + +- 范围:`relic_table.gd`(+`.uid`)/ `relics.tres` / `relics_engine.gd` / 及 9 个引用文件 +- 目标词族:`feat_*`(机制类 = 专长 Feat,**与顶层 `curio_*` 区分**:顶层是容器,内层分类各有各的词族——`curio_*` 是总称、`feat_*` 是机制类、`asi_*` 是属性提升类、`res_*` 是资源类) +- **文件名与 `class_name` 改名须同步 `.uid` 与 `.tscn`**(非文本层) +- **不新增节点类型**;MINE_HOOKS 红线校验逻辑零改动 +- 轻闸:冒烟全量 + 全探针(三) +- **T3 出口 = 切分点**:段落一(词族对齐)完成,出阶段报告 + +### T4 渠道分离:池的拆分(≈0.8d) + +- 目标:三个渠道各按分类白名单取候选,不再共用同一个 98 张池 + - 关底 Boss 击败 → 只出机制类 + - 奖励节点 / 商店 → 机制类**只以门票形式出现** + 属性提升类 + 资源类 +- ⚠️ **配额结构锚处置**:机制类抽离共享池后,属性与资源类的配额总量是否维持 98?**若须改 `TIER_QUOTAS` 总量,走重裁流程并在本任务书回写理由**(不得调参绕过 validate 硬断言) +- 商店货架 = 池 ∖ {GP 袋}(**计价物不自售**规则:凡以某渠道计价物为内容的奖励不进该渠道货架) +- 轻闸:冒烟全量 + 探针 + **MC 逐位对拍**(涉核心,必须) + +### T5 专长门票入表(≈0.7d) + +- 新增门票项到 `adventure.tres`,四参数全部建字段、**取值 provisional**: + - 出现概率 / 配额 / 限购次数(=1)/ 保底步数(=5 展示) +- 机制:**拿到即开、不可囤积**(不进持有集)→ 选中/买下同一时刻开专长三选一 +- **计步保底计数器**:计数=展示次数、刷新后重展计入、奖励节点与商店**共享**计数、触发后清零、限购用满后不触发 +- 稀有档处置须说明:门票进哪一档(罕见?),占多少配额 +- 轻闸:冒烟全量 + 探针 + MC 逐位对拍 + +### T6 刷新次数入表 + 商店补回复(≈0.5d) + +- `FEATURE_KINDS` 扩项须走 schema + registry 同步修订(封闭词表,红线 §3.6) +- ⚠️ **必须先划清边界**:既有「商店独立刷新机制」是**进店后的免费次数 + GP 刷新**(商店自身的服务),本项是**作为奇物授予的**重抽次数——**两者不是一回事**,入表前须在 registry 里把边界写死,防止后续混淆结算 +- 刷新次数的作用对象是**三选一界面而非角色**——不进加算区(§2.2 加算区四轴不含它) +- 补 `shop.tres` 的 `pool_shelf` 货架含回复(按默认原则:除已登记规则外,分类内成员都要在它该出现的渠道池子里) +- 轻闸:冒烟全量 + 探针 + MC 逐位对拍 + +### T7 档位通路与数据缺陷(≈0.4d) + +- 复核 charge 标签件数。若本批能自决则补至 ≥4 件;若内容不可自决,则**只做显式登记**("档二对 charge 不可达,数据缺陷留痕,转内容批")——**不硬补、不塞占位件** +- 档二可达性复裁:**本批只做静态推演与登记**,实测归第四关内容批(用户已定) +- 轻闸:冒烟全量 + +### T8 批末闸与人闸材料(≈0.4d) + +- 重闸:全量轻闸 + doc 三闸(对基线**零新增**)+ 熵增闸 + MC 逐位对拍(涉核心)+ 素材批机检断言(本批无素材则免) +- 人闸材料包(`design/qa/`):真人目检清单(重点 = 奇物列表呈现、档位激活反馈、门票弹出三选一面)+ 代拍板追认清单 + 三渠道兑付点目检指引(**专长兑付发生在关底 Boss 击败那一刻,不是战斗结算后**——这条要单列一个检查项) +- 收口五步:①`active.md` 快照 ②台账条目(查撞号)③里程碑移动更新 roadmap ④`stage.txt` 阶段变更 ⑤闸序列全绿留痕 + +## 六、验证闸 + +### 6.1 轻闸(每轮必跑,headless) + +- `run_smoke` 全量 +- `ui_input_probe`(十一断言) +- 触碰 presentation 时加跑 `ui_click_probe` + `ui_layout_probe`(T2 / T3 触碰) + +### 6.2 重闸(批末 T8) + +- 全量轻闸 + `doc_link` / `gdd_lint` / `doc_term` 三闸**对基线零新增** +- 熵增闸 PASS +- MC 逐位对拍(T4 / T5 / T6 涉核心,必须;T1-T3 纯改名可免但须在报告说明理由) + +### 6.3 本批专属验收断言(概念与代码一致性) + +| # | 断言 | 判据 | +|---|---|---| +| A1 | 词族归零 | `game/` 下 `feature_\|relic_\|_bonus_\|pick_bonus\|BonusInteract\|BonusPick` 命中数 = 0(存档键除外) | +| A2 | 禁词未用 | `game/` 下无 `reward_pick` / `reward_node` / `reward_preview` **新增**(既有三处不动) | +| A3 | 兑付频率正确 | 专长兑付点 = 关底 Boss 击败;**关内普通战斗节点不产奇物**(代码级断言 + 人闸目检双查) | +| A4 | 渠道分离 | 三渠道候选池按分类白名单过滤;机制类在非 Boss 渠道只以门票形态出现 | +| A5 | 门票拿到即开 | 门票不进持有集;选中/买下同帧开专长三选一(断言:持有关卡推进后仍无门票残留) | +| A6 | 保底计数 | 连续 5 次展示未出 → 第 6 次必出;刷新重展计入;限购用满后不触发 | +| A7 | 值零变更 | T1-T3 全部改名的键,值与基线**逐位相等** | +| A8 | 存档往返 | 旧断点可读、可续;存档键按 T2 裁点结论验证 | +| A9 | 池配额锚 | `TIER_QUOTAS` validate 硬断言绿;若改总量须有重裁说明 | +| A10 | 节点类型零扩类 | 节点类型仍为封闭枚举五种 | +| A11 | 玩家可见面无分类名 | 奇物列表 / 三选一面 / 弹窗**不出现**"机制类/属性提升类/资源类"字样(与 06 独立条目协同,本批只做**断言检查**,不改法) | +| A12 | 档二通路 | charge 标签 ≥4 件,或已有显式登记"不可达 + 转内容批" | + +## 七、异常分级(loop 规范) + +- **L1 自救**:一次重试(改名后编译错、`.uid` 未同步等机械错) +- **L2 记录继续**:连续 3 次同红灯升级,写台账继续推进 +- **L3 停机写报告**:触碰 §3 任一 🔴 红线 / 配额结构锚无法自洽 / 发现概念层自相矛盾 / MC 逐位对拍出现无法归因的漂移 + +**本批预判的 L3 高风险点**: +1. `relic_table.gd` 改名连带 `.uid` / `.tscn` 非文本层引用失败(T3) +2. 机制类抽离共享池后配额结构锚失锚,需重裁(T4) +3. 存档键换名导致旧断点读不出(T2) + +## 八、代拍板白名单(批内可自裁,台账留痕) + +1. **词族细分名的具体拼写**——`curio_*` / `feat_*` / `asi_*` / `res_*` 的下划线与单复数形式,在不撞既有占用(`reward_*` 等)的前提下自定 +2. **重命名时的中间态命名**——允许分步改(先改引用再改定义),只要批末归零 +3. **T2 存档键裁点的甲/乙选择**(不选丙) +4. **T7 charge 是否硬补**——若内容不可自决,走"只登记不硬补"(本任务书已授权此判断) +5. **provisional 取值的第一版数字**——门票四参数、刷新次数件值,取 working value 即可,**须标 provisional 且归曲线调参批**,不进终值 + +## 九、待用户裁点(不在本批自裁范围) + +| # | 待裁 | 阻塞面 | 建议 | +|---|---|---|---| +| C1 | 玩家可见面三处违规的改法 + 档位呈现三路 | 06 独立条目;A11 断言只检查不修 | 单独开呈现面批 | +| C2 | 第四关内容与档二可达性复裁 | T7 实测、charge 补件 | 第四关内容批后 | +| C3 | 门票四参数的终值 | T5 provisional 定稿 | 曲线调参批 + MC 采集 | +| C4 | 存档键换名的正式迁移 | T2 裁点丙案 | 存档版本迁移批 | + +--- + +## 附:本任务书引用的设计裁定链(v1.0 → v2.6,供执行者回溯) + +| 版本 | 用户裁定要点 | +|---|---| +| v1.0 | 立《特性》:一次冒险内角色自身得到的提升;命名统一(此前三个名字:流派件 / 数值件 / 本关强化) | +| v1.1 | 分类重构为「属性提升 ASI / 专长 Feat」;刷新次数作用对象是选择界面而非角色,作为例外登记 | +| v1.2 | 专长渠道落定=关底 Boss 击败后;**不新增节点类型**(挂 Boss 节点兑付面) | +| v2.0 | 顶层改名「奖励」;分类扩为三类;重构为**两根轴**(分类轴 × 渠道轴);边界判据改走**生命周期**(当局清零的是奖励,跨局带走的是魔法道具) | +| v2.1 | Boss 渠道只出专长(独占);终局 Boss 不给;金币不进商店写成「计价物不自售」**规则**而非特例 | +| v2.2 | 非 Boss 渠道给**门票**形式(拿到即开、不可囤积);渠道约束重构为**三层**(分类白名单 / 可计算谓词 / 显式例外清单);立**默认原则**——除已登记规则外分类内成员都要在池子里 | +| v2.3 | 门票四条口径细化(含**计步保底**:连续 5 次展示未出第 6 次必出,刷新重展计入);修正默认原则表述——**只管分类内部**,"渠道出哪些分类"是渠道轴自己的定位决定 | +| v2.4 | 顶层定名**「奇物」Wondrous Item**(DND 魔法物品九分类的兜底杂类);落选 Treasure(偏财物)/ Relic(用户否决)/ 全部自造词;**代码词族定为 `curio_*`**(`reward_*` 已被占用) | +| v2.5 | 第三类定名**「资源类」**(偏泛,故在 1.3 写死判据句);**回复留在资源类**不拆第四类 | +| v2.6 | **修正核心循环图**——奇物不是打一场战斗给一份;关底 Boss 击败=通过这一关是同一时刻;兑付频率写进文首 / 2.1 / 待办 / registry | diff --git a/roadmap.md b/roadmap.md index 67eb7fac..3b92ba52 100644 --- a/roadmap.md +++ b/roadmap.md @@ -60,6 +60,7 @@ | 迭代 12 | **双层 BD 实施批(反制批位移承接——变异应对局内化在本批落地)**:**2026-10-03 用户五裁全落**=R1 甲(树形态融合案:主干脊柱 row-gating+三脉+彩蛋 ≤3+A/B 集中同调脉)/R2 乙(**两层全入本迭代**:批次一 T0-T7=机制件基建+七流派全量铺〔R3 乙〕+地形转化件+商店保底+MC 锚;批次二 T8-T10=天赋树+存档 v4+营地 UI 重构;超软时间盒切 12/12b,切分点=批次一出口)/R3 乙(七流派批次一全量铺)/R4 甲(**信息型永不对冲**+复查闸=T10 呈报信息型真人读数仅呈报不提案;净化工兵仅限伤害型、清除工具件族不做、深挖钻头改非信息税设计)/R5 甲(喂雷流不做,06 留正式待办+kill-switch 判据)。未落地备选内容已自包含迁 06「双层 BD 延期与备选内容总登记」。设计事实源=`design/research/双层BD体系-整合定稿-2026-10-03.md`(双模型并行调研仲裁版),任务书=`design/research/任务书-双层BD实施批-2026-10-03.md`(已定稿)。**✅ 已全批落籍(2026-10-04,台账 328-333)**:TP0 令牌池先行(normal 重锚)→批次一 T0-T7(27 件七流派+MC 成型锚 L1 5%→75% 分岔+红线自检①过)→批次二 T8-T10(天赋树 33 节点+存档 v5+营地树 UI+A/B 面 0.0pp)一次合并 e780063;试玩反馈四连修复(钻头 AP 锁死/v2 收益重投/流派件呈现双界面/清图奖励 toast)至 c43276d;批末冒烟 718/0+run_all 15+探针绿+doc 三闸基线同款+熵增 PASS;**出口人闸待用户**(人工检查清单=台账 328-333+design/qa/m4iter12 两报告);前置=迭代 11 三批出口+M-4 数值批令牌池落地+商店批共享池 | 迭代 11 出口 | T0-T10 两段式(任务书 §四) | | 迭代 13 | **工程债与测试基建批(含 D6 爆破工兵包实施)**:六条目=ui_click_probe 完整局适配(D1——分派链序修正+停点/锁期/重放三态断言)/探针只读出口(D2——六出口 26 直入清零)/ArmedTimer helper(D3——P4 乙三处计时收口缝零动)/main.gd 二期瘦身(D4——bonus_interact_controller+camp_shop_presenter 拆件 1370→1119,家族②契约3绑定面留置;~900±50 锚差=族级清单上限不自洽已归因)/aux 二期合并(T5 判不合收口)/杂项尾差四件(D5)/爆破工兵包中立移除雷格(D6——P1 甲邻接冻结/P2 甲退色降档,判定逻辑零改动,充能表驱动零新码)。**✅ 已落籍(2026-10-04,台账 342)**:worktree m4iter13-debt-20261004 八提交 cd7d3ea…2402877 合并 eff8cb8;闸=冒烟 718/0(断言数持平基线)+run_all 15+click 三种子绿+全探针绿+doc 三闸零新增+熵增 PASS+MC 零跑(静态零漂移证明);合并后主区全量复跑同绿 | 迭代 12 出口 | T0-T9 ≈4.8-5.3d(知情超限单批,实际单会话) | | 迭代 14 | **初始展开收窄批(2026-10-04 用户拍板甲乙混合立项)**:甲=先布后删剃雷域收窄至出生 3×3∪外扩 r 环(参数化半径,现值 r=1——开阔地均值从板面 66.5% 根因性降至约三成)+乙=生成重掷闸 R₀≤cap(合法性门序列、cap=板面 30% 锚〔10×10=30/12×12=43/13×13=51〕、重试耗尽走既有三分出口);**玩法侧零改动路线**(排雷玩法「初始展开恰等」验收原样为真,minesweeper_rules.gd 零 diff);裸数字截断路否决退役(可见 0 格+未开邻居=扫雷不可能态)。可行性报告=`design/research/研究-初始展开收窄可行性-2026-10-04.md`,任务书=`design/research/任务书-初始展开收窄批-2026-10-04.md`(T0-T8≈5.25d,读数批 T5-T6 可切独立后批;拍板点 P1-P3 全读数后置;停机点 S1 相变警戒/S2 带越界回调)。**②挖掘风险不等式判式换代批(2026-10-04 用户裁编入本迭代,作为迭代内需求)**:判式三层换代(条款2 标中旗锚/条款3 聚合健康式「(1−ρ̂)E_dig−ρ̂V_mine≥0」/旗边际引理+条件二旗溢价)+β 比值带判读 [1.2,2.5](u=3 登记态)+标中兑付溢价 δ=1.25(形态 a 兑付公式一处·雷安同池冻结不动)+runsum 旗行为五字段+audit 工具常量刷新(池 77/直伤 6-8-8/AP 8);裁决全落零新拍板点(方案报告=`design/research/方案-挖掘风险不等式修订-2026-10-04.md` §九),任务书=`.zcode/plans/mine-inequality-revision-miniloop-plan-2026-10-04.md`(T0-T5≈2.5d;条件二 T3 落文按登记已知破·T4 机制转绿;契约红线=DamageController 零改/直伤雷 6-8-8 与 p_perfect 不动——iter8 缺口四选一解绑独立在案;开工门=U0)。**③全局作用域变异首发批(2026-10-04 用户拍板立项——调研报告 P1-P8+盘问 Q1-Q4 全按推荐案落,批内序位待排)**:L2/L3 Boss 图恒定一型 scope=global 变异,首发型=**案A 资源面·微贫向偏斜**(正向格面池合计不变、进攻族 attack/blast/pierce/magic 权重上浮/生存族 heal/defense 明显下调、EV 微降 3-5% provisional、gp/action 白名单不动;v1.0「沃土+雷密对冲」形勘误作废——雷数为生成器事实、布置段不可加,改生成端=踩结构面否决理由);**替换制**(Boss 图不再布 region 片——L2 完美 Boss 承伤 55.8% 已越带不叠加;迭代 12 四件地形应对件在 Boss 图失效=知情代价,registry/调参日志随批登记);L1 Boss 免疫(带B [50,85] 教学保护);三层预告(开战横幅+HUD 常驻角标+帮助手册行);带A 判读后置 M-4(落地 off/on 对拍只测不判;off 基线=替换制后零变异 Boss 图,与现行带 region 片 Boss 图语义不同须注明);偏运硬币合成序=图级先件级后(代拍随批锚登记)。调研报告(事实源,v1.1 裁决落盘)=`design/research/调研-全局作用域变异设计空间-2026-10-04.md`,任务书=`design/research/任务书-全局作用域变异首发批-2026-10-04.md`(T0-T8≈5.75d,读数批 T7 可切独立后批→主体≈5.25d;零新拍板点·provisional 追认单随批;停机点 S1 普通图逐位漂移/S2 读数越带只呈报/S3 互锁误伤;开工门=U0;**⑥A4 批开工门含本批出口——本批落地图级偏斜投影点为⑥合成链中段**)。与①②互不撞(收窄=普通图初始展开轴/判式=不等式判读口径/全局变异=Boss 图资源面轴),出口读数各自分开归因。**✅ 实施批落地(2026-10-04,worktree m4iter14-gvar-20261004 台账 345)**:T1-T8 实施批全落(T7b MC 读数批按切分预案切独立后批,跑批待用户批准)——skewed_veins 贫矿脉行+互锁三条+effect_value [0,50]/门控第三维节点身份/替换制+兜底回落/装板序全局决议前置(数据依赖调和,出口报告在册)/资源面偏斜投影(整数最大余数守恒 77+合成序图级先件级后)/三层预告三层全接/七正主落文+06 收口;闸=冒烟 747/0(+29)+run_all 15+golden 普通图逐位 12/12 全等+六探针+三闸熵增终录见批报告 design/qa/m4iter14-gvar-exit-report-2026-10-04.md(Q3 四件应对件知情代价登记+静态推演+provisional 追认单+人闸目检清单);**③出口成立——⑥A4 开工门解一半**(另半=②出口);off/on 双档读数待 T7b(带 A 判读归 M-4 只测不判)。**④技能池执行批(2026-10-04 用户点名入列——调研+四裁+任务书全齐,06 Alpha 验证条目随之收口)**:文档五件(敌人系统.md 池构成表补 L2/L3 五敌种行/护甲列改读表口径/Boss 三代错峰句/意图呈现节补解锁弹出规格/版本 v0.13+EV 锚整数口径重登记+enemy.tres 批注消歧)+**新机制一件=Boss 半血解锁新独占伤害技**(三 Boss 血量 ≤50%〔用户口径定死〕解锁:酋长「震地怒击」类 ×2.5/CD4·卓尔遏毒类 ×2.0/CD3·石君王「岩崩」类 ×2.5/CD4——参考档即工作值,命名 T5 定稿、倍率冷却 provisional 归调参;enemy.tres 池条目扩 unlock_hp_pct 键〔int [1,99] 缺省无=无门槛〕;未解锁条目双面过滤不进摇号与保底集合;解锁出一次归因明细行「XX 解锁了 YY」);首拍加权取消(杂鱼纹理注销——巨蜘蛛 52% 读数已被 Package B 抬血自愈、地精两行终裁不加工);呈现=明细行+既有类型级预告+解锁时技能名一次性弹出(零动画资产、不改演出);裁决 D1-D8 零待裁;任务书=`design/research/任务书-技能池执行批-2026-10-04.md`(T0-T7≈4.25d,切分预案在册)——开工=用户发令升计划书。**⑤魔法提灯 +2 效果接线(小卡)**:零调研直入——2026-09-30 拍板④已裁(灯甲视野外扩 +2 格、类型微光不随视野扩),迷雾批已留常量 LIGHT_RADIUS_LANTERN_BONUS,纯接线+断言估 0.5d 内。原候选卡注记终态(2026-10-04):敌人系统内容批=已具化为④;教学引导定稿批=用户裁改排 Beta(06 教学节头注记在案),移出本迭代候选。**⑥冒险前资源配比预设批(A4,2026-10-04 用户令编入本迭代——提案八裁全落,裁决事实源=design/research/提案-冒险前资源配比预设-2026-10-04.md §八§九§十)**:玩家冒险开始前预设格面九型资源分布(预设分布不预设落位,装板摇号定落位)——预算=组合制(总量挪点·九型正向权重总和恒 77+每型上下限包络+容量随营地解锁渐进;gp 首发不可调〔包络 (2,2)〕/预设档 3 套/下限>0);合成序=表值→玩家配比差值→包络钳制→图级变异偏斜→同调硬币偏置(包络只管玩家差值——**序位在②③之后**,三者共用摇号投影点);注入=差值向量 ΣΔ=0 关态逐位零扰动;柜台=奖励格图鉴逐型商品(每型可调权一件);冒险开始锁档中途不可换;包络宽度随容量分级放宽;验收=默认分布锚+极端构筑护栏带。容量定价与包络数值 provisional(包络数值须待②号新当量账+真人读数双锚校准);行动经济对账按包络复算(总量恒 77 只余分布位移变量)。**任务书已起草**=design/research/任务书-冒险前资源配比预设批-2026-10-04.md(T0-T8≈6.0d,两段切分预案在册〔段一机制 T0-T4+T6≈3d/段二界面闸 T5+T7+T8≈3d〕;开工门=②③号卡出口;零新拍板点,provisional 归出口追认;停机点 S1-S3 在册)。 | 迭代 13 出口(**迭代 13 已落籍 2026-10-04 eff8cb8**,台账 342) | 初始展开批 T0-T8(可两段切分)+判式换代批 T0-T5≈2.5d(独立 worktree 合并)+全局变异首发批 T0-T8≈5.75d(读数批可切,独立 worktree 合并)+技能池执行批 T0-T7≈4.25d(独立 worktree 合并)+提灯接线小卡 0.5d(可并入任一批顺路)+配比预设批 A4 T0-T8≈6.0d(两段切分可拆;开工门=②③出口;独立 worktree 合并) | +| 迭代 15 | **奇物概念收口与词族对齐批(2026-10-05 用户令编入)**:概念层已由用户逐轮裁定定稿(《奇物》v1.0→v2.6,6 轮),本批只做**落地对齐**、不做二次设计。三批内容:**①三套旧词族全面对齐**(顶层已改名「奇物」而代码仍叫旧名=用户最初抱怨的"文档与代码分开"):`feature_*`→`curio_*`(103 处/7 文件)、`relic_*`→`feat_*`(162 处/12 文件)、运行层 `bonus_*`→`curio_*`(160 处/8 文件)。**硬约束:`reward_*` 已被 `reward_pick`/`reward_node`/`reward_preview` 占用,统一词族不得使用**;`relic_table.gd` 与两个控制器类改名须同步 Godot `.uid`/`.tscn`(非文本层无法自证)。**②三条渠道按分类分离**(现行三渠道共用同一个 98 张池、三类混编):关底 Boss 击败=通过这一关→只出机制类;奖励节点/商店→属性提升类+资源类、机制类在此**只以门票形式**出现。**兑付频率红线**:奇物不是打一场战斗给一份,关内普通战斗节点打完不给任何奇物,一关之内只兑付一次(用户 2026-10-05 纠错)。**③两个新种类入池**=刷新次数(须先与"商店独立刷新机制"划清边界)+ 专长获取门票(拿到即开不可囤积/罕见只在概率/一局限购一次/计步保底:连续 5 次三选一展示未出→第 6 次必出,刷新重展计入、奖励节点与商店共享计数);附带 `shop.tres` 补回复(默认原则要求分类内成员都在该出现的渠道池里)与 charge 标签补至 ≥4 件(现仅 3 件,档二永远达不到——数据缺陷)。设计事实源=`design/gdd/systems/冒险循环/奇物.md` v2.6,任务书=`design/research/任务书-奇物词族对齐与渠道分离批-2026-10-05.md`(T0-T8≈4.5d,两段切分预案在册〔段一词族 T0-T3≈2d/段二渠道+入表 T4-T8≈2.5d〕,切分点=T3 出口;11 条设计契约含 6 条 🔴 停机级;12 条批末验收断言;代拍板白名单 5 项;待用户裁点 4 项〔玩家可见面违规/第四关档二复裁/门票四参数终值/存档键正式迁移〕)。**开工门**:与在途 M-4 各批(判式换代/全局变异/配比预设)撞同一批文件(`adventure_table.gd`/`level_runner.gd`/`adventure.tres`),须确认不并行或用户明示插队 | 迭代 14 出口 | T0-T8≈4.5d(可两段切分:词族对齐段 + 渠道入表段) | ## 执行纪律(2026-09-27 用户立规)