# Codex Prompt: tsconfig include 扩 playground — Round 1 (Dry-Run + 错误清单)

> **目标**：把 `tsconfig.json` 的 `include` 从 `["src/**/*"]` 扩到 `["src/**/*", "playground/**/*"]`，捕获 vue-tsc 暴露的所有 type 错误，分类报告给 plan owner，然后**还原 tsconfig**让工作区回到干净状态。
>
> **不动任何源代码**——本轮只是 dry-run + 报告。Round 2 才修错误。
>
> **估时 30-60min。不要 commit。**

---

## 背景

复盘 [2026-04-30 阶段 6 待办段](../retrospection/2026-04-30-t4-spike-validated.md) 标记：

> **tsconfig include 扩 playground/**（HIGH 优先级）：playground 28 页当前不在 typecheck 强制范围，可能藏 type 错误。**单独 prompt** 跑——扩 include 后预计暴露若干 type 错误，要专门修复一轮。**应在 T2 样板启动前完成**（避免 T2 改 page 时基于不安全的 type 状态）。

T3 commit (aaa537f) 已落地，下一步 T2 样板。**T2 启动前**必须先做这条。

风险：扩 include 后预计暴露 N 个 type 错误，N 可能大。本 prompt 先 **dry-run**——把 N 数清楚 + 错误分类清楚，**不实际修代码**——让 plan owner 审完决定 Round 2 修法（单 prompt / 拆多个 prompt / 部分加 `@ts-expect-error`）。

---

## 必读前置

1. **`AGENTS.md`** — 工作流 + 项目约束 + 硬规则
2. **`docs/meta-rules.md`** — 反模式清单
3. **`tsconfig.json`** — 主 tsconfig（10 行）
4. **`tsconfig.node.json`** — Node 用 tsconfig（不动它）
5. **`docs/internal/retrospection/2026-04-30-t4-spike-validated.md`** 阶段 6 待办段

---

## 任务（5 步）

### 任务 1：备份当前 tsconfig.json 状态

```bash
git diff HEAD -- tsconfig.json   # 应空（commit aaa537f 已 clean）
cp tsconfig.json /tmp/tsconfig.original.json
```

### 任务 2：临时扩 include 加 playground

修改 `tsconfig.json`：

```diff
- "include": ["src/**/*"]
+ "include": ["src/**/*", "playground/**/*"]
```

只改这一行。其它字段（compilerOptions / baseUrl / paths）保持。

### 任务 3：跑 vue-tsc 捕获所有错误

```bash
pnpm exec vue-tsc --noEmit 2>&1 | tee /tmp/vue-tsc-dryrun-output.txt
echo "EXIT: $?"   # 期望 != 0（有错误）；如果意外 = 0 也好，说明 playground 0 错误
```

把完整输出**保留**（写到下面报告里）。

### 任务 4：分类 + 写报告

写到 `docs/internal/_spikes/tsconfig-include-extension-dryrun-report.md`。

报告必须含：

1. **总错误数 N**
2. **按文件分布表**（哪些 page / 哪些组件最严重）
3. **按错误类型分类**（每类给数量 + 1-2 个具体例子）：
   - 隐式 `any`（implicit any types）
   - Strict null check 失败
   - 模块解析错误（paths / alias 相关）
   - Vue refs / computed 类型推断错误
   - 自定义错误（如组件 props type 不全）
   - 其它
4. **修法建议**（不实施，只建议）：
   - 哪类错误能用一个统一规则修（如所有 `any` 加显式 type）
   - 哪类错误需要单独 case-by-case
   - 哪类错误可能需要 `@ts-expect-error` 临时绕过（说明理由 + 后续修复 owner）
5. **Round 2 估时**：基于分类给出修复一刀总估时（如 1h / 3h / 8h）
6. **是否建议拆分**：错误数 > 50 → 建议 Round 2 拆多个 prompt；≤ 30 → 一个 prompt 修完

### 任务 5：还原 tsconfig.json + 验证工作区干净

**关键**：本轮**不**保留 tsconfig 变动——让工作区回到 commit aaa537f clean 状态。Round 2 才会真改。

```bash
cp /tmp/tsconfig.original.json tsconfig.json
git diff HEAD -- tsconfig.json   # 应回到空（确认还原成功）
```

如果 git diff 不空 → STOP 报告，说明还原失败。

最终工作区**只有**新增 1 个文件：`docs/internal/_spikes/tsconfig-include-extension-dryrun-report.md`。

---

## 不要做的事

- ❌ **不 commit / 不 push**
- ❌ 不修任何 .ts / .vue 源代码
- ❌ 不动 `tsconfig.node.json`
- ❌ 不留 tsconfig.json 修改（任务 5 必须还原）
- ❌ 不安装新依赖
- ❌ 不跑 `pnpm sync:figma-library` 或其它 figma 调用
- ❌ 不主动 fix typecheck 错误（即使诱惑很大）

允许的：

- ✅ 临时改 `tsconfig.json`（任务 2），任务 5 还原
- ✅ 跑 `pnpm exec vue-tsc --noEmit` + 捕获输出
- ✅ 跑 grep / cat / 读项目内任何文件分析错误
- ✅ 新增 1 个文件：`docs/internal/_spikes/tsconfig-include-extension-dryrun-report.md`
- ✅ `cp /tmp/...` 备份/还原

---

## 自验

```bash
# tsconfig.json 已还原
git diff HEAD -- tsconfig.json | wc -l   # 应 = 0

# 报告文件已写
ls -la docs/internal/_spikes/tsconfig-include-extension-dryrun-report.md

# 工作区只新增 1 个文件
git status --short | grep '^??' | wc -l   # 应 = 1（仅 dryrun-report.md，加上 .claude/settings.json 你本地）
git status --short | grep -E '^.M' | wc -l  # 应 = 0

# HEAD 没动
git log --oneline -1   # 应仍是 aaa537f
```

---

## 完成后 STOP

报告格式给主 session：

```
=== Pre-flight ===
tsconfig.json original: backed up to /tmp/tsconfig.original.json
HEAD = aaa537f

=== Dry-run 执行 ===
扩 include 后跑 vue-tsc:
- EXIT code: N
- 总 type 错误数: N
- 错误分类（按类）：
  - 隐式 any: N 处
  - strict null: N 处
  - 模块解析: N 处
  - Vue 推断: N 处
  - 自定义: N 处
  - 其它: N 处

=== 报告 ===
docs/internal/_spikes/tsconfig-include-extension-dryrun-report.md (~N 行)
- 含按文件分布表
- 含按错误类型分类
- 含修法建议
- Round 2 估时建议: X 小时
- 是否建议拆分: yes / no（基于 N）

=== 任务 5 还原验证 ===
tsconfig.json: 已还原（git diff 空）
工作区只新增 1 文件: dryrun-report.md

=== 阻碍 / 困惑 ===
（如有）

=== 工作区状态 ===
1 untracked (dryrun-report.md), 0 modified, 0 commits, HEAD = aaa537f
```

主 session 复审报告：
1. N 数值
2. 分类合理性
3. 修法建议是否覆盖所有错误
4. 决定 Round 2 拆法（单 prompt / 多 prompt / 部分 @ts-expect-error）

复审通过后写 Round 2 implementation prompt。

**STOP。不要进 Round 2。不要修代码。**
