diff --git a/.planning/phases/07-data-fixes/07-10-PLAN.md b/.planning/phases/07-data-fixes/07-10-PLAN.md index c470ac7..69306b0 100644 --- a/.planning/phases/07-data-fixes/07-10-PLAN.md +++ b/.planning/phases/07-data-fixes/07-10-PLAN.md @@ -383,7 +383,7 @@ Phase 7 裁决对应(逐条引用):D-01/D-02: 本计划是 Phase 7 第 10 - .planning/ROADMAP.md(Phase 7 段的 Plans 列表与 Wave 列表) - (1) **门禁(D-12 / 06-CONTEXT D-44,文件级)**:对 `files_modified` 中每个改动的源码/测试文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;`pnpm exec vue-tsc --noEmit` 输出中不出现本计划改动文件的任何类型错误;`pnpm test:ci` 全绿(与「基线」行对比:66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 + (1) **门禁(D-12 / 06-CONTEXT D-44,文件级)**:对 `files_modified` 中每个改动的源码/测试文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;**文件级类型门禁按 06-RESEARCH Pitfall 4 的判定方式**:`pnpm exec vue-tsc --noEmit 2>&1 | Select-String -Pattern "<改动文件相对路径>"` 无命中(**不得**用「退出码非 0」判定失败——仓库存在既有渲染/legacy 类型错误);`pnpm test:ci` 全绿(与「基线」行对比:66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 (2) **原子提交(D-13)**:Task 1 / 2 / 3 / 4 各自独立提交(`fix(07-10): …` 前缀,可携带 `#06-17-3`、`CR-01`、`WR-01/02/03/07` 等锚点)。 (3) **缺口登记**:在 `07-10-SUMMARY.md` 的 findings/ledger 段落登记——07-03 登记为「不修」的 `ReplayArray.set` 与 `insert(index === length)` 已由本计划关闭(附 commit 锚点);`07-REVIEW.md` 的 CR-01/WR-01/WR-02/WR-03/WR-07 与 `IN-03` 逐条标注「已修/已随裁决登记」;`07-LOADSTATE-AUDIT.md` 的 H 行(`#06-17-3`)标注已修。`WINDOWS.md` 本计划不新建条目、不执行 `fixed`/`waive`(6 项均无入账 id,只登记对照)。 (4) **Phase 7 验证失效**:在 SUMMARY 中明写 `07-VERIFICATION.md`(2026-09-16T06:04:11Z,覆盖 8/8 计划)已因 07-09 与本轮 07-10..07-14 失效,本计划结束后必须重跑 `/gsd-verify-work`(或 `gsd-verify-work 7`);`ROADMAP.md` 的 Phase 7 计划数与 Wave 列表由本计划提交时同步(`docs(phase-07): …`)。 diff --git a/.planning/phases/07-data-fixes/07-11-PLAN.md b/.planning/phases/07-data-fixes/07-11-PLAN.md index 0007c4e..138869d 100644 --- a/.planning/phases/07-data-fixes/07-11-PLAN.md +++ b/.planning/phases/07-data-fixes/07-11-PLAN.md @@ -342,7 +342,7 @@ Phase 7 裁决对应(逐条引用):D-01: 本计划是 Phase 7 第 11 个 (1) **顶层集成断言**(`saveablesRoundTrip.test.ts`):在既有三档循环里新增一组同引用断言——`CoreState` 初始化并装备/写 flag/加 follower 后,取 `state.hero.items.equipment.get(uid)`、`state.flags.getField(key)`(或既有 flag 访问入口)、`state.hero.followers.getFollower(0)` 三个引用;`saveState` → 改动活状态(装备修饰器/flag 值/follower 位置)→ `loadState` → 断言三个引用 `===` 读档前的实例(按 Q1 裁决的子系统),且其值/位置等于存档点。用例中文单行注释说明覆盖内容。 - (2) **门禁(D-12 / D-44 文件级)**:对 `files_modified` 中每个改动的源码/测试文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;`pnpm exec vue-tsc --noEmit` 输出不含这些文件的类型错误;`pnpm test:ci` 全绿(对比基线:66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 + (2) **门禁(D-12 / D-44 文件级)**:对 `files_modified` 中每个改动的源码/测试文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;**文件级类型门禁按 06-RESEARCH Pitfall 4 的判定方式**:`pnpm exec vue-tsc --noEmit 2>&1 | Select-String -Pattern "<改动文件相对路径>"` 无命中(**不得**用「退出码非 0」判定失败);`pnpm test:ci` 全绿(对比基线:66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 (3) **原子提交(D-13)**:Task 1 / 2 / 3 / 4 各自独立提交(`fix(07-11): …`,携带 `#06-17-4` / `#06-17-5` / `#06-17-6` 锚点)。 (4) **缺口登记**:SUMMARY 的 findings/ledger 段落逐条标注 `#06-17-4/5/6`(审计 D/E/F)已闭合(附 commit),并登记 review 的 `IN-02`(空存档不重置 `nextUid`)为「本轮不修,保留在册」;`WINDOWS.md` 不新建、不 `fixed`/`waive`。 (5) **Phase 7 验证失效**:SUMMARY 明写 `07-VERIFICATION.md` 已因 07-09 + 07-10..07-14 失效,结束后必须重跑 `/gsd-verify-work`(或 `gsd-verify-work 7`);`ROADMAP.md` 的 Phase 7 计划数与 Wave 列表同步。 diff --git a/.planning/phases/07-data-fixes/07-12-PLAN.md b/.planning/phases/07-data-fixes/07-12-PLAN.md index 75cde56..73a849d 100644 --- a/.planning/phases/07-data-fixes/07-12-PLAN.md +++ b/.planning/phases/07-data-fixes/07-12-PLAN.md @@ -325,7 +325,7 @@ Phase 7 裁决对应(逐条引用):D-01: 本计划是 Phase 7 第 12 个 - .planning/WINDOWS.md(确认三条无入账 id) - (1) **门禁(D-12 / D-44 文件级)**:对 `files_modified` 中每个改动的文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;`pnpm exec vue-tsc --noEmit` 输出不含这些文件的类型错误;`pnpm test:ci` 全绿(对比基线 66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 + (1) **门禁(D-12 / D-44 文件级)**:对 `files_modified` 中每个改动的文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;**文件级类型门禁按 06-RESEARCH Pitfall 4 的判定方式**:`pnpm exec vue-tsc --noEmit 2>&1 | Select-String -Pattern "<改动文件相对路径>"` 无命中(**不得**用「退出码非 0」判定失败);`pnpm test:ci` 全绿(对比基线 66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 (2) **原子提交(D-13)**:Task 1 / 2 / 3 各自独立提交(`fix(07-12): …`,携带 `WR-04` / `WR-05` / `WR-06` 与必要的 `#06-09-1` 锚点)。 (3) **缺口登记**:SUMMARY 的 findings/ledger 段落逐条标注 WR-04/WR-05/WR-06 已闭合(附 commit)、Q4 两处相邻缺陷的处置(已修/已登记)、`IN-02`/`IN-04`/`IN-05` 保留在册;若 A1 授权的断言翻转发生,在此逐条列出「旧断言 → 新断言 → 理由」。`WINDOWS.md` 不新建、不 `fixed`/`waive`。 (4) **Phase 7 验证失效**:SUMMARY 明写 `07-VERIFICATION.md` 已因 07-09 + 07-10..07-14 失效,结束后必须重跑 `/gsd-verify-work`(或 `gsd-verify-work 7`);`ROADMAP.md` 的 Phase 7 计划数与 Wave 列表同步。 diff --git a/.planning/phases/07-data-fixes/07-13-PLAN.md b/.planning/phases/07-data-fixes/07-13-PLAN.md index 5153b97..23779d4 100644 --- a/.planning/phases/07-data-fixes/07-13-PLAN.md +++ b/.planning/phases/07-data-fixes/07-13-PLAN.md @@ -278,7 +278,7 @@ Phase 7 裁决对应(逐条引用):D-01: 本计划是 Phase 7 第 13 个 - .planning/WINDOWS.md(确认两条无入账 id) - (1) **门禁(D-12 / D-44 文件级)**:对 `files_modified` 中每个改动的文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;`pnpm exec vue-tsc --noEmit` 输出不含这些文件的类型错误;`pnpm test:ci` 全绿(对比基线 66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 + (1) **门禁(D-12 / D-44 文件级)**:对 `files_modified` 中每个改动的文件执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;**文件级类型门禁按 06-RESEARCH Pitfall 4 的判定方式**:`pnpm exec vue-tsc --noEmit 2>&1 | Select-String -Pattern "<改动文件相对路径>"` 无命中(**不得**用「退出码非 0」判定失败);`pnpm test:ci` 全绿(对比基线 66 文件 / 690 通过 / 1 跳过,跳过项仍只能是 `equipment.test.ts:306` 码 147)。 (2) **原子提交(D-13)**:Task 1(CR-02)与 Task 2(`#06-17-8`)各自独立提交(`fix(07-13): …`)。 (3) **缺口登记**:SUMMARY 逐条标注 CR-02 与 `#06-17-8` 已闭合(附 commit);`IN-01` 按 Q4 裁决标注「已修」或「保留在册」;`IN-04`/`IN-05` 标注「本轮清单外,保留在册」。`WINDOWS.md` 不新建、不 `fixed`/`waive`。 (4) **Phase 7 验证失效**:SUMMARY 明写 `07-VERIFICATION.md` 已因 07-09 + 07-10..07-14 失效,结束后必须重跑 `/gsd-verify-work`(或 `gsd-verify-work 7`);`ROADMAP.md` 的 Phase 7 计划数与 Wave 列表同步。 diff --git a/.planning/phases/07-data-fixes/07-14-PLAN.md b/.planning/phases/07-data-fixes/07-14-PLAN.md index ead80c4..3eda453 100644 --- a/.planning/phases/07-data-fixes/07-14-PLAN.md +++ b/.planning/phases/07-data-fixes/07-14-PLAN.md @@ -238,7 +238,7 @@ Phase 7 裁决对应(逐条引用):D-01: 本计划是 Phase 7 第 14 个 - .planning/codebase/TESTING.md(`pnpm test:ci` 口径与文件数说明) - (1) **门禁(D-12 / D-44 文件级)**:对 `hero.ts` 与新增的 `hero.test.ts` 执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;`pnpm exec vue-tsc --noEmit` 输出不含这两个文件的类型错误;`pnpm test:ci` 全绿——**基线与执行前对比**:文件数由 66 变为 67(新增该包首个测试文件),通过数相应增加,跳过项仍只能是 `equipment.test.ts:306` 码 147;若新增文件未被 vitest 发现(分母仍为 66),记录原因并确认该用例确实被根 vitest 默认 include 覆盖(必要时在 SUMMARY 说明)。 + (1) **门禁(D-12 / D-44 文件级)**:对 `hero.ts` 与新增的 `hero.test.ts` 执行 `pnpm exec eslint --fix <文件>` 后 `pnpm exec eslint <文件>` 0 错误;**文件级类型门禁按 06-RESEARCH Pitfall 4 的判定方式**:`pnpm exec vue-tsc --noEmit 2>&1 | Select-String -Pattern "packages-user/data-fallback/src/hero"` 无命中(**不得**用「退出码非 0」判定失败);`pnpm test:ci` 全绿——**基线与执行前对比**:文件数由 66 变为 67(新增该包首个测试文件),通过数相应增加,跳过项仍只能是 `equipment.test.ts:306` 码 147;若新增文件未被 vitest 发现(分母仍为 66),记录原因并确认该用例确实被根 vitest 默认 include 覆盖(必要时在 SUMMARY 说明)。 (2) **原子提交(D-13)**:`hero.ts` 的实现与 `hero.test.ts` 可合并为一个 `fix(07-14): …`(单一根因)分别提交亦可;提交信息携带 `#06-17-7` 锚点。 (3) **缺口登记**:SUMMARY 逐条标注 `#06-17-7`(审计 C)已闭合(附 commit)与 Q4 的 `patchFlags` 处置;同时说明审计「未确定项 1(仓外 `resetHero` 是否重发)」在本次修复后不再影响正确性(选项 A)或仍依赖该事件(选项 B,须明写)。`WINDOWS.md` 不新建、不 `fixed`/`waive`。 (4) **Phase 7 验证失效**:SUMMARY 明写 `07-VERIFICATION.md` 已因 07-09 + 07-10..07-14 失效,结束后必须重跑 `/gsd-verify-work`(或 `gsd-verify-work 7`);`ROADMAP.md` 的 Phase 7 计划数与 Wave 列表同步;这是 C–H + CR-01/CR-02 全部收口后的**最后一个**计划,SUMMARY 应给出本轮 07-10..07-14 的完整清单与逐条闭合状态,便于 `07-VERIFICATION.md` 重跑核对。