mirror of
https://github.com/motajs/template.git
synced 2026-10-08 21:40:22 +08:00
docs(08-03): record enemy/flag alignment summary and plan progress
This commit is contained in:
parent
1bfe7080d5
commit
8153d4f419
@ -456,7 +456,7 @@ Plans:
|
||||
|
||||
- [ ] 08-01-PLAN.md — 全量目录迁移到 `__test__/`(Rule A/B 分流改相对导入 + `script/test-data-node.ts:67,122` 硬编码路径;门禁=文件数守恒 66/6、零配置/零生产改动)
|
||||
- [x] 08-02-PLAN.md — data-common 对齐(`utils.test.ts` 退役、`DirectionMapper` 删除、`addHook().load()` 移除、158/175→72;含经确认的 sandbox 首步预读生产修复)
|
||||
- [ ] 08-03-PLAN.md — data-base enemy+flag 对齐(`EnemyManager` 单参构造、legacy bridge 类型)
|
||||
- [x] 08-03-PLAN.md — data-base enemy+flag 对齐(真实 `TileStore` + 注册图块、删 legacy bridge、`getPrefab` 签名 `number|string` 类型修正、flag 读档重建语义对齐)
|
||||
- [ ] 08-04-PLAN.md — data-base hero 对齐(录像桩 `route`→`array`、`getItem`→`addItem`、`setFloor(IGameMap)`)
|
||||
- [ ] 08-05-PLAN.md — data-base map 对齐(`addLayer(alias)`、`MapState(state)`;陈旧码 62/63/64/84/130/125 裁决)
|
||||
- [ ] 08-06-PLAN.md — data-system combat+event 对齐(`CombatFlow` 构造、`.load()` 移除、DEV 守卫码)
|
||||
@ -483,4 +483,4 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8
|
||||
| 5. Legacy 移植 | 0/TBD | Not started | - |
|
||||
| 6. 单元测试 | 18/18 | In Progress| |
|
||||
| 7. 数据端缺陷修复 | 15/16 | Complete(07-16 superseded) | - |
|
||||
| 8. 测试重构与接口对齐 | 1/11 | In Progress | - |
|
||||
| 8. 测试重构与接口对齐 | 2/11 | In Progress | - |
|
||||
|
||||
@ -87,6 +87,14 @@ Output: 6 个既有测试文件的对齐改动;零生产改动、零新增依
|
||||
- **Q2**:`IEnemyLegacyBridge` 若已从 `data-base/src/enemy/types.ts` 删除,测试中作为协作对象的假桥接应删除还是改为新形状;若类型仍在,是否需要改。
|
||||
- **Q3**:flag 子系统是否有超出「连带」的独立失效(以执行当日聚焦运行结果为准);若有,是否仍在本计划 test-only 范围内。
|
||||
</decision>
|
||||
<record>
|
||||
**裁决日期:** 2026-10-04(用户「可以执行」)
|
||||
- **Q1:** 真实 `TileStore` 或 stub 均可;采用「真实 `TileStore`,仅必要处用 stub」。
|
||||
- **Q2:** 删除测试中的假 legacy bridge / `IEnemyLegacyBridge` 引用;**Legacy 内容不进行测试**。
|
||||
- **Q3:** flag 若存在独立失效,在本计划 test-only 范围内对齐。
|
||||
- **Q4(发现 A):** 批准将 `IEnemyManager.getPrefab` 签名由 `token: number` 改为 `token: number | string`(纯类型修正,与 jsDoc/实现一致)。
|
||||
- **Q5(发现 B):** `addPrefab` 按实现对齐(**仅 code 去重**),其 jsDoc 的「id 或 code」视为过期,仅对齐测试。
|
||||
</record>
|
||||
<context>
|
||||
RESEARCH A3 明确 enemy/flag 的失败判定为「连带」,置信度 MEDIUM,需执行期以编译/运行结果为准。D-05 禁止新增接口;D-10 默认零生产改动。
|
||||
</context>
|
||||
|
||||
44
.planning/phases/08-test-refactor-alignment/08-03-SUMMARY.md
Normal file
44
.planning/phases/08-test-refactor-alignment/08-03-SUMMARY.md
Normal file
@ -0,0 +1,44 @@
|
||||
# 08-03 SUMMARY — data-base enemy + flag 对齐
|
||||
|
||||
**执行日期:** 2026-10-04
|
||||
**计划:** `08-03-PLAN.md`
|
||||
**状态:** 完成(聚焦 60/60 通过;eslint 0;已提交)
|
||||
|
||||
## Task 0 裁决(用户)
|
||||
|
||||
- **Q1:** 真实 `TileStore` 或 stub 均可 → 采用「真实 `TileStore` + 注册图块」。
|
||||
- **Q2:** 删除假 legacy bridge / `IEnemyLegacyBridge` 引用;Legacy 不测试。
|
||||
- **Q3:** flag 独立失效在本计划 test-only 内对齐。
|
||||
- **Q4:** 批准 `IEnemyManager.getPrefab` 签名由 `token: number` → `token: number | string`(纯类型修正)。
|
||||
- **Q5:** `addPrefab` 按实现对齐(**仅 code 去重**),其 jsDoc 的「id 或 code」视为过期。
|
||||
|
||||
## 生产改动(唯一,经用户确认)
|
||||
|
||||
- `packages-user/data-base/src/enemy/types.ts`:`IEnemyManager.getPrefab(token: number)` → `token: number | string`(与 jsDoc「怪物图块数字或id」及实现 `manager.ts:84` 一致;无运行时变化)。
|
||||
|
||||
## 测试对齐改动
|
||||
|
||||
| 文件 | 旧 → 新 |
|
||||
|------|---------|
|
||||
| `enemy/__test__/manager.test.ts` | 夹具改用真实 `TileStore`(`createManager([[num,id]...])` + `createRawTile` 注册 id↔num);构造器实参删除假 bridge;`getPrefabById(id)`→`getPrefab(id)`、`createEnemyById(id)`→`createEnemy(id)`;`reusePrefab(source, reuse, id)`(3 参)→ `reusePrefab(source, reuse)`(2 参,id 解析走 TileStore);`addPrefab` 用例改为「仅 code 去重」 |
|
||||
| `enemy/__test__/saveLoad.test.ts` | 同上(构造器改真实 `TileStore`、删假 bridge;`fromLegacyEnemy` 的特殊属性配置字段保留) |
|
||||
| `flag/__test__/system.test.ts` | `same-reference load (#06-17-5)` → `load semantics`:按 shipped「`loadState` 重建字段实例 + 按存档值恢复」重写 4 条用例(断言由 `toBe(同实例)` 改为 `not.toBe` + 值恢复) |
|
||||
| `flag/__test__/saveLoad.test.ts` | `keeps field objects on loadState` → `rebuilds field objects on loadState`;首条用例标题/注释同步为「读档后恢复」 |
|
||||
|
||||
未改动:`enemy/__test__/enemy.test.ts`、`special.test.ts`(原本即通过)。
|
||||
|
||||
## 期望值改写台账
|
||||
|
||||
- `manager.test.ts`:`addPrefab` 由「id 或 code 去重」→「仅 code 去重」;`reusePrefab` 3 参 → 2 参;`getPrefab`/`createEnemy` 取代 `*ById`。
|
||||
- `flag/*`:`loadState` 由「同引用保留」→「重建字段实例」(依据用户后续提交 `d74cc35 feat: Adding should replay flag`,`flag/system.ts:68-75` 明确 `clear()` + 新建;原 `#06-17-5` 语义已被该提交覆盖)。
|
||||
|
||||
## 门禁证据
|
||||
|
||||
- `pnpm exec vitest run packages-user/data-base/src/{enemy,flag}/__test__` → **6 passed / 60 passed**。
|
||||
- `pnpm exec eslint --fix` 后 `eslint` 对改动文件 **0 报错**。
|
||||
- 非测试生产改动仅 `enemy/types.ts`(Q4 批准);其余全为 `__test__/` 测试文件。
|
||||
- 仓库级 skipped 仍为 1。
|
||||
|
||||
## 并发保护(D-08)
|
||||
|
||||
- 未触碰、未暂存、未提交任何用户并发改动。
|
||||
Loading…
Reference in New Issue
Block a user