diff --git a/docs/proposal-skill-pool.md b/docs/proposal-skill-pool.md new file mode 100644 index 00000000..5dea52ce --- /dev/null +++ b/docs/proposal-skill-pool.md @@ -0,0 +1,260 @@ +# 敌人技能池出招系统提案 + +> 一句话:废除确定性行为环,改用"技能池 + 开轮摇号"决定敌方每次行动——本文收拢全部拍板记录、逐维度设计、登记约束回应与实施批切分。 +> 状态:已定稿(2026-09-16 全部决策点拍板收口) +> 性质:提案/评审件,不在 GDD 规范树内;本文不改任何既有文件,所登记的修订面随实施批落进各系统文档(见 §7) +> 前置:实施批排在 AC 掷点批落批之后(该批文件集 `core/`、`enemy.tres`、结算文档冻结中) + +## 1. 方向复述与拍板记录 + +已拍板方向:废除现行确定性行为环(地精单拍环、熊地精三拍环、食人魔酋长四拍 Boss 环、全场同种锁步同拍、死亡冻结指针),改为技能池——每个敌种一张技能池,池元素是带出招权重的技能行,每一拍从池中摇一个技能执行,出招序列不再固定;蓄力不再绑死重击前奏;质感目标 = 动作游戏怪物 AI:以普通攻击为基底,随机时机出特殊技。 + +对话裁决全记录(均为 2026-09-16;"纠偏"= 用户对早期口径的修正,一律以纠偏后为准): + +| # | 决策点 | 定稿口径 | +|---|---|---| +| 方向 | 出招系统 | 每敌种一张技能池(带权重技能行),每拍摇号出招;固定出招剧本废除 | +| D1 | 抽取机制 | 权重份额归一 + 双闸;纠偏后闸形态 = 全技能各自冷却 + 保底;条件触发器后置 | +| D2 | 数据结构 | 池模板内嵌敌行 + 技能定义独立技能表(skill_id 引用共享) | +| D3 | 蓄力处置 | 蓄力 = 独立的 0 伤害增益技;原子连招技否决;前摇属性不引入 | +| D4/D5 | 可见性 | 池与权重不公开、不做技能池界面;特殊技开轮类型级技能动画(纯提醒);普通攻击零表示 | +| D6 | 随机流 | behavior_roll 主流 + 每敌按生成序派生独立子流 | +| D7 | 新技扩展 | 每敌种 +1 新技位;敌方防御池进切片(硬化技) | +| D8 | 伤害公式 | 三乘法链落战斗结算(§6) | +| D9 | 实现纪律 | 封装对象、高内聚低耦合、禁一次性脚本(§2.2) | +| 纠偏一 | 冷却模型 | **所有技能各带冷却字段**(普通攻击冷却恒 0);技能冷却与增益持续是两个计时器;保底保留。早期"冷却只锁高伤技"口径作废 | +| 纠偏二 | 蓄力语义 | **蓄力 = 纯"攻击力增加"增益技,与重击无任何组合语义**——旧环"蓄力→猛击"是哥布林弹珠的拷贝,观念与相关文档表述一并清除;增益与倍率同拍只是两层乘法共存 | +| 纠偏三 | 增益纪律 | **每池增益类技能 ≤1**——非 RPG,怪物连出不同增益显得呆 | +| 纠偏四 | 概念区分 | 行动轮概念**完全退役**;nat20 暴击(掷点层)≠ 技能重击(池技能),两层严格区分 | +| A | 同种多敌 | 一份池模板 + 每实例自己的实例池(快照 + 冷却状态),独立摇号;轨迹分歧是涌现,开战分配机制不存在;个体化变体池标 P1 | +| B | 摇号时点 | **开轮摇号**:技能选择前置到轮次开始,数值计算留在结算段 | + +## 2. 逐维度设计 + +### 2.1 抽取机制:权重份额归一 + 全技能各自冷却 + 保底 + +每个敌实例每一拍做什么,由一次摇号决定:把它实例池里冷却中的技能排除,剩下的技能按权重份额归一摇一个。**中签率 = 该技能权重 ÷ 当前可摇技能权重合计**——权重是份额不是固定百分比,排除谁,谁的份额按比例摊给其余技能。 + +示例(熊地精池:基础攻击 6 · 蓄力 2 · 重击 2): + +| 回合 | 可摇集合 | 基础攻击 | 蓄力 | 重击 | +|---|---|---|---|---| +| 第 1 拍 | 全部(合计 10) | 60% | 20% | 20% | +| 第 2 拍(第 1 拍摇中重击,重击冷却 3 拍) | 普攻+蓄力(合计 8) | 75% | 25% | 0%(冷却中) | +| 第 3 拍(第 2 拍若摇中蓄力) | 仅普攻 | 100% | 0%(冷却中) | 0%(冷却中) | + +开轮摇号时序(共识点 B 定稿): + +``` +开轮(轮次开始):每实例 冷却递减 → 排除冷却中技能 → 按行序逐敌摇定本拍行动(behavior_roll 各敌子流) +挖掘期:按摇定结果播动画(特殊技 = 技能动画,普通攻击 = 零表示) +结算段:按技能行兑现——AC 掷点、三乘法链、增益挂接、明细落行(与现行完全相同) +判定段之后进入下一轮开轮…… +``` + +时点细则:首轮同样开轮摇号;每轮恰摇一次,挖掘期中途刷新换图不重摇;摇定后、兑现前死亡(主角先手 / 授予段直伤)→ 本拍技能作废、不动手(死亡即不动手,与现行同构)。 + +两道闸: + +| 闸 | 语义 | 建议值(provisional,归难度曲线) | +|---|---|---| +| 技能冷却 | 每技能行带冷却拍数;施放后连续 N 拍不可摇中;普通攻击恒 0 | 普攻 0 · 突刺 2 · 蓄力 3 · 重击 3 · 硬化 4 | +| 保底 | 连续 M 拍执行的都是普通攻击 → 下一拍必出特殊技(特殊技内按权重,不受冷却限制) | M = 4 | + +结构保证与校验:普通攻击冷却恒 0 → 池恒非空,最坏情况(全部特殊技同时进冷却)怪物平砍等待,那是玩家的反打窗口而非死拍。加载期校验兜底:每池恰一行普通攻击、增益技 ≤1、池条目 skill_id 悬空致命、权重 > 0、冷却 ≥ 0,违规拒绝入表。 + +连发账:同一技能连发不可能(自身冷却杜绝);异名特殊技背靠背可能但概率低(上例 ≈14%,任意两拍"特殊→特殊" ≈3.6%),是变化不是失控。不建议全局特殊间隔闸——它会把节奏变成可背诵的"特殊→N 平砍→特殊",标 P1 备用旋钮。 + +摇号只决定"做什么";伤害多少由三乘法链在结算段算(§6)。 + +### 2.2 数据结构与封装切分 + +三层对象,模板与实例分离(共识点 A 定稿): + +| 层 | 对象 | 载体 | 职责 | +|---|---|---|---| +| 定义层 | 技能行 | 独立技能表(数据配置承载、敌人系统回填) | 技能是什么:类型、倍率、冷却、效果引用——多敌种共享 | +| 定义层 | 池模板 | 内嵌敌行 pool 数组:{skill_id, weight} | 敌种用什么、多常用——难度曲线的调参单点 | +| 实例层 | 实例池 | 单位实例(开战把模板快照一份) | 这一只在什么状态:各技能冷却剩余、活跃增益、摇号轨迹 | + +生成流程:开战 → 读敌行池模板 → 每实例快照出自己的实例池(冷却全零)→ 此后各自独立摇号、互不干涉。怪物 1 的猛击在冷却里不影响怪物 2。与现行"生成拿到当时的表值快照、之后改表不影响已生成单位"同一条快照纪律,池纳入快照范围。 + +技能行字段词汇表: + +| 字段 | 适用类型 | 说明 | +|---|---|---| +| skill_id | 全部 | 主键,池条目引用键 | +| display_name | 全部 | 玩家可见名(明细行与动画共用) | +| type | 全部 | 封闭枚举 {普通攻击, 伤害, 增益};新类型走文档修订(同现行行为拍枚举纪律) | +| damage_mult | 仅伤害 | 伤害倍率;域 [1.1, 16] provisional。普通攻击恒 1、不可配 | +| cooldown_beats | 全部 | 施放后连续 N 拍不可摇中;普通攻击恒 0、不可配 | +| buff_ref | 仅增益 | 效果引用,指向既有状态效果行(现有效应词汇) | +| buff_duration | 仅增益 | 增益持续回合数(结算数) | +| P1 字段位 | — | 触发条件、命中段数、目标数、固定值分量——随对应后置批加列 | + +普通攻击也是一行技能行(type=普通攻击),两条域校验锁死它的特殊性:倍率恒 1、冷却恒 0——想配倍率或冷却的就不是普攻,是伤害技。 + +技能伤害存倍率、不存固定值:伤害 = 施放者攻击基线 × 技能倍率(§6 第一乘)。同一行"猛击",地精用是 7×2=14,熊地精用是 9×2=18,深层强化行自动缩放——这是共享技能表成立的前提;固定值分量若将来需要,是加字段的事(P1)。增益技带效果引用与持续回合,百分比天然按施放者生效,无缩放问题。 + +封装纪律(D9):抽签器是独立服务类(输入实例池与随机子流、输出技能 id,不碰血量不碰表);战斗段只做编排;单位容器保持零随机零事件——摇号的执行方是战斗结算换算层,单位收到的是确定结果(与 armor_roll 先例同构)。禁止一次性强耦合脚本。 + +### 2.3 蓄力与旧概念清除 + +蓄力不是重击前奏:它是一行增益技——0 伤害动作,施加"攻击×2"状态,持续 1 结算(provisional)。旧环"蓄力→猛击"的固定配对是哥布林弹珠的拷贝(给玩家输出窗口用的),随行为环一并退役;蓄力与重击之间**没有任何组合语义**——增益与技能倍率恰好同拍只是两层乘法共存(×2 遇 ×2 = ×4),蓄力后摇中普通攻击则是基线×2 的加成平砍,两者同为平常事,不是设计的连招。 + +两个计时器严格分账:**技能冷却**(几拍内不能再摇中,技能行属性)与**增益持续**(状态挂几回合,状态行属性)互不相干。 + +增益纪律(纠偏三):每池增益类技能 ≤1。结构红利:增益存续期内下一拍必是伤害技(池里其余全是伤害技、增益自身还在冷却),**增益不可能白白过期**——"连出不同增益显得呆"的场景被池构成纪律结构消除。 + +敌方增益走既有增益状态容器(新状态行入状态表、新池映射随批登记 registry)。旧蓄力拍"零兑付、不读伏击"的语义由增益技继承:0 伤害技能不兑付伏击——"本轮喂的伏击若逢增益拍不兑现"的读怪奖励保留。 + +前摇(telegraph)不作为技能属性引入(D3 显式裁决):规划窗口由开轮摇号 + 类型级动画承担(§2.4),旧"蓄力拍 = 规划窗口"的职责由它替代。 + +Boss 专属身份 = 专属池承载:独占技能 + 权重轮廓(现行建议:酋长池含独占增益技"硬化")。旧"专属四拍环且含蓄力拍"约定随批改写(§7)。 + +### 2.4 可见性 + +池与权重不公开、无技能池界面(D4/D5 裁决)。摇号结果的信息面分三档: + +| 摇中 | 挖掘期呈现 | 结算揭示 | +|---|---|---| +| 普通攻击 | 普通动画,零特殊表示 | 明细行"普通攻击(暴击/被压制)" | +| 特殊技 | 技能动画(攻击系/防御系不同)——纯动画提醒,无额外语义 | 明细行具名技能 + 数值 | +| nat20 暴击 | 无前置动画(掷点层,与技能重击严格区分) | 明细行"(暴击)"标注 | + +即:普攻完全不可预测;特殊技有一次类型级预告,不可撤销,但给"继续挖还是停手"的决策依据。信息量比旧环少(不预告技能名与数值)、比全隐藏多,落在动作游戏怪物 AI 的纹理上。 + +HUD 替代位(ring_size/ring_index 环点行拆除):敌人卡意图徽标语义改为"本拍摇定结果的动画占位";具体视觉规格归战斗表现与 HUD 框架批。 + +### 2.5 切片范围与建议池内容 + +切片做:三敌种池化(EV 中性锚定)+ 敌方防御池新词汇 + behavior_roll 子流 + HUD 替代位 + 开轮摇号编排 + 文档与 registry 修订清单落地(§7/§8)。后置项见 §9。 + +建议池内容(全部 provisional,投值归难度曲线): + +| 敌种 | 池(权重) | 每拍 EV | 相对现行环 | +|---|---|---|---| +| 地精 | 普攻 9 · 突刺 1(新行:伤害 ×1.5,冷却 2) | 1.05 | +5%,显式登记 | +| 熊地精 | 普攻 6 · 蓄力 2 · 重击 2 | 1.00 | 中性 | +| 食人魔酋长 | 普攻 6 · 重击 2 · 硬化 2(新行:自防增益,敌方防御池词汇载体;旧蓄力拍退役、不进 Boss 池——增益 ≤1 纪律) | 1.00 | 中性 | + +EV 锚定说明:含 0 伤害技能的池要保 EV=1.0,伤害技权重须抵偿增益权重份额(例:重击权重 = 硬化权重恰好中性);像突刺这种倍率 >1 的新技必然抬 EV(正权重配不平),偏移量显式登记难度曲线、不硬凑。EV 锚按含闸长期速率在实施批复核。熊地精若复用突刺行,即共享技能表的活证明(候选)。 + +## 3. 现行环 → 技能池对照表 + +| 面 | 现行行为环 | 技能池(本提案定稿) | +|---|---|---| +| 出招决定 | 环序列 + 指针,步数取模,零随机 | 实例池权重摇号(开轮时点) | +| 同步性 | 同种永远同拍(锁步) | 各实例独立摇号、独立冷却 | +| 蓄力 | 重击前奏空拍(固定配对) | 攻击增益技(1 结算过期),无组合语义 | +| 死亡 | 轮到前被杀,指针冻结 | 摇定技作废、不动手(死亡即不动手不变) | +| 可见性 | 下一拍全程亮出(意图徽标 + 环点) | 特殊技开轮类型级动画、普攻零表示、池与权重不公开 | +| 随机 | 系统零随机 | behavior_roll 封闭流、每敌子流、可回放 | +| 表结构 | pattern 环数组(拍枚举封闭) | 技能表 + 敌行池模板 + 实例池 | +| 调参 | 环读数、倍率 | 池 EV、权重/冷却/保底(难度曲线) | +| 拍结构 | 每结算各行动一次、行序、先作用后推进 | **不变** | + +## 4. 七条登记约束的逐条回应 + +**约束一(随机价值观兑现)**:进回合内的随机共两源——技能身份摇号(离散、具名、开轮时点)与 AC 掷点(数值、结算段)。固定出招剧本废除即本方向的兑现;"每拍数值抖动"的口子不开:每个技能实例的伤害由基线×倍率确定,随机器只决定技能身份与 AC 判断值。摇号时点前置到开轮是动画呈现诉求的代价,可回放契约不破(约束二)。 + +**约束二(零随机纪律修订面)**:敌人系统自身语义零随机不变(收到确定结果);随机消费在战斗结算换算层新开封闭流 behavior_roll——STREAM_NAMES 增名、计数器、registry salt、derive 向量(armor_roll 先例同构);每敌按生成序派生子流,单敌出招轨迹可独立复放、互不穿插。文档修订面:敌人系统结构冻结清单"零随机"注记随行为环退役改写;战斗结算随机消费清单两处 → 三处(开战掷骰 = 初始化随机;技能摇号 = 回合内、开轮时点、结算步骤流之外;AC 掷点 = 回合内、步骤流之内);可回放契约扩写为"三处皆封闭流,同种子同输入逐位复现"。 + +**约束三(数字可读性锚)**:技能抽取 ≠ 数值抖动——抽的是离散具名的动作,明细行带技能名与倍率,数字仍由基线×倍率确定。"下一拍出什么"的可见性方案 = §2.4 三档;HUD ring_size/ring_index 显示位拆除,替代 = 摇定结果动画位 + 具名明细行。 + +**约束四(蓄力拍退役与前摇)**:删行为环时固定蓄力拍自动退役(登记收口);前摇 telegraph 显式裁决为**不引入**——规划窗口职责由开轮预告承担;蓄力改为增益技(§2.3)。 + +**约束五(AC 掷点批耦合)**:判定对象措辞随池化改述,四处对照见 §6;暴击(nat20 ×2)、折扣档位(下限 ×0.25)、伤害下限 max(1,·) 全部挂在伤害实例上、语义不变;伏击附加必中全额、后置加法不进乘区。落批后随技能池实施批收编,AC 批落批前不动。 + +**约束六(难度曲线纪律联动改写)**:"每关至少投放一项新内容(新敌种或既有敌种新行为环段)"→"新敌种或既有池新技能";"保持行为环读数不变、数量优先"→"保持技能池 EV 读数不变(权重即旋钮、投值归难度曲线)";Boss 约定"专属四拍环且含蓄力拍"→"专属池(独占技 + 权重轮廓)";调参表 pattern 列改池列,新增权重、冷却、保底投值域;生存链区间模型的受伤峰值/谷值构成按含闸长期速率复核,EV 中性锚定、现行行值不重调。 + +**约束七(方差预算)**:见 §5。 + +## 5. 熵预算与方差对照 + +| 随机源 | 时点 | 每次熵 | +|---|---|---| +| d20 AC 掷点(既有) | 结算段,每伤害实例 | log2(20) ≈ 4.32 bit | +| 技能摇号(新增) | 开轮,每实例 | 0.47–1.37 bit(建议池);四技均分上限 2 bit | +| 开战掷骰(既有) | 初始化 | 不变 | + +技能摇号与单次 d20 同量级或更小,且承载的是结构多样性(出哪个动作)而非数值噪声——离散、具名、可归因。 + +锁步峰值的新形态(旧 D3 三敌同轮重击 12–54 问题的账): + +- 旧环:同步轮转定理 → 每 3 拍**必然**全体重击(概率 100% 的结构性峰值,周期可背诵)。 +- 池化(建议权重 6/2/2,EV 中性):单敌重击率 20%,三敌同拍全重击 ≈ 0.8%/拍;长期输出速率由 EV 锚定不变;冷却闸削簇(同敌重击后必隔数拍),保底闸削旱季。峰值从"必然周期"变"低概率事故",分布形状(重击频率)是难度曲线的自由调参维度——想要更高频重击就抬权重,EV 随之重锚。 + +## 6. AC 规格修订措辞建议 + +**三乘法链**(结论先行:技能倍率乘在最前,AC 判断值与甲效依次乘上去,其后既有链一字不动): + +``` +① 攻击伤害值 A = 攻击基线 × 技能伤害倍率 (普通攻击倍率恒 1;主角侧恒 1) +② AC 判断值 a:d20 vs 防守方护甲等级 + 掷点 < AC → 档位折扣(量程下限 ×0.25);nat20 → 暴击 ×2(量程上限) +③ 命中伤害 H = (A × a) × 甲效倍率 (克制 1.5 / 中性 1.0 / 被克 0.5;敌打主角无甲轴恒中性) +── 以下既有链不动 ── +增益池乘区(含新敌方防御池)→ 伏击附加(后置加法、必中全额、不吃 AC)→ 向下取整 → 伤害下限 max(1,·) +``` + +判定对象措辞修订(落点 = 战斗结算.md,伤害合成链的 owner;敌人系统只供技能行数据): + +| 位置 | 现行措辞 | 建议措辞 | +|---|---|---| +| 战斗段正文 | 敌方攻击拍与重击拍的基线伤害(基线 × 重击倍率) | 敌方技能的基础伤害分量(= 攻击基线 × 技能伤害倍率);无伤害分量的技能(增益类)不掷不折 | +| 公式行 | 吃掷点分量 = 主角普通分量 / 敌方攻击拍与重击拍基线 | 吃掷点分量 = 主角普通分量 / 敌方技能基础伤害分量 | +| 调参表边界行 | (主角普通分量、敌方攻击/重击拍基线) | (主角普通分量、敌方技能基础伤害分量) | +| 验收标准 | 敌方攻击/重击拍基线 | 敌方技能基础伤害分量 | + +不变项:nat20 ×2、档位折扣、伤害下限、伏击必中后置、逐次掷逐次取号(未来多段命中 = 每段一掷,P1 预留)。 + +## 7. 修订面清单(按文档) + +跨三个循环 + 两个横切件;排雷循环零触及(挖掘期、行动经济、棋盘、道具、变异全不碰)。跨循环不是范围蔓延——按引用纪律的删除概念流程查"行为环"反向边,其读数本被织入曲线纪律与呈现义务,影响面即下表。 + +| 循环 | 文档 | 修订面 | 深度 | +|---|---|---|---| +| 战斗循环 | [敌人系统](../design/gdd/systems/战斗循环/敌人系统.md) | 主 owner:行为环章节退役,技能池/技能行/实例池/冷却/开轮摇号语义成文,蓄力语义改写(清"重击前奏"表述),敌人表 schema(pattern → 池),结构冻结清单与验收标准重写 | 重 | +| 战斗循环 | [战斗结算](../design/gdd/systems/战斗循环/战斗结算.md) | 开轮摇号时点与随机口径三处、三乘法链、AC 措辞四处(§6)、行型改型(蓄力行 → 施放行)、敌方防御池、可回放契约扩写 | 重 | +| 战斗循环 | [战斗表现](../design/gdd/systems/战斗循环/战斗表现.md) | 敌种姿态数据面(普攻零表示、特殊技攻/防系动画映射)、样张验收联动 | 中 | +| 战斗循环 | [增益状态](../design/gdd/systems/战斗循环/增益状态.md) | 敌方增益状态行挂载、敌方防御池容器语义延伸 | 轻 | +| 冒险循环 | [难度曲线与Boss](../design/gdd/systems/冒险循环/难度曲线与Boss.md) | 曲线纪律改写、Boss 约定、调参表(池列 + 权重/冷却/保底投值域)、区间模型口径 | 中 | +| 表现与支撑 | [HUD 框架](../design/gdd/systems/表现与支撑/HUD框架.md) | 敌人卡义务改写(意图徽标语义、环点拆除)、验收条目 | 中 | +| 横切 | registry entities.yaml | enemy / rng_service / settlement / status_effect 条目 + §10 术语 | 必 | +| 横切 | [06-待办清单](../design/gdd/06-待办清单.md) | 旧条目收编关闭(如"删行为环取消蓄力拍"、"单拍行为环体验验证"改型)+ §9 登记 | 必 | + +数据与代码(实施批范围,非文档修订面):`enemy.tres` 与新技能表、schemas、`core/`(unit_container / battle_orchestrator / rng_service)、`presentation/`(enemy_card_view / battle_log_view / status_slot_row)、smoke。 + +## 8. 实施批切分 + +前置门:AC 掷点批收编提交(工作区干净、smoke 全绿)后才开工;本提案自身零代码、零表改、不改任何既有文档。 + +| 批 | 范围 | 交付与验收 | +|---|---|---| +| 批 1 核心机制 | 技能表 schema 与数据、敌表池字段、单位容器实例池与冷却、编排器开轮摇号与战斗段兑现、随机服务 behavior_roll 与每敌子流、建议池行值 | smoke 全绿,含:同种子回放逐位复现、单敌轨迹独立复放、EV 抽样对锚、死亡打断前摇作废、空池不可能、加载校验拒绝 | +| 批 2 呈现替代 | 敌人卡摇定动画位、结算明细技能具名行、状态槽敌方增益显示 | 呈现只读面字段同步、行格式化同步 | +| 批 3 文档与 registry | §7 全表落文、06 待办登记、registry salt 与术语 | 死链检查全绿 | + +批间纪律:并行批用互斥文件集、批末跑全量验证(既有批处理纪律)。 + +## 9. 后置登记位(P1/P2) + +| 优先级 | 项 | 说明 | +|---|---|---| +| P1 | 情境条件触发器 | 低血触发防御、玩家停手时的偷袭技等;载体 = 技能行触发条件字段 | +| P1 | 个体化变体池 | A 型好斗/B 型守势、精英专属池(共识点 A 的 A2 案) | +| P1 | 全局特殊间隔旋钮 | 特殊技背靠背实测仍嫌时的备用闸 | +| P1 | 新效应词汇批 | 妨害技(对主角施减益)、固定值分量、多段命中(每段一掷) | +| P1 | 第二关池与投放 | 归难度曲线内容批 | +| P2 | 敌方技能图鉴/学习呈现 | 玩家侧技能知识系统 | + +## 10. 术语候选(registry 术语条目登记用,随批定稿) + +技能池(池模板)· 实例池 · 技能行 · 开轮摇号 · 保底 · 技能冷却 · 施放行(行型) + +## 版本历史 + +| 版本 | 日期 | 改动 | +|---|---|---| +| v1.0 | 2026-09-16 | 首版定稿:方向复述与拍板记录(D1–D9 + 四点纠偏 + 共识点 A/B)、五维度设计、七条约束回应、对照表、熵预算、AC 措辞、修订面清单、实施批切分 |