# Next Session Pickup — TS/JSON Token Export 实现（INFRA-F55 支柱①）

> 生成：2026-07-10 session 收尾。本 session 完成了 **brainstorm → spec → writing-plans**（三者已 commit+push），**实现未开始**。
> 起手第一句：`按 docs/internal/_plans/next-session-pickup-2026-07-10-tsjson-token-export.md 推进 F55 支柱① TS/JSON token 出口实现`

---

## 0. 起手必读

1. 走完 L-core onboarding（FIGMA_SOT / STATUS / PROJECT_GOAL / full-lifecycle pickup）。
2. **全文读本 session 产物**：
   - spec = [`docs/superpowers/specs/2026-07-10-tsjson-token-export-design.md`](../../superpowers/specs/2026-07-10-tsjson-token-export-design.md)
   - plan = [`docs/superpowers/plans/2026-07-10-tsjson-token-export.md`](../../superpowers/plans/2026-07-10-tsjson-token-export.md)（7 task TDD，含完整代码）

## 1. 决策已定（勿重问，owner 2026-07-10 直接拍板）

- 格式 **DTCG**、**无 Style Dictionary**（`audit:scripts-stdlib` 强制纯 stdlib）、**全量三层**（palette/semantic/nonColor）。
- **方案 A**：parse `src/tokens/variables.css` 单一真源 → 独立 emitter `figma-sync/generate-token-exports.mjs` → **不碰** `generate-tokens.mjs`。
- alias 保留 DTCG reference `{path}`；主题走 `$extensions["tvu.mode"]` 单文件双值；TS 侧给 resolved dark + `tokensLight` + `TokenName`。
- 防漂移：`scripts/audit-token-exports.mjs` gate 挂 `prepublishOnly`。

## 2. 现状事实（2026-07-10 live 核实，勿信任何 stale 报告）

- `variables.css` 453 行 / md5 `e94a602…`；293 声明（dark ~201 unique + light 覆盖 92）；220 字面 / 73 var() alias。
- `dist-wc/tvu-web-components.js` 存在；`package.json` exports 无 token 出口。
- 现有 `audit:sort-tokens.mjs` 已 parse variables.css（正则 `TOKEN=/^--([A-Za-z0-9-]+)\s*:\s*(.+?);?\s*$/`）可复用范式。
- vite `emptyOutDir` 会清 dist → emitter 必须在 `vite build` **之后** 跑（plan Task 5 已处理）。

## 3. 续跑入口（本 pickup 的下一步）

**invoke `superpowers:subagent-driven-development`（推荐）或 `superpowers:executing-plans`，按 plan 逐 task 执行 7 个 task。**

- ⚠️ **plan 自审 flag 的一处必须落实**：`./tokens/js` exports 指 `.js`/`.d.ts`，但 emitter 只写 `.ts` → Task 4 `main()` 必须**直接写三文件**（`tokens.json` + `tokens.js` + `tokens.d.ts`），`.ts` 源可选。见 plan Task 4/5 注。
- 每 task 收尾 owner ack 后才 commit（[[feedback_executor-no-self-commit]]）；owner 直推 master + push 双 remote。
- Task 7 收尾要更新 STATUS 能力×成熟度表能力1（token = CSS + DTCG JSON + TS）。

## 4. 纪律（本 session 实证）

- **本机 sandbox glitch**：关键数据用 md5/短 grep/单值交叉验，别整文件 Read（本 session §6 有效）。
- **需项目依赖的临时脚本放项目内**（scratchpad 里 `import vite` 找不到 node_modules）。
- **并行 session 警告**：另有 session 在做 Vue↔React parity / INFRA-F54，`vite.config.ts` / react-pilot 是其领域。提交前 `git status` 核实只碰 token 文件。
- pickup 文件若引用了找不到的上游产物 → 别脑补，live 重验 + 用 owner 当场指令（本 session 起手即此情形）。

## 5. 其余 F55 未完成支柱（非本 pickup，owner 逐步 ack）

见 backlog INFRA-F55 待做②③④⑤ + F56（gate 平权 + open-PR 雷达）+ F57（非颜色 token 变量化评估，可与本 token 出口顺带评估）+ F58 残余精简（规则三层化重构，最高精简杠杆）。

---

## 附：本 session 顺带修复（已 shipped，无需再动）

- **React toggle bug**：`pnpm dev`（root `vite.config.ts` serve）漏 `@tvu/wc` alias + `react()`（F46 加 React islands 时只补 playground BUILD config）→ 切 React 崩 "Failed to resolve @tvu/wc"。已补两处（react() scope 到 `command==='serve'` 保护 lib build），commit `d6762979`，programmatic + live HTTP 双验证。
