Skip to content

Commit c0818e2

Browse files
committed
docs(plan): 补登记控制方引述错锚并修表列数
1 parent 367559f commit c0818e2

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

‎docs/superpowers/plans/2026-09-13-frontend-redesign-batch7-unwired.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -438,14 +438,14 @@ surfaceBaseline.ts:49 → * 阴影 **24 → 24 处 / 24 文件(…)**
438438
> 🔴 **纪律(§C12 第 5 条重申,本批常设)**:计划/报告里凡写「**与某方实测一致**」,**必须能指出是哪一条**;**指不出就不许写**。批 6 已登记 10 例,本批已有 **1 例(`### 表 6` 的 X2,即本表的来源)**,本表已**删除该不实归属**并把原记录**保留为勘误**。
439439
> 🔴 **实施者纪律(派发书 §6 第 2 条)**:**任务卡里的任何行号锚,动手前一律自己重测**;与本表不符 ⇒ **按实测走**并在报告里逐字给出旧锚 / 新锚。
440440
441-
**(c)追加记录 · 非行号类的两处错误(控制方 2026-09-13 追加,体例同 §C12「保留错误记录、勿抹掉」)**
441+
**(c)追加记录 · 非行号类与「控制方侧引述」类错误(控制方 2026-09-13 追加,体例同 §C12「保留错误记录、勿抹掉」)**
442442
443443
| # | 错误 | 性质 | 真值 / 处置 | 依据(E1 只读重测) | 受影响位点(已改正) |
444444
|---|---|---|---|---|---|
445445
| **E-23** | **控制方第 14 例**:控制方派发语逐字「**不要碰 `App/src/pages/SessionsPage.tsx` 的 prop(那是 T17 的活)**」 | 🔴 **与计划 `T1` 的 Step 6 冲突**(该步明确要求 T1 给 `SessionsPage` 加两个可选 props 并在 `App.tsx` 透传) | **派发语该句作废**,**以计划 T1 卡为准**:**T1 = 加类型 + `App.tsx` 两行透传 + `SessionsPage` 解构转交;消费逻辑留 T17**。理由(机器可判):`app/tsconfig.json` 的 **`noUnusedLocals: true`** + **`noUnusedParameters: true`** ⇒ **不加那两行透传(或不接收/不使用)`tsc` 必红**(TS6133;控制方实测探针 **exit 2**) | `app/tsconfig.json`(`probe5.mjs` ⇒ `"noUnusedLocals": true`)· `App.tsx`(**599**)· `pages/SessionsPage.tsx` | **T1** 的 Step 6(已写入「以本卡为准」的作废声明)· 本节 |
446446
| **E-24** | **计划方第 2 例错误**:`### 表 5` 的 **Y2** 行把 `toastMigration.test.tsx:146`(`toContain("durationMs={3500}")`)判为「**不改**」 | 🔴 **判错**:`durationMs={3500}` 在 **`AiToast` 的定义体内**(`App.tsx:198`)⇒ T1 把 `AiToast` 搬去 `shell/aiToast.tsx` ⇒ **该断言必红**(原行的"零改动反向声明"对本条不成立) | **Y2 行已改写为勘误并保留原文**;🔴 **新增四处授权改写**:`toastMigration.test.tsx:146`(**必改**,换被读文件)· `:126`(`barrelNames(App.tsx)` 含 `Toast` ≠ 搬走后)· `shell/TopBar.test.tsx:276`(`APP_CODE` 含 `placement="belowNav"`)· `shell/ShellFallback.test.tsx:174-175`(在 `App.tsx` 里 `indexOf("function PageSlot(")` 再切定义体);`:117`(`App.tsx` 含 `<AiToast`)**确实不改**(调用点在 `App.tsx:549`) | `App.tsx`(**599**)`:50` / `:160` / `:186` / `:198` / `:199` / `:549` · `toastMigration.test.tsx`(**235**)`:117` / `:126` / `:146` · `TopBar.test.tsx`(**298**)`:276` · `ShellFallback.test.tsx`(**208**)`:174-175`(全部由 `probe5.mjs` 逐行打印复核) | **`### 表 5` 的 Y2 行(勘误)+ Y2-A/Y2-B/Y2-C/Y2-D 四行(新增授权)** · **T1** 的 Files / Step 2b / 诚实边界 |
447-
| **E-25** | `nativeButton.ratchet.test.ts:268-273`(出现于 `## Global Constraints` 的 §C5.1 行 / **T10 的 V1** / **`## 陷阱` B4** 三处) | 🔴 **越界**:该文件**只有 265 行**(`countLines()`)。真锚 = **`:199-200`**(`expect(SCAN.buttonTotal, …).toBeLessThanOrEqual(FROZEN_NATIVE_BUTTON_TOTAL)` = 「常量 == Σ entries」的牙);同文件的另两条牙 = 逐文件表 **`:203-214`**(✓ 本就正确)、`const *Btn*` 族 **`:255-263`**(✓ 本就正确) | `nativeButton.ratchet.test.ts`(**265**)· `probe6.mjs`(逐行打印 `:200-265`;并全文件扫 `FROZEN_NATIVE_BUTTON_TOTAL` ⇒ 仅 `:35` / `:199` / `:200`)· 出处 = **控制方 §C9.7 与 §C5.1 的引述**(控制方侧同一错锚) | `## Global Constraints` 的 C5.1 行 · **T9 的 Step 3 表** · **T10 的 V1(M1)** · `## 陷阱` B4 |
448-
| **E-26** | `SessionScreenCards.tsx:96`(出现于 §C9.4 的「真·可解锁 4 处」引述 + 计划 T7 的两处) | 🔴 **偏 2 行**:`:96` 是 `id={\`ocr-…\`}` 行;**整圈边框在 `:98`**(`border: "1px solid #e5e7eb"`,style 块 `:97-103`,`background: "#fafafa"` 在 `:102`) | `session-detail/SessionScreenCards.tsx`(**193**)· `probe6.mjs`(逐行打印 `:88-104`)· 出处 = **控制方 §C9.4 的三处行号引述**(控制方侧同一错锚) | **T7** 的 `FROZEN_BORDER_TOTAL` 行 · **T7** 的迁移逐处表 |
447+
| **E-25** | `nativeButton.ratchet.test.ts:268-273`(出现于 `## Global Constraints` 的 §C5.1 行 / **T10 的 V1** / **`## 陷阱` B4** 三处) | 🔴 **越界**:该文件**只有 265 行**(`countLines()`) | 真锚 = **`:199-200`**(`expect(SCAN.buttonTotal, …).toBeLessThanOrEqual(FROZEN_NATIVE_BUTTON_TOTAL)` = 「常量 == Σ entries」的牙);同文件的另两条牙 = 逐文件表 **`:203-214`**(✓ 本就正确)、`const *Btn*` 族 **`:255-263`**(✓ 本就正确) | `nativeButton.ratchet.test.ts`(**265**)· `probe6.mjs`(逐行打印 `:200-265`;并全文件扫 `FROZEN_NATIVE_BUTTON_TOTAL` ⇒ 仅 `:35` / `:199` / `:200`)· 出处 = **控制方 §C9.7 与 §C5.1 的引述**(控制方侧同一错锚) | `## Global Constraints` 的 C5.1 行 · **T9 的 Step 3 表** · **T10 的 V1(M1)** · `## 陷阱` B4 |
448+
| **E-26** | `SessionScreenCards.tsx:96`(出现于 §C9.4 的「真·可解锁 4 处」引述 + 计划 T7 的两处) | 🔴 **偏 2 行** | `:96` 是 `id={\`ocr-…\`}` 行;**整圈边框在 `:98`**(`border: "1px solid #e5e7eb"`,style 块 `:97-103`,`background: "#fafafa"` 在 `:102`) | `session-detail/SessionScreenCards.tsx`(**193**)· `probe6.mjs`(逐行打印 `:88-104`)· 出处 = **控制方 §C9.4 的三处行号引述**(控制方侧同一错锚) | **T7** 的 `FROZEN_BORDER_TOTAL` 行 · **T7** 的迁移逐处表 |
449449
| **E-27** | **计划方第 3 例错误**:T3 卡 Step 3 要求「`lowConfidenceClass` 的用例**已由 T2 搬到** `utils/lowConfidence.test.ts`」 | 🔴 **T2 卡没有这个文件、T2 也(正确地)没建它** ⇒ 原措辞会让 T3 依赖一个不存在的产物 | 🔴 **控制方 2026-09-13 裁决:授权 T3 自建** `app/src/utils/lowConfidence.test.ts`(内容 = `structuredBlocks.test.ts:82` 的**那 1 个 `it`**,内含 4 条 `expect` = `:86-89`);理由 = **删除与迁移必须在同一单元内完成**(否则中间态丢用例) | `structuredBlocks.test.ts`(**92**,`it(` = `:14/:21/:31/:38/:49/:59/:68/:82`)· `probe4.mjs` · 出处 = **控制方追加裁决 2026-09-13** | **T3** 的 Files(新增该文件)· **T3** 的 Step 3 · **T3** 的冻结值预算表(用例数行) · **T3** 的 V4/M4 |
450450
| **E-28** | **计划方第 4 例错误**:原计划把「改文件」(T1/T6/T7)与「补豁免表行数」(T11 集中做)**拆给不同单元** | 🔴 **设计缺陷**:`line-limits.mjs --full` 的 **(e) 判据 = 工作树实测 == 登记值**,而 husky pre-commit 扫**工作树** ⇒ **每一个中间提交都必然撞钩子** ⇒ 等于**强制全员 `--no-verify`**(把门禁变成形式)。**T2 与 T8 各自独立撞上,读数一致** | 🔴 **控制方 §C14 裁决**:**豁免表的行数列改由「改文件的那个单元」在同一提交里更新**;**T11 缩为只做非行数类维护**(拆法说明列 / 记录文案);另给 **`--no-verify` 的条件式授权**(四条 + 「❌ 其余钩子失败 ⇒ STOP」,见 `## Global Constraints` 的「提交纪律」节),**权威证据 = T12/T22 在最终树上的串行八闸** | `.husky/pre-commit`(**20** 行,三条具名脚本,实测)· `scripts/line-limits.mjs`(**300**)的 (e) 判据 · 出处 = **控制方 §C14**(T2/T8 实测触发) | **T11** 的标题/目标/预算表/Files/Step 1–2/V1/V3/V6′/诚实边界 · **`### 段 7a 任务一览`** 的 T1/T6/T7/T10/T11 行 · **`> 🔴 热点文件的单写者约束`** 的豁免表行 · **`## Global Constraints` 的「提交纪律」节**(新增条件式授权) |
451451
| **E-29** | **计划方第 5 例错误**:T4 卡 Step 4 写「**分支 A**:**三条**各加 `#[allow(dead_code)]`」 | 🔴 **实测是 4 条**:第 4 条是**传递受害的私有 helper `normalize_source`**(其**唯一调用方**就是已撤下的 `add_session_segment`)⇒ **只加 3 处会留 1 条新告警** ⇒ clippy **集合差异非空** ⇒ 违反「只许持平」(C5.1) | 🔴 **T4 卡已改为**:「**按 `cargo build` 实测逐条添加** —— 实测 4 条(三条撤下命令 + 传递受害的 helper;**4 条是实测值、不是上限**)」 | `commands_session.rs`(**443**)· T4 报告 §3.5 / §5.2(控制方已采信):`cargo build` 实测 **4 条** `dead_code`、加 allow 后 **0 条**;`cargo clippy --all-targets` **19 条唯一诊断(lib 15)SET-IDENTICAL** | **T4** 的 Step 4 · **T4** 的冻结值预算表(clippy 行) |

0 commit comments

Comments
 (0)