diff --git a/design/research/任务书-武器锻造系统设计提案批-2026-10-07.md b/design/research/任务书-武器锻造系统设计提案批-2026-10-07.md index 345446cd..80cdd546 100644 --- a/design/research/任务书-武器锻造系统设计提案批-2026-10-07.md +++ b/design/research/任务书-武器锻造系统设计提案批-2026-10-07.md @@ -1,4 +1,4 @@ -# 任务书:武器锻造系统设计提案批(迭代 18 卡③)· v1.0 +# 任务书:武器锻造系统设计提案批(迭代 18 卡③)· v1.1(审计重考证修订) > 起草 2026-10-07。开工门=**U0 用户发令**(提纲版任务书——零待裁点目标:系统的设计裁点全部在提案**产物**内全备选呈裁,不在任务书拦截)。 > 定位=**纯文档批**:产出《武器锻造系统》设计提案一份,呈用户盘问裁决;**提案批准前零代码零表改,实装批另行立项走全流程**。提案源=playnote 2026-10-06 用户手迹(06 专条在册)。 @@ -19,11 +19,11 @@ ## 2. 现状事实(提案的对齐基准——代码级考证,2026-10-07) -- **F1 攻击力现役两源,皆 flat 加算、无武器实体**:①营地属性锻造=meta.tres forge_products(攻击锻造 atk+1/生命锻造 max_hp+3/护甲锻造 armor+1;base_price 20、price_ratio_pct 150);②关卡商店=shop.tres products(攻击锻升 atk+1 base 4 递增 2、生命同构)。 -- **F2 攻击类型轴现状**:主角普攻**无类型实体**;pierce/magic 现为**格面资源** cell_type(battle_orchestrator.gd:808/:824——正向=单目标克制直伤、必中全额不掷点);克制矩阵现役值域=pierce_vs_light/magic_vs_heavy/magic_vs_magic(feats.tres polarity 行);敌方装甲 armor_type 现役缺省 "light"(battle_orchestrator.gd:1272),三型 light/heavy/magic。克制矩阵正主=战斗结算/敌人系统文档。 -- **F3 主角护甲现状**:AC=hero_armor_class 单值(掷点批机制,defender_ac 消费 battle_orchestrator.gd:172)——**无护甲类型实体**(不分轻/重/魔法甲);提升渠道=锻造 armor+1/商店甲升/局内属性件。 +- **F1 攻击力现役两源,皆 flat 加算、无武器实体**:①营地属性锻造=meta.tres forge_products(攻击锻造 atk+1/生命锻造 max_hp+3/护甲锻造 armor+1;base_price 20、price_ratio_pct 150);②关卡货架=shop.tres **pool_shelf 六行+pool 公式**(config_db.gd:330/:334 现役)——products 行族(atk_up/hp_up base 2/armor_up)系 **legacy**(shop=off 对照承载,shop_table.gd:16、shop.tres:107-109),迁移面(§5.8)对准现役行族。 +- **F2 攻击类型轴现状(审计重考证——轴已存在休眠,非待新建)**:主角 `attack_type` 轴现役在册=hero.tres:11 `"normal"`+hero_table.gd:13 enum{normal,pierce,magic}(2026-09-18 营地扩展前置批立轴,战斗段甲效矩阵消费、数值中性休眠);pierce/magic 现为**格面资源** cell_type 走克制直伤(battle_orchestrator.gd:830 注/:846-854——必中全额不掷点);**克制矩阵已是全 3×3 九格**=settlement.tres:31-47(normal/pierce/magic × light/ward/heavy);feats.tres 三值(pierce_vs_light/magic_vs_heavy/magic_vs_magic)系**专长 matchup 条件值**非矩阵本体(when fact=matchup——其中 magic_vs_magic 在现行甲域下永假=死条件,清理随提案呈裁);敌方装甲 armor_type 域={light,ward,heavy}(enemy_table.gd:113),实值 light×14/heavy×4/ward×1(enemy.tres),缺省 light(enemy_table.gd:110-113、battle_orchestrator.gd:1155/:1294)。敌方攻击无类型(damage_controller.gd:19/:513 空串=不查矩阵)。克制矩阵正主=战斗结算/敌人系统文档。 +- **F3 主角护甲现状(审计重考证)**:AC=hero_armor_class 单值现役生效(掷点批机制,defender_ac 消费 battle_orchestrator.gd:172);**甲型结构位已在册休眠**=hero.tres:10 `armor_type:"light"`+hero_table.gd:12(敌方攻击恒 normal 档故数值中性);甲域三型={light,ward,heavy}——用户案「重甲/魔法甲」与现役域的映射(魔法甲↔ward?)=提案定名裁点。提升渠道=锻造 armor+1/货架甲升/局内属性件。 - **F4 局内属性件**:奇物属性值提升分类(生命/AC/攻击三轴加算区,关间不清零)——局内获取线;与 F1 营地/商店的局外-关内双线并存是现役结构。 -- **F5 相邻系统**:营地三柜台(属性锻造/Boss 两档/工坊六件阈值);GP 经济(商店刷新两参数 provisional 在册);数据驱动基建=迭代 17 卡⓪ EffectEngine 已落籍(效果类型闭集 19 行 23——**提案的满级特效优先复用现役效果类型,新效果类型=实装批的代码面**)。 +- **F5 相邻系统**:营地三柜台(属性锻造/Boss 两档/工坊六件阈值);GP 经济(商店刷新两参数 provisional 在册);数据驱动基建=迭代 17 卡⓪ EffectEngine 已落籍(效果类型闭集 19 行定稿、**类型实数 24**〔effect_engine.gd:28-35——源码注记「23」系笔误〕——**提案的满级特效优先复用现役效果类型,新效果类型=实装批的代码面**)。 - **F6 成长曲线反馈**(playnote 同日原文):「一开始不能让角色的成长系数太高……没升级前成长系数跟不上关卡怪物难度提升;能力解锁后才能匹配」——锻造定位须回应此曲线诉求。 ## 3. 范围边界(🔴 不可越界) @@ -43,14 +43,14 @@ ## 5. 提案文档必答框架(八节,缺节不收口) -1. **武器实体化程度**(核心裁点):甲=纯升级轨无实体(锻级=atk 成长曲线+类型标签);乙=武器槽实体(一生主械,换械=构筑决策);丙=折中(主械唯一+类型由械定)。逐案对照 F1 两源与奇物属性件的关系(吸收/并存/退役)。 -2. **攻击类型轴关系**:武器类型(普攻/穿刺/魔法)与格面资源类型(F2)两轴怎么共存——叠加/替代/互斥,克制矩阵怎么扩(现役值域 pierce_vs_light/magic_vs_heavy/magic_vs_magic 上加什么)。 -3. **护甲实体化**:轻/重/魔法甲 vs 现役 AC 单值(F3)——类型带基础 AC 差异+克制反向(敌方 pierce/magic 打不同甲?现役敌方攻击无类型?考证后作答);升级轨与满级特效框架。 +1. **武器实体化程度**(核心裁点):(前提=**唤醒休眠 attack_type 轴**〔F2〕,非新建)甲=纯升级轨无实体(锻级=atk 成长曲线+类型标签写入既有轴);乙=武器槽实体(一生主械,换械=构筑决策);丙=折中(主械唯一+类型由械定)。逐案对照 F1 两源与奇物属性件的关系(吸收/并存/退役)。**通用必答=携带数与换械时机**(单持/多持;换械限营地还是战斗中可换——三案都必须作答)。 +2. **攻击类型轴关系**:武器类型与格面资源类型(F2)两轴怎么共存——叠加/替代/互斥;**克制矩阵已是全 3×3**(settlement.tres:31-47)——加第四类型或第四甲型才扩维,否则复用现役九格;**专长件联动必答**:新 matchup 值与专长条件词族的兼容+死条件(magic_vs_magic 永假在册)清理。 +3. **护甲实体化**:轻/重/魔法甲 vs 现役 AC 单值+休眠甲型位(F3)——**甲域映射定名裁点**(魔法甲↔ward/扩第四甲域?);类型带基础 AC 差异+克制反向落点(敌方攻击无类型已考证=克制反向仅己方攻击面生效);升级轨与满级特效框架。 4. **成长曲线定位**(F6):锻造作为曲线调节器的位置——前期压制/解锁节奏/与关卡难度曲线的匹配关系;与「开局成长系数」反馈的呼应面。 -5. **经济与解锁**:营地柜台承载(第几柜台/与属性锻造的关系——替换还是并列);锻造等级 cap;GP 定价结构(provisional)。 +5. **经济与解锁**:营地柜台承载(第几柜台/与属性锻造的关系——替换还是并列);锻造等级 cap;GP 定价结构(provisional);**材料经济裁点**=GP 之外要不要材料/掉落物(效果类型已有 grant_material 钩,effect_engine.gd:32——三案并列呈裁);**配比预设挂起批边界注记**=A4 配比预设批(2026-10-05 挂起冻结)的预算/容量/克制双注直接吃武器类型与柜台结构变更,提案不得预设该批重启口径。 6. **满级特效清单框架**:每械/甲 1-2 条;逐条标注数据驱动兼容性(复用 EffectEngine 现役效果类型 or 需新效果类型=实装批代码量标记)。 7. **数值框架 provisional**:各等级值/特效值只给量纲与锚点(终值归 Alpha 收官 M4 数值批)。 -8. **迁移面与裁点汇总**:现役攻击锻造/商店锻升行的过渡方案(保留/改名/吸收)+全裁点一览表(供盘问轮)。 +8. **迁移面与裁点汇总**:现役 meta 锻造行与货架 pool_shelf 现役行族(legacy products 行族标注)的过渡方案(保留/改名/吸收)+全裁点一览表(供盘问轮)。 ## 6. 任务卡(T0-T2) @@ -67,7 +67,7 @@ ## 8. 异常分级 -L1/L2 标准三级。停机点:S1=T0 复核发现 §2 事实错误(提案基准失效,重考证后再成文);S2=盘问轮出现「原案前提被推翻」类纠偏(先例=试玩反馈两机制提案题一整题重写)——当轮停,重写受影响节再呈。 +L1/L2 标准三级。停机点:S1=T0 复核发现 §2 事实错误(提案基准失效,重考证后再成文)——**2026-10-07 审计已触发一次:§2 四处失真随 v1.1 重考证改写,本版即产物**;S2=盘问轮出现「原案前提被推翻」类纠偏(先例=试玩反馈两机制提案题一整题重写)——当轮停,重写受影响节再呈。 ## 9. loop engineering 八件对照(合规自证) @@ -75,8 +75,9 @@ L1/L2 标准三级。停机点:S1=T0 复核发现 §2 事实错误(提案基 ## 10. 现状留痕(执行会话读序) -先读 06「武器锻造系统」专条+playnote.md 武器锻造手迹(原文)→ 本文件 §2 → meta.tres/shop.tres 商品行段 → battle_orchestrator.gd 克制轴段(:808-830)→ 《奇物》v2.7 属性值提升分类节 → 《战斗结算》《敌人系统》克制矩阵节。裁决沿革:roadmap 卡③行+active.md 台账 381/385。 +先读 06「武器锻造系统」专条+playnote.md 武器锻造手迹(原文)→ 本文件 §2 → meta.tres/shop.tres 商品行段 → battle_orchestrator.gd 克制轴段(:830-854)→ 《奇物》v2.8 属性值提升分类节 → 《战斗结算》《敌人系统》克制矩阵节。裁决沿革:roadmap 卡③行+active.md 台账 381/385。 ## 11. 版本记录 - v1.0(2026-10-07):起草。提纲版——设计裁点在提案产物内呈裁,任务书零待裁点;估时 1.5d(一轮呈裁基线)。 +- v1.1(2026-10-07):subagent 对抗审计触发 S1 重考证(总判=须重审→本版即重审产物)——🔴×6 修复:F1② 货架行族改 pool_shelf 现役(products=legacy,hp_up base=2 非 4)/F2 主角 attack_type 轴已存在休眠(hero.tres:11+hero_table.gd:13,前提倒置改写)/F2 克制矩阵已是全 3×3(settlement.tres:31-47,甲域={light,ward,heavy} 非 light/heavy/magic)/F3 甲型结构位已在册休眠/F2 克制直伤行号订正(:830/:846-854)/F5 效果类型实数 24(「23」系笔误);🟡×7:专长 matchup 联动与死条件清理入 §5.2/材料经济裁点入 §5.5/携带与换械通用必答入 §5.1/配比预设挂起批边界注记/《奇物》指针 v2.8/:1272 引用订正。 diff --git a/design/research/任务书-混编遭遇首批投放批-2026-10-07.md b/design/research/任务书-混编遭遇首批投放批-2026-10-07.md index 7dcc3ed4..22cb9841 100644 --- a/design/research/任务书-混编遭遇首批投放批-2026-10-07.md +++ b/design/research/任务书-混编遭遇首批投放批-2026-10-07.md @@ -1,6 +1,6 @@ -# 任务书:混编遭遇首批投放批(迭代 18 卡⑤)· v1.0 +# 任务书:混编遭遇首批投放批(迭代 18 卡⑤)· v1.1(审计修订) -> 起草 2026-10-07。开工门=**迭代 17 卡①(敌人表行集多行批)落籍 master + 裁点 P1-P3 全裁 + U0 用户发令**。 +> 起草 2026-10-07。开工门=**迭代 17 卡①(敌人表行集多行批)落籍 master + 裁点 P1-P4 全裁 + U0 用户发令**(**2026-10-07 审计核证:卡①已落籍 master〔合并 9cc4b8b,追认 e5a2d01〕——开工门第一项已满足**)。 > 定位=**纯内容批**:在卡①交付的多行机制上做首次内容投放。义务源=07「后续内容批义务」(敌人表行集多行批 P3 丙二裁挂单,2026-10-06;已编入本卡)。 ## 1. 目标与完成定义 @@ -14,18 +14,18 @@ 1. enemy.tres 新增混编行落表,同 (L,D) 多行**相邻且行序=声明序=生成序**(R6 行序契约)。 2. 首遇教学位行零触碰:巨蜘蛛 L2 节点 4「固定 2 不加骰」等表注释语义逐位保持,对应冒烟断言绿。 3. expect_pools 断言面随新坐标池模板换代绿(键形制=卡①交付的 (L,D,enemy_id) 口径)。 -4. Boss 行(若 P2 裁投放):Boss 名取首行显示/Boss 遭遇骰读首行区间/半血解锁/独占技四面读数逐项过(实机目检清单交付)。 -5. 07 难度带读数义务随批登记;**MC 取证跑批不进本批**(顺延 Alpha 收官 M4 数值批统一执行——2026-10-07 用户令口径,跑批发起届时另报批)。 +4. Boss 行(若 P2 裁投放):Boss 名取首行显示/Boss 遭遇骰**逐行区间骰**读数〔卡① Q8 逐行骰已消解「读首行区间」旧口径——卡①出口报告 7859441 在册〕/半血解锁/独占技四面读数逐项过(实机目检清单交付)。 +5. 07 难度带读数义务随批登记;**MC 取证跑批不进本批**(顺延 Alpha 收官 M4 数值批统一执行〔2026-10-06 用户令定序、2026-10-07 复确认〕,跑批发起届时另报批)。 6. 敌种属性数值零变更(混编组合本身即难度变化源,禁二次加难)。 ## 2. 现状事实(代码级考证,2026-10-07 master;卡① 落籍后 T0 复核以 master 新态为准) - **F1 表现状**:enemy.tres 共 19 行/9 敌种,行键 (level_index, node_depth, enemy_id),行集校验 enemy_table.gd:108-112(master 现状=每行集恰一敌种,卡①放开设计在册)。各关构成:L1=地精系+熊地精+食人魔酋长;L2=熊地精系+巨蜘蛛+卓尔精灵(Boss d9);L3=灰矮人系+钩爪恐魔+石君王(Boss d9)——**现状零跨关混编**。 -- **F2 卡①交付面**(本批的前置依赖,落籍后生效):行集校验放开;R6 行序纪律(任务书-敌人表行集多行批 :101);每行一骰数量骰(encounter 封闭流扩签,实例总数 ≤4,UNIT_COUNT_MAX 语义改「单种数」——:136/:138);expect_pools 断言换代 (L,D,enemy_id) 键(:77);Boss 行亦放开(P4 乙)。 -- **F3 Boss 面**(多行投放时六面读数载体):Boss 节点=level 表 `node_type=="boss"` 编码位(level_table.gd:20/:89-91,每关恰一);Boss 名取首行 display_name(battle_narrator.gd:71-77);Boss 遭遇骰读首行 unit_count 区间(battle_orchestrator.gd:181-190);半血解锁 unlock_hp_pct(unit_container.gd:80-169;unlock_hp_pct 无硬闸=文档纪律,enemy_table.gd:94-95 注)。 +- **F2 卡①交付面**(本批的前置依赖,落籍后生效):行集校验放开;R6 行序纪律(任务书-敌人表行集多行批 :103);每行一骰数量骰(encounter 封闭流扩签,实例总数 ≤4,UNIT_COUNT_MAX 语义改「单种数」——:138/:140);expect_pools 断言换代 (L,D,enemy_id) 键(:79);Boss 行亦放开(P4 乙)。 +- **F3 Boss 面**(多行投放时六面读数载体):Boss 节点=level 表 `node_type=="boss"` 编码位(level_table.gd:20/:89-91,每关恰一);Boss 名取首行 display_name(battle_narrator.gd:71-77);Boss 遭遇骰=每行各掷自己区间骰(battle_orchestrator.gd:181-198——「读首行区间」系 Q8 消解前旧口径);半血解锁 unlock_hp_pct(unit_container.gd:80-169;unlock_hp_pct 无硬闸=文档纪律,enemy_table.gd:94-95 注)。 - **F4 首遇教学位**:enemy.tres:486-487 巨蜘蛛「首遇位节点 4 固定 2 不加骰」;:518-519 钩爪恐魔「(节点0/节点1) 固定数量不加骰」;冒烟断言 smoke_all.gd:3535/:3568/:2288-2293 在册。 - **F5 义务原文**:07-体验验证清单.md:174(六面读数+教学位复核+MC 先报批)。 -- **F6 spawn 现状**:unit_container.gd:42-95 spawn 单行受理(master 现状);行集化改法=卡①任务书 :69(逐行实例化/行主序/池逐行独立快照/守卫行集级)。 +- **F6 spawn 现状**:unit_container.gd:42-95 spawn 单行受理(master 现状);行集化改法=卡①任务书 :71(逐行实例化/行主序/池逐行独立快照/守卫行集级)。spawn 期守卫=ENEMY_ROWSET_INSTANCE_MAX=4 fail-fast(unit_container.gd:82-84,超限种子战斗当场拒启)。 ## 3. 范围边界(🔴 不可越界) @@ -38,18 +38,18 @@ ## 4. 设计契约(🔴 触碰 = L3 停机) 1. **R6 行序**(沿卡①契约):同 (L,D) 多行在表文件内相邻且行序=声明序=生成序——resolver 返回序/narrator 取首行/expect_pools/spawn 行主序全部依赖文件行序。 -2. **实例总数 ≤4**(卡① P1 裁):行集各行数量骰之和不超过 4——混编行设计的 unit_count 搭配须满足(静态可验,随表注释自证)。 +2. **实例总数 ≤4**(卡① P1 裁):静态判据=**Σ(unit_count_max,固定行缺省=unit_count)≤4**(守卫 fail-fast 见 F6)——T1 设计稿逐案自证最坏骰和(如 d5 案=固定 1+蜘蛛[2,3]→上限 4 安全;d7 案仅容固定 1 搭档)。 3. **表注释纪律**:每新行带注释(设计意图/读数预期);教学位语义注释逐字保持。 -4. **只投已验证组合**:首批混编只允许「已现役敌种」两两组合(9 敌种池内),零新敌种(新敌种=独立内容批)。 +4. **只投已验证组合**:首批混编只允许「已现役敌种」两两组合(9 敌种池内),零新敌种(新敌种=独立内容批);**敌种不得早于其首遇位所在关出现**(跨关混编禁令——正撞首遇教学位纪律与卡① P3 改裁依据)。 ## 5. 任务卡(T0-T5) - **T0 开工三查+机制到位复核**(≈0.25d):worktree+基线复读;**卡①机制在位验证**(多行 spawn/每行一骰/expect_pools 新键在 master 的断言实跑);07:174 义务对读。 -- **T1 混编行设计稿**(≈0.5d):按 P1 裁案产出候选组合×坐标提案(全备选案+淘汰依据呈裁):每案列 (L,D)/行序/两行 unit_count 搭配(总数 ≤4 自证)/与首遇位和 Boss 位的冲突排查;B 重点=巨蜘蛛 L2 d4 首遇位与 L2/L3 各 Boss d9 均为禁区。 +- **T1 混编行设计稿**(≈0.5d):按 P1 裁案产出候选组合×坐标提案(全备选案+淘汰依据呈裁):每案列 (L,D)/行序/两行 unit_count 搭配(总数 ≤4 自证)/与首遇位和 Boss 位的冲突排查;B 重点=巨蜘蛛 L2 d4 首遇位与 L2/L3 各 Boss d9 均为禁区。**新行全行值裁定来源随案呈裁(P4)**:甲=复制同敌种既有行值/乙=provisional 新值——expect_pools 池模板断言值随裁定走。 - **T2 人闸**:用户裁敌种候选与坐标(P1-P3)。 - **T3 数据行落地**(≈0.25d):enemy.tres 新行+表注释(R6 相邻+行序纪律落表)。 - **T4 断言面随迁**(≈0.5d):expect_pools 新坐标池模板断言(键=卡①口径);首遇位断言逐项复核绿;Boss 行断言(若投放:首行名/首行区间/解锁/独占技四断言)。 -- **T5 收口**(≈0.25d):轻闸全量+doc 三闸+熵增+07 读数义务登记(六面读数清单入 §⑲ 式新条目)+出口报告+人闸实机目检清单(混编遭遇呈现/行序/实例总数 ≤4 目视)。 +- **T5 收口**(≈0.25d):轻闸全量+doc 三闸+熵增+07 读数义务登记(六面读数清单入 §⑲ 式新条目)+出口报告+人闸实机目检清单(混编遭遇呈现/行序/实例总数 ≤4 目视);**顺带订正 07:174「Boss 遭遇骰读首行区间」措辞**(逐行骰口径换代)。 **估时合计 T0-T5 ≈ 1.75d**(MC 取证顺延 Alpha 收官数值批,不占本批估时)。 @@ -64,6 +64,7 @@ - **P1 首批投放方案**(核心裁点):**甲=单点试水**——L2 一处普通节点(d5/d7 候选)「巨蜘蛛+熊地精」双行混编:最小验证、教学位零冲突、Boss 不动(推荐——首次投放以机制验证优先,读数噪音最小);乙=每关一处——L1/L2/L3 各选一普通节点混编(覆盖面全、读数一次到位,但首批同时动三关);丙=甲+Boss 护卫多行(卓尔/石君王行集+杂兵行——六面读数全激活,首投即动 Boss 风险最高)。 - **P2 Boss 多行是否入首批**:**甲=不入**(随 P1 甲/乙——Boss 多行待首批读数回看后第二批,推荐);乙=入(即 P1 丙)。 - **P3 教学界保护**:**甲=L1 教学段(d0-d2)维持零混编**(首遇教学位纪律的自然延伸,推荐);乙=L1 亦开放候选(不推荐——教学段行为变化涉 07 教学项)。 +- **P4 新行行值来源**:**甲=复制同敌种既有行值**(零数值新增——混编组合本身即变化源,与完成定义 6「属性零变更」同构,推荐);乙=provisional 微调值(归难度曲线批锚)。 **代拍板白名单**:表注释措辞/断言文案/候选坐标在同方案内的微调(不出方案族)。 @@ -82,3 +83,4 @@ L1/L2 标准三级。停机点:S1=T0 发现卡①机制未在 master 生效( ## 11. 版本记录 - v1.0(2026-10-07):起草。裁点 P1-P3 待裁;开工门含卡① 落籍(worktree iter17-enemy-20261007 在飞)。 +- v1.1(2026-10-07):subagent 对抗审计修订(总判=小修后可开工)——🔴×1:判定4/人闸/F3「Boss 遭遇骰读首行区间」改逐行骰口径(卡① Q8 已消解,T5 顺带订正 07:174);🟡×4:实例总数静态判据改 Σ(unit_count_max)≤4/跨关混编禁令入 §4.4/新行行值来源立 P4 裁点/卡① 任务书引用行号订正(v1.1 页码);开工门注记卡① 已落籍〔9cc4b8b〕。 diff --git a/design/research/任务书-生涯界面实装批-2026-10-07.md b/design/research/任务书-生涯界面实装批-2026-10-07.md index 724e2a25..c74565b6 100644 --- a/design/research/任务书-生涯界面实装批-2026-10-07.md +++ b/design/research/任务书-生涯界面实装批-2026-10-07.md @@ -1,4 +1,4 @@ -# 任务书:生涯界面实装批——期一(迭代 18 卡④)· v1.0 +# 任务书:生涯界面实装批——期一(迭代 18 卡④)· v1.1(审计修订) > 起草 2026-10-07。开工门=**用户评审生涯设计提纲+设计定稿(人闸,P6 随裁)+ 裁点 P1-P3 全裁 + U0 用户发令**。 > 范围=提纲(design/gdd/systems/跨局循环/生涯.md v0.1)分期建议的**期一**:跨局汇总页+主菜单入口落位+终身计数域存档迁移。期二(历史回看)/期三(图鉴)另行立项,本批零触碰。 @@ -52,9 +52,9 @@ ## 5. 任务卡(T0-T5) - **T0 开工三查+提纲定稿对读**(≈0.25d):worktree+基线复读+§2 逐条复核;**对照评审后的生涯.md 定稿**(若期一范围有变=L3 呈报升版,禁带差异开工)。 -- **T1 存档 v6**(≈0.5d):终身计数域两字段(命名 provisional:adventure_total/adventure_cleared)+迁移函数(v5→v6)+写入单口(契约2)+只读访问器+断言三件(升档幂等/新档缺省/收束自增恰一)。 +- **T1 存档 v6**(≈0.5d):终身计数域两字段(命名 provisional:adventure_total/adventure_cleared)+迁移函数(v5→v6)+写入单口(契约2)+只读访问器+断言三件(升档幂等/新档缺省/收束自增恰一)。**随批同步三处(审计)**:①旧断言换代=smoke_all.gd:4734-4735/:4832-4833 硬断言「写盘 version==5」同批改 6;②registry=design/registry/entities.yaml save_file 条目(现 stale 在 4——v5 批已漏一次)+save_manager.gd:39 版本史注释;③cleared 判定字段=summary["cleared"](adventure_runner.gd:1012,"completed" 唯一出口=末关通关 :1005)现成直用。 - **T2 收束入账接线**(≈0.25d):收束点自增(口径=P1 裁值);断言(通关局与中止局各一夹具)。 -- **T3 生涯页**(≈0.75d):主菜单入口钮(F8 装配点)+page_shell 全屏页+汇总段逐行(P2 裁条目集,数据源全现成);零动效;关闭回菜单。 +- **T3 生涯页**(≈0.75d):主菜单入口钮(F8 装配点)+page_shell 全屏页+汇总段逐行(P2 裁条目集,数据源全现成;**工坊概览取数=workshop_status 投影**〔meta_progression.gd:90,含 display_name/threshold/progress——非 item_unlocks raw 键〕);零动效;关闭回菜单。 - **T4 探针断言**(≈0.5d):ui_struct 生涯屏结构断言族+入口点击链(合成点击真路径)+只读巡检(契约3)+旧档载入冒烟夹具(v5 样档升 v6)。 - **T5 收口**(≈0.25d):重闸(轻闸+run_all+doc 三闸+熵增;MC 零跑=纯呈现+meta 域追加,静态论证随出口报告)+07 目检条目+生涯.md 状态行换代(v0.1 范围草案→期一已实装)+出口报告+台账。 @@ -70,9 +70,9 @@ - **P1 「通关局数」口径**(错了改不回的终身计数,最重裁点):**甲=三关全通才计 1**(「通关」字面口径,与 level_clear_counts 分层不冲突,推荐);乙=到达第 3 关即计(宽松口径,与字面冲突,不推荐);丙=双计数并存(通关+到达,甲乙各留一列——汇总页多一行,信息冗余)。 - **P2 期一汇总条目集**:**甲=提纲六类九项全做**(数据源全现成——F2 逐项核过,推荐);乙=四项核心(总局/通关/钥石/柜台概览)先上,各关次数与 Boss 击杀随期二。 -- **P3 生涯层模态登记序**:**甲=营地同档**(settings 层旁、confirm_dialog 之前——全屏页先例同构,推荐);乙=最高档(confirm_dialog 后、debug 前——关闭优先级语义随之变)。 +- **P3 生涯层模态登记序**:**甲=营地同档**(settings 层旁、confirm_dialog 之前——全屏页先例同构,推荐;**树序同步**:登记序=树序=addChild 序〔ui_assembler.gd:65/main.gd:319-321 纪律〕,生涯层挂树位置须与登记插位一致);乙=最高档(confirm_dialog 后、debug 前——关闭优先级语义随之变)。 -**代拍板白名单**:字段命名(adventure_total/adventure_cleared 类)/文案/行序排版/页内分组标题。 +**代拍板白名单**:字段命名(adventure_total/adventure_cleared 类)/文案/行序排版/页内分组标题/**总局数口径=含放弃与失败的所有开局**(「开局即计」,与通关局数分层)。 ## 8. 异常分级 @@ -89,3 +89,4 @@ L1/L2 标准三级。停机点:S1=评审后提纲与 §3 范围不一致(升 ## 11. 版本记录 - v1.0(2026-10-07):起草,范围=提纲期一。前置=提纲评审(人闸)+P1-P3 裁。 +- v1.1(2026-10-07):subagent 对抗审计修订(总判=小修后可开工;§2 行号零引用错)——🟡×4 入义务面:旧断言 version==5→6 同步(smoke 两处)/registry save_file 行+save_manager:39 注释同步/工坊概览改 workshop_status 投影取数/P3 补树序同步半句;🟢:迁移链幂等安全性确认(_normalize 补缺省机制)/总局数口径入白名单/cleared 字段来源点明。 diff --git a/design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md b/design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md index 7199ea7b..16bc3a45 100644 --- a/design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md +++ b/design/research/任务书-种子随机化与调试浮窗升级批-2026-10-07.md @@ -1,4 +1,4 @@ -# 任务书:种子随机化与调试浮窗升级批(迭代 18 卡⑦)· v1.0 +# 任务书:种子随机化与调试浮窗升级批(迭代 18 卡⑦)· v1.1(审计修订) > 起草 2026-10-07。开工门=**裁点 P1-P5 全裁 + U0 用户发令**。现状考证系起草时点代码实态(file:line 在册),T0 须自行复核。 > 裁决沿革:三裁点已于 2026-10-07 用户令全裁落 roadmap 卡⑦(首次冒险固定/测试调试接口显式指定/种子不进玩家 UI);调试浮窗目标态同令落文(独立最高层浮窗+DS_DEBUG 默认打开+当局数据只读区块),本批据此起草。**本项修订迭代 15 卡① P3 甲「仅开始菜单可开·对局不可达」裁决**。 @@ -21,7 +21,7 @@ ## 2. 现状事实(代码级考证,T0 须自行复核) - **F1 种子源**:`main.gd:1210-1213 _seed_value()`——调试种子框 `seed_edit.text` 为合法整数则用之,**否则硬编码返回 42**。唯一消费点不变(main.gd:332 注记在册)。 -- **F2 消费面四路**:新冒险 `main.gd:482`;断点续玩回填 `main.gd:447`(`bp.get("master_seed", 0)`——存档已载种子,续玩天然不受影响);调试开局行 `main.gd:612`;会话上下文 `main.gd:1174`。 +- **F2 消费面五路**:新冒险 `main.gd:482`;断点续玩(main.gd:447 系会话日志读 `bp.get("master_seed",0)`,真正种子回填在 core resume_adventure 内——存档已载种子,续玩天然不受影响);调试开局行 `main.gd:612`;会话上下文 `main.gd:1174`(诊断转储以重算 `_seed_value()` 冒充本局种子=既有病灶,随 T3 改向);**调试对局第五路=main.gd:188 将 `_seed_value` 以 Callable 注入 DebugSession**(debug_session.gd:49/:79 `rng.new_adventure(_seed_value.call())`——两层调试对局实际吃种子框)。 - **F3 RNG 架构**:`rng_service.gd` 统一随机流,`new_adventure(seed)` 重置全局计数器,封闭流十签(`PURPOSE_TAGS` rng_service.gd:18,encounter 在册);冒烟/测试全链显式传种子(smoke_all.gd:38 `set_master_seed(42)`、:451 seed 7、breakpoint_resume_test 1234/4321)——**测试面零改动**。 - **F4 局摘要已携带 master_seed**(adventure_runner.gd:1010-1021 `_settle` 字段集)。 - **F5 调试浮窗现状六点**:①入口=开始覆盖层角标(main.gd:292-293,DS_DEBUG=1 才点亮);②门禁=main.gd:1186-1191 `if not _start_overlay.visible: return`(仅开始菜单可开);③形态=modal_shell Dialog(debug_overlay.gd:128,640 宽);④登记=ModalStack 末位(main.gd:340-342 十一层之末——**登记册内已是 z 最高位**);⑤初始 `visible=false`(debug_overlay.gd:40,非默认开);⑥五区块(胜利演出/种子输入〔默认文本 "42" debug_overlay.gd:166〕/数值滑条/批量模拟/两层调试入口)**无当局数据面**。 @@ -41,7 +41,7 @@ 1. **C1 种子三分**:玩家入口随机(非首局)/首局固定(P5 裁值)/显式指定全场景优先。三者判定只许落在 `_seed_value()` 单点,禁止第二处读种子框。 2. **C2 存档契约零变更**:master_seed 字段既有语义不动;断点续玩逐位复放断言保持绿。 -3. **C3 确定性**:同种子行为逐位不变;随机化不引入 rng_service 消费点(首选用引擎全局熵 `randi()`——Godot 4 启动自播种子);冒烟固定种子面断言值零漂移。 +3. **C3 确定性**:同种子行为逐位不变;随机化不引入 rng_service 消费点(首选用引擎全局熵 `randi()`——Godot 4 启动自播种子〔headless 同〕;rng_service.gd:5「禁止 randomize()/自建 RNG」系玩法代码纪律,组合根建种子属豁免面——不进玩法 RNG 消费);冒烟固定种子面断言值零漂移。 4. **C4 浮窗只读**:当局数据区块全部经只读访问器(adventure/settlement/MetaProgression 现役访问器面),零直读内部状态、零写通路;断言沿用 17卡③「白名单外零连接」巡检形制。 5. **C5 探针缝**:一切断言走真实 UI 路径(按钮信号/组合根入口——ADR-0004);探针禁碰真实存档(isolate_save 纪律)。 6. **C6 门禁单口**:`_show_debug_overlay()` 改造后仍是唯一开窗入口(门禁逻辑改在函数内,不散落调用面)。 @@ -49,9 +49,9 @@ ## 5. 任务卡(T0-T5,逐卡一 loop 轮次) - **T0 开工三查**(≈0.25d):worktree+基线复读(冒烟/探针/doc 三闸/MC 对拍基准)+git status 归属核对+§2 逐条复核(重点:modal 登记列表现值、DS_DEBUG 门控点)。 -- **T1 种子随机化**(≈0.25d):`_seed_value()` 默认分支按 C1 三分落码(首局判定=`save_manager.is_first_adventure_done()` 现役布尔);种子框默认文本 "42" 改空+占位提示(代拍板白名单);断言=冒烟既有固定种子断言逐位绿+探针新增(非首局连抽 4 次不全等 42;首局=42;显式输入优先)。 -- **T2 浮窗骨架升级**(≈0.5d):按 P1 裁案落遮挡语义(甲=登记制零改 / 乙=独立置顶层);按 P2 裁案落对局中入口(甲=角标迁宿主〔战斗屏+地图屏,17卡③形制〕/乙=热键/丙=两者);按 P3 裁案落默认打开;门禁 C6 单口改向;随开随收逻辑改向(对局中开窗不再视为开局前置)。 -- **T3 当局数据只读区块**(≈0.5d):P4 裁字段集落区块(数据源=只读访问器;刷新=开窗时+模态开合信号驱动);零动效(零 tween/AnimationPlayer——17卡③契约沿用)。 +- **T1 种子随机化**(≈0.25d):`_seed_value()` 默认分支按 C1 三分落码(首局判定=`save_manager.is_first_adventure_done()` 现役布尔);种子框默认文本 "42" 改空+占位提示(代拍板白名单);断言=冒烟既有固定种子断言逐位绿+探针新增(非首局连抽 4 次不全等 42;首局=42;显式输入优先)。**三 UI 探针种子钉死(审计 🔴)**:ui_input_probe:33-34/ui_layout_probe:17-18/ui_click_probe:156-164 均经 `_start_adventure_from_menu()`+isolate_save 隐式吃 `_seed_value()`——探针种子框文本钉死显式值,禁依赖默认分支;ui_click_probe:134-137 DS_DEBUG 角标断言随 P2 迁移同批改向。 +- **T2 浮窗骨架升级**(≈0.5d):按 P1 裁案落遮挡语义(甲=登记制零改 / 乙=独立置顶层);按 P2 裁案落对局中入口(甲=角标迁宿主〔战斗屏+地图屏,17卡③形制〕/乙=热键/丙=两者);按 P3 裁案落默认打开;门禁 C6 单口改向;随开随收逻辑改向(对局中开窗不再视为开局前置)。**输入锁死防护(审计 🔴)**:开冒险路径显式关浮窗+`_input_locked()` 与暂停角标置灰判据改 `has_open_excluding(debug_overlay)`(main.gd:384-387/:994-995;modal_stack.gd:28-33 关闭复活机制在「默认开」下=每次关他层复活浮窗→has_open=true→**棋盘输入锁死**,不改必停机)——P1 甲乙两案同需此改造;对局中批量模拟按钮禁用(长程异步模拟与活跃结算并存的态不开放)。 +- **T3 当局数据只读区块**(≈0.5d):P4 裁字段集落区块(数据源=只读访问器;**种子字段=adventure.master_seed 现值,非 `_seed_value()` 重算**〔main.gd:497 访问器在册;:1174 同病随批改向〕;刷新=开窗时+模态开合信号驱动);零动效(零 tween/AnimationPlayer——17卡③契约沿用)。 - **T4 探针换代**(≈0.25d):ui_tune_probe ①段断言改向(树序新基准+对局中可开+DS_DEBUG 默认开)+当局数据块值对断言+⑧段回归确认;冒烟投影断言随迁。 - **T5 收口**(≈0.25d):重闸(轻闸全量+doc 三闸+熵增)+出口报告(provisional 追认单+人闸目检清单=DS_DEBUG 实机全流程)+台账。 @@ -66,7 +66,7 @@ ## 7. 待用户裁点(全备选案,随批呈报) -- **P1 遮挡语义**:**甲=维持 ModalStack 登记制**(他模态开时浮窗暂隐、关后自动恢复——零新机制,与登记序末位现状一致〔F6〕,推荐);乙=脱离登记册独立置顶(真「永远最高层」——他模态之上仍悬浮;代价=模态输入锁判据 has_open 需开例外口+遮挡纪律破例面,风险高于收益)。 +- **P1 遮挡语义**:**甲=维持 ModalStack 登记制**(他模态开时浮窗暂隐、关后自动恢复——零新机制,与登记序末位现状一致〔F6〕,推荐;代价=输入锁/角标判据换排除式,甲乙同需,见 T2);乙=脱离登记册独立置顶(真「永远最高层」——他模态之上仍悬浮;代价=模态输入锁判据 has_open 需开例外口+遮挡纪律破例面,风险高于收益)。 - **P2 对局中入口形态**:**甲=角标迁宿主**(战斗屏 HUD+关卡地图屏各一枚,17卡③暂停角标同形制,DS_DEBUG 门控——先例同构,推荐);乙=全局热键(零 UI 占位,但手柄/触屏不友好);丙=甲+乙并存。 - **P3 默认打开范围**:**甲=应用启动即开**(DS_DEBUG=1 会话常开,手动可关、角标可再开——推荐);乙=仅主菜单默认开、对局期收起。 - **P4 当局数据字段集**:**甲=六项**(种子/关卡/节点/HP/GP/钥石——只读访问器全现成,推荐);乙=甲+调试深字段(RNG 计数器/池余量等);丙=仅种子(最小面)。 @@ -76,7 +76,7 @@ ## 8. 异常分级 -L1 自救(一次重试)→ L2 记录继续(连续 3 次同红灯升级)→ L3 停机写报告等用户。停机点:S1=T0 复核发现 modal 登记序/遮挡语义与本任务书 §2F6 不符(探针断言基准换代须重议);S2=随机化导致既有冒烟固定种子断言红灯(确定性破约,禁继续)。 +L1 自救(一次重试)→ L2 记录继续(连续 3 次同红灯升级)→ L3 停机写报告等用户。停机点:S1=T0 复核发现 modal 登记序/遮挡语义与本任务书 §2F6 不符(探针断言基准换代须重议);S1+=对局中开浮窗后棋盘输入锁死或暂停角标置灰(T2 防护失守即停);S2=随机化导致既有冒烟固定种子断言红灯(确定性破约,禁继续)。 ## 9. loop engineering 八件对照(合规自证) @@ -84,8 +84,9 @@ L1 自救(一次重试)→ L2 记录继续(连续 3 次同红灯升级) ## 10. 现状留痕(执行会话读序) -先读本文件 §2 全部 file:line → roadmap 迭代 18 卡⑦行 → design/qa/iter17-pause-exit-report-2026-10-06.md(badge 工厂件/只读巡检先例)→ main.gd 调试浮窗节(:1184-1200)→ debug_overlay.gd 全文(259 行)→ ui_tune_probe.gd 全文(94 行)。卡⑦三裁与浮窗目标态的裁决沿革在 roadmap 卡⑦行+active.md 台账 382/384。 +先读本文件 §2 全部 file:line → roadmap 迭代 18 卡⑦行 → design/qa/iter17-pause-exit-report-2026-10-06.md(badge 工厂件/只读巡检先例)→ main.gd 调试浮窗节(:1184-1200)→ debug_overlay.gd 全文(259 行)→ ui_tune_probe.gd 全文(94 行)。卡⑦三裁与浮窗目标态的裁决沿革在 roadmap.md 迭代 18 卡⑦行+active.md 台账节 382/384 条。 ## 11. 版本记录 - v1.0(2026-10-07):起草。三裁点已裁(roadmap 卡⑦在册),本任务书新增实装级裁点 P1-P5 待裁;估时勘误 roadmap 1d→2.0d(含探针换代与收口)。 +- v1.1(2026-10-07):subagent 对抗审计修订(总判=小修后可开工)——🔴×2 修复:输入锁死防护入 T2(默认开×遮挡复活×has_open 组合必锁棋盘)+三 UI 探针隐式吃种子钉死入 T1;🟡×4:消费面补第五路(DebugSession Callable)/当局数据种子源改 master_seed 访问器(:1174 同病随批改)/对局中禁模拟口径/§10 指路订正;🟢:C3 randi 豁免口径/P1 代价归属修正/S1+ 停机点扩充。