mirror of
https://github.com/motajs/template.git
synced 2026-09-24 10:00:17 +08:00
fix(07): revise plans based on checker feedback
This commit is contained in:
parent
5a186d4a24
commit
8d66bc4ae2
@ -18,7 +18,7 @@ requirements:
|
||||
estimate:
|
||||
tokens: 52000
|
||||
raw_tokens: 52000
|
||||
tasks: 7
|
||||
tasks: 6
|
||||
confidence: low
|
||||
must_haves:
|
||||
truths:
|
||||
@ -57,7 +57,7 @@ must_haves:
|
||||
|
||||
Purpose: 装备加成、存档快照独立性与属性 final 同步直接决定勇士数值正确性与存读档可靠性;`#06-09-1` 是 20 条中唯一登记为「高」严重度的一条。
|
||||
|
||||
Output: 3 个生产文件的最小修复 + 9 条 skip 取消 + 1 条 skip 保留且加注释 + WINDOWS.md id 25/26 结清 + 已知语义缺口登记。
|
||||
Output: 3 个生产文件的最小修复 + 8 条 skip 取消 + 1 条 skip 保留(`equipment.test.ts` 码 147 用例,D-06)且加注释 + WINDOWS.md id 25/26 结清 + 已知语义缺口登记。
|
||||
|
||||
执行序:本计划在 07-03(replay)之后串行执行;`depends_on` 表示 D-09 逐步用户确认与 D-12c 全量门禁的串行约束,源码层面与本系统无耦合。
|
||||
</objective>
|
||||
@ -326,7 +326,7 @@ Output: 3 个生产文件的最小修复 + 9 条 skip 取消 + 1 条 skip 保留
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
1. `#06-09-1`(高)、`#06-09-2`、`#06-05-1`、`#06-05-2` 对应 9 条正确预期用例取消 skip 并转绿
|
||||
1. `#06-09-1`(高)、`#06-09-2`、`#06-05-1`、`#06-05-2` 对应 8 条正确预期用例取消 skip 并转绿(`saveLoad.test.ts` 6 条 + `attribute.test.ts` 1 条 + `equipment.test.ts` 1 条);`equipment.test.ts` 的码 147 用例(`warns code 147 when no equipment slot is available`,`:306-315`)属 D-06 保留,**不计入**取消数
|
||||
2. `#06-05-3` 严格按 D-06 处置:生产代码零改动、skip 保留、注释说明就位
|
||||
3. 按缺陷 4 个原子提交 + 1 个注释/门禁收尾提交
|
||||
4. 数字槽语义缺口在 SUMMARY 登记,未被静默忽略
|
||||
|
||||
@ -45,7 +45,7 @@ must_haves:
|
||||
---
|
||||
|
||||
<objective>
|
||||
修复地图数据模型(`@user/data-base` L1)的 2 条登记缺陷:`#06-06-1` 越图 `transferToDynamic` 发错诊断码 131(应为 128,对齐两个 `transferToStatic*` 兄弟分支,D-04)、`#06-09-3` `DynamicTile.loadState` 不恢复 `num`。
|
||||
修复地图数据模型(`@user/data-base` L1)的 2 条登记缺陷:`#06-09-3` `DynamicTile.loadState` 不恢复 `num`(中)、`#06-06-1` 越图 `transferToDynamic` 发错诊断码 131(应为 128,对齐两个 `transferToStatic*` 兄弟分支,D-04)。
|
||||
|
||||
Purpose: 诊断码是排障与回放校验的事实源,语义错位会误导定位;动态图块数字未恢复会让读档后的地图层与存档不一致(仅图层路径因先 `createDynamic(num)` 而掩盖该缺陷)。
|
||||
|
||||
@ -136,37 +136,7 @@ Output: 2 个生产文件的最小修复 + 2 条 skip 取消 + 码 131 全仓断
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: 修复 #06-06-1 —— 越图 transferToDynamic 改发码 128</name>
|
||||
<files>packages-user/data-base/src/map/mapLayer.ts, packages-user/data-base/src/map/mapLayer.test.ts</files>
|
||||
<read_first>
|
||||
- packages-user/data-base/src/map/mapLayer.ts(:435-496)
|
||||
- packages-user/data-base/src/map/mapLayer.test.ts(:397-437)
|
||||
- packages-user/data-base/src/map/gameMap.test.ts(:173-192 码 131 的唯一既有断言)
|
||||
- packages/common/src/logger.json(码 128 与 131 文案)
|
||||
</read_first>
|
||||
<action>
|
||||
把 `mapLayer.ts:441` 的 `logger.warn(131, x.toString(), y.toString())` 改为 `logger.warn(128, x.toString(), y.toString())`,参数个数与形态与两个兄弟分支保持一致。`if (!this.inMap(x, y))` 守卫、`return null`、其后的 `num === 0` 分支(告警 127)与其余控制流一律不动。若 Task 0 用户选择补齐占位符,则按用户指示同时修改三个越界分支的参数(否则严格只改这一处)。
|
||||
|
||||
按 D-10 取消 `mapLayer.test.ts:419-427`(`warns code 128 for an out-of-map transferToDynamic`)的 skip,断言一字不改,同步 it 前的中文注释。修复前先确认 `:408-416` 的既有绿用例(只断言 `null`)与 `gameMap.test.ts:185` 的码 131 断言均不含 131 → 128 的隐式依赖。
|
||||
|
||||
不做的事:不改 `gameMap.ts` 的 `setEventLayer` 写入点;不改 `transferToStatic*`(除非 Task 0 选择了补齐占位符);不改 `num === 0` 分支;不改 `mapLayer.test.ts:397-406`(告警 127)与 `:429-437`;不新增用例。
|
||||
|
||||
验证:`pnpm exec vitest run packages-user/data-base/src/map/mapLayer.test.ts packages-user/data-base/src/map/gameMap.test.ts` 全绿(覆盖码 131 唯一断言)→ D-44 门禁三步。提交信息:`fix(07-05): #06-06-1 warn code 128 for an out-of-map dynamic transfer`。
|
||||
</action>
|
||||
<verify>
|
||||
<automated>pnpm exec vitest run packages-user/data-base/src/map/mapLayer.test.ts packages-user/data-base/src/map/gameMap.test.ts</automated>
|
||||
<fails_when>非零退出,或摘要行出现 "1 failed" / "failed"(诊断码不符,或码 131 的既有断言回归),或输出出现 "no tests found"</fails_when>
|
||||
</verify>
|
||||
<acceptance_criteria>
|
||||
- `mapLayer.ts` 的 `transferToDynamic` 越界分支发 `logger.warn(128, ...)`,且文件内不再存在 `logger.warn(131`
|
||||
- `mapLayer.test.ts` 的 `warns code 128 for an out-of-map transferToDynamic` 已取消 skip
|
||||
- `pnpm exec vitest run packages-user/data-base/src/map/mapLayer.test.ts packages-user/data-base/src/map/gameMap.test.ts` 全绿
|
||||
</acceptance_criteria>
|
||||
<done>越界诊断码与兄弟分支一致、目标用例取消 skip 且码 131 路径不回归;已一个原子提交入库</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: 修复 #06-09-3 —— DynamicTile.loadState 恢复图块数字</name>
|
||||
<name>Task 1: 修复 #06-09-3 —— DynamicTile.loadState 恢复图块数字</name>
|
||||
<files>packages-user/data-base/src/map/dynamicTile.ts, packages-user/data-base/src/map/saveLoad.test.ts</files>
|
||||
<read_first>
|
||||
- packages-user/data-base/src/map/dynamicTile.ts(:50-128)
|
||||
@ -196,6 +166,36 @@ Output: 2 个生产文件的最小修复 + 2 条 skip 取消 + 码 131 全仓断
|
||||
<done>读档恢复 num 且事件语义不变、目标用例取消 skip 并转绿;已一个原子提交入库</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 2: 修复 #06-06-1 —— 越图 transferToDynamic 改发码 128</name>
|
||||
<files>packages-user/data-base/src/map/mapLayer.ts, packages-user/data-base/src/map/mapLayer.test.ts</files>
|
||||
<read_first>
|
||||
- packages-user/data-base/src/map/mapLayer.ts(:435-496)
|
||||
- packages-user/data-base/src/map/mapLayer.test.ts(:397-437)
|
||||
- packages-user/data-base/src/map/gameMap.test.ts(:173-192 码 131 的唯一既有断言)
|
||||
- packages/common/src/logger.json(码 128 与 131 文案)
|
||||
</read_first>
|
||||
<action>
|
||||
把 `mapLayer.ts:441` 的 `logger.warn(131, x.toString(), y.toString())` 改为 `logger.warn(128, x.toString(), y.toString())`,参数个数与形态与两个兄弟分支保持一致。`if (!this.inMap(x, y))` 守卫、`return null`、其后的 `num === 0` 分支(告警 127)与其余控制流一律不动。若 Task 0 用户选择补齐占位符,则按用户指示同时修改三个越界分支的参数(否则严格只改这一处)。
|
||||
|
||||
按 D-10 取消 `mapLayer.test.ts:419-427`(`warns code 128 for an out-of-map transferToDynamic`)的 skip,断言一字不改,同步 it 前的中文注释。修复前先确认 `:408-416` 的既有绿用例(只断言 `null`)与 `gameMap.test.ts:185` 的码 131 断言均不含 131 → 128 的隐式依赖。
|
||||
|
||||
不做的事:不改 `gameMap.ts` 的 `setEventLayer` 写入点;不改 `transferToStatic*`(除非 Task 0 选择了补齐占位符);不改 `num === 0` 分支;不改 `mapLayer.test.ts:397-406`(告警 127)与 `:429-437`;不新增用例。
|
||||
|
||||
验证:`pnpm exec vitest run packages-user/data-base/src/map/mapLayer.test.ts packages-user/data-base/src/map/gameMap.test.ts` 全绿(覆盖码 131 唯一断言)→ D-44 门禁三步。提交信息:`fix(07-05): #06-06-1 warn code 128 for an out-of-map dynamic transfer`。
|
||||
</action>
|
||||
<verify>
|
||||
<automated>pnpm exec vitest run packages-user/data-base/src/map/mapLayer.test.ts packages-user/data-base/src/map/gameMap.test.ts</automated>
|
||||
<fails_when>非零退出,或摘要行出现 "1 failed" / "failed"(诊断码不符,或码 131 的既有断言回归),或输出出现 "no tests found"</fails_when>
|
||||
</verify>
|
||||
<acceptance_criteria>
|
||||
- `mapLayer.ts` 的 `transferToDynamic` 越界分支发 `logger.warn(128, ...)`,且文件内不再存在 `logger.warn(131`
|
||||
- `mapLayer.test.ts` 的 `warns code 128 for an out-of-map transferToDynamic` 已取消 skip
|
||||
- `pnpm exec vitest run packages-user/data-base/src/map/mapLayer.test.ts packages-user/data-base/src/map/gameMap.test.ts` 全绿
|
||||
</acceptance_criteria>
|
||||
<done>越界诊断码与兄弟分支一致、目标用例取消 skip 且码 131 路径不回归;已一个原子提交入库</done>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 3: D-44 门禁、全量套件与未登记缺口登记</name>
|
||||
<files>packages-user/data-base/src/map/mapLayer.ts, packages-user/data-base/src/map/dynamicTile.ts, packages-user/data-base/src/map/mapLayer.test.ts, packages-user/data-base/src/map/saveLoad.test.ts</files>
|
||||
@ -237,8 +237,8 @@ Output: 2 个生产文件的最小修复 + 2 条 skip 取消 + 码 131 全仓断
|
||||
|
||||
| Threat ID | Category | Component | Severity | Disposition | Mitigation Plan |
|
||||
|-----------|----------|-----------|----------|-------------|-----------------|
|
||||
| T-7-03 | Tampering | `mapLayer.ts` `transferToDynamic` | low | mitigate | Task 1 使越界转换发码 128(越界语义),恢复诊断码的可解释性与唯一性 |
|
||||
| T-7-11 | Tampering | `dynamicTile.ts` `loadState` | medium | mitigate | Task 2 补齐 `num` 恢复,避免读档后图块数字与存档不一致(静默数据损失) |
|
||||
| T-7-03 | Tampering | `mapLayer.ts` `transferToDynamic` | low | mitigate | Task 2 使越界转换发码 128(越界语义),恢复诊断码的可解释性与唯一性 |
|
||||
| T-7-11 | Tampering | `dynamicTile.ts` `loadState` | medium | mitigate | Task 1 补齐 `num` 恢复,避免读档后图块数字与存档不一致(静默数据损失) |
|
||||
| T-7-SC | Tampering | npm/pip/cargo 安装 | high | accept | 本阶段不安装任何包(`package.json`/`pnpm-lock.yaml` 不变);若执行中出现安装需求,立即停止并汇报 |
|
||||
</threat_model>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user