From e03fd3cb69fc810893ba2c3100d136216b7e2047 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Mon, 14 Sep 2026 14:14:37 +0800 Subject: [PATCH] docs(06): add D-44 lint/type quality gate --- .planning/phases/06-unit-tests/06-CONTEXT.md | 1 + .planning/phases/06-unit-tests/06-DISCUSSION-LOG.md | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/.planning/phases/06-unit-tests/06-CONTEXT.md b/.planning/phases/06-unit-tests/06-CONTEXT.md index b98302e..034d56b 100644 --- a/.planning/phases/06-unit-tests/06-CONTEXT.md +++ b/.planning/phases/06-unit-tests/06-CONTEXT.md @@ -89,6 +89,7 @@ - **D-32:** 存读档集中 —— 所有 `saveState`/`loadState` 测试从各计划移出,集中到 06-09。唯一例外:06-07 的录像播放所需状态重置可**最小使用**存档数据,但不测存读档本身。 - **D-33:** 执行节奏 —— **每个计划执行前先向用户确认**;执行完暂停,用中文**分条简要汇报**本计划验证结果;详细结果写入共用的 `06-TEST-FINDINGS.md`。 - **D-43:** 阶段化测试(**应用于全部 06-01..06-09**)—— 先做**构件级**测试(单个类/函数/单个光环/单个 effect 等最小单元),再做**组合/流水线**测试,最后做**完整/集成**测试。**取消 tracer-first**;每阶段跑绿后再进入下一阶段。某阶段发现**阻断性 bug**(导致后续阶段无法运行)时,**暂停并向用户汇报、等确认**(D-05/D-07),不得跳过或弱化为通过。原因:这些系统在本次之前从未被测过,直接端到端很可能整链失败且无法定位,必须先分阶段定位。 +- **D-44:** 质量门禁(lint + 类型,**文件级**,应用于全部计划)—— 每个计划执行后、提交前必须:(a) 对改动文件运行 `eslint --fix`,并确保 `eslint <改动文件>` **0 错误**;(b) 对**本计划改动的测试文件**运行 `pnpm exec vue-tsc --noEmit`,并确保其输出中**这些文件路径下 0 类型错误**(按输出文件路径过滤判定;因全局 `pnpm check:type` 已有既有无关错误,故按文件级判定);(c) `pnpm test:ci` 全绿。任一不通过则**不得提交**。既有无关错误(`client-modules`/`legacy-plugin-data` 等,属 Phase 4/legacy)不在本门禁范围。原因:vitest 用 esbuild 剥类型,类型/格式错误不会让测试失败,故必须显式门禁。 ### 各计划边界 - **D-35:** 06-02 只测顶层实现**基本功能**(单分支、按预期输出);属性/加成**组合**后移至 06-07。范围:`MainDamageCalculator` / `MainEnemyFinalEffect` / `MainEnemyComparer` / `CommonAura(+Converter)` / `GuardAura(+Converter)` / `registerSpecials` / mapDamage 五视图 + converter + reducer。 diff --git a/.planning/phases/06-unit-tests/06-DISCUSSION-LOG.md b/.planning/phases/06-unit-tests/06-DISCUSSION-LOG.md index f909829..405dae7 100644 --- a/.planning/phases/06-unit-tests/06-DISCUSSION-LOG.md +++ b/.planning/phases/06-unit-tests/06-DISCUSSION-LOG.md @@ -321,6 +321,18 @@ --- +## 补充讨论(2026-09-14):lint/类型门禁(D-44) + +**背景(用户指出)**:测试文件存在格式化错误与类型错误;执行器未检查就提交。vitest 用 esbuild 剥类型,类型错误不会让测试失败。 + +| 决策 | 选择 | +|------|------| +| 现有文件处理 | 立刻清理(已完成,提交 `136a984`) | +| 门禁粒度 | 文件级 `eslint` + `vue-tsc` 类型检查 + `pnpm test:ci` 全绿才提交 | +| 类型判定 | 全局 `check:type` 已有既有无关错误,故按「改动测试文件」过滤判定 | + +--- + ## the agent's Discretion - 各系统内部具体测哪些函数/边界、用例命名与文件切分。