# Next Session Pickup（落仓库 2026-05-11）

> 本文件锚在 repo 里，呼应 2026-05-08 行为约束 #19（跨 session 任务必须留 repo 锚点）。
> **新 session 起手第一步：把本文件 + AGENTS.md 必读链路读完，再决定动手顺序。**
> 前任：[`archived/next-session-pickup-2026-05-09.md`](archived/next-session-pickup-2026-05-09.md)（已归档，第 1/2/3 批已完成）

---

## TL;DR（3 句话）

1. **v0.1 publish 4 阻塞物全 ✅**：INFRA-F27（`5125e625`）+ NPM-001（`7e54d50d`）+ NPM-002（`babee0fd`）+ NPM-003（`520bb15a` — GitHub Packages publish workflow + prepublishOnly 7 strict + RELEASING.md）。一次性拍板 D1=B / D2=tag-triggered / D3=Option A (7 strict + 2 warn-only) / Version=X (0.1.0 首次发布 + 0.1.1+ 严格 changeset)。
2. **下个 session 任务**：v0.1 publish 是 user 手动 3 行命令（`git tag -d v0.1.0 && git tag v0.1.0 && git push --tags`）—— 触发 `.github/workflows/publish.yml` CI 跑 typecheck + build + 2 warn audit + pnpm publish (prepublishOnly 跑 7 strict) → 发到 GitHub Packages。**publish 完成后本 pickup 文件可挪 `_plans/archived/`**。
3. **Phase 1 baseline 派生 2 个 follow-up backlog**（不阻 v0.1 publish，0.1.1+ 顺手做）：CANONICAL-007（Tab.vue 硬编码 + Icon/Logo.vue raw SVG → 升 audit:design-system strict）/ BRIDGE-MOCKUP-004（2 figma-only 漂移 → 升 audit:published-vs-code strict）

---

## 1. 2026-05-09 → 2026-05-11 已落地清单（按时间线）

### Plan owner 阶段（2026-05-09 session — 起手）

| commit | 内容 |
|---|---|
| `91f43d74` | chore(cleanup): 删 8 项 dead code (5987 行) — META-F27 review §6.1 收尾 |
| `522616d2` | docs(backlog): INFRA-F27 build-icon-dist 倒退 fill="currentColor" |
| `ba5fe002` | docs(backlog): NPM-001/002/003 + 补 INFRA-F27 影响范围 |
| `12ed815c` | docs(prompts): NPM-001 CHANGELOG + changesets prompt（D1/D2/D3 拍板"全推荐"）|
| `4f24f4bc` | docs(prompts): INFRA-F27 build-icon-dist currentColor fix prompt（D1/D2/D3/D4 拍板"全推荐"）|

### Executor 阶段（2026-05-09 → 05-11 user 跑 Codex）

| commit | 内容 |
|---|---|
| `5125e625` | fix(icons): INFRA-F27 修复落地（含 3 处主动延展：regex 与 audit rule 对齐 / buildDistIconAssets gap fix / network.ts rect 漏修补全）|
| `7e54d50d` | docs(npm): NPM-001 落地 — CHANGELOG.md + changesets 工具链 |
| `babee0fd` | docs(npm): NPM-002 落地 — README install 段改 npm registry 形态 + Components 表 2→29 row + 新建 docs/GETTING_STARTED.md (181L) 5min quickstart |
| `520bb15a` | build(publish): NPM-003 落地 — .github/workflows/publish.yml + package.json (prepublishOnly + engines + publishConfig) + docs/RELEASING.md |

**本 session 后 git status 应当是**：
- 本地 = origin/master（0 未推 commit）✅
- 6 个 untracked / dirty 文件保留（别 session 进行中产物，本任务范围外，详见 §4）

如果新 session 看到 git 状态不是上面这样，先 `git log origin/master..HEAD` 排查。

---

## 2. 新 session 起手 onboarding（按顺序读）

1. **本文件**（你正在读）— 5min
2. [AGENTS.md](../../../AGENTS.md) 必读链路 §1-8 — 10min
3. [`backlog.md`](../backlog.md) Active 段，重点看 NPM-002 / NPM-003 / INFRA-F27 (Active) — 5min
4. [`CHANGELOG.md`](../../../CHANGELOG.md) `[0.1.0]` 段（即将作为 NPM-002 README install 段的 value 来源）— 3min
5. （可选）[`_reports/systematic-review-2026-05-09.md`](../_reports/systematic-review-2026-05-09.md) §1.3 v0.1 ready check — 仅当忘记 publish 路径阻塞链时

**总 onboarding ~25min，做完即可动手。**

---

## 3. 任务队列（按 v0.1 临界路径）

```
✅ INFRA-F27 (build pipeline fix) — 已落地 5125e625
✅ NPM-001 (CHANGELOG + changesets) — 已落地 7e54d50d
✅ NPM-002 (README + GETTING_STARTED) — 已落地 babee0fd
✅ NPM-003 (publish workflow + RELEASING.md) — 已落地 520bb15a
🟡 v0.1 publish — 等 user 手动 tag 命令触发 CI
```

### 第 1 步 — v0.1 publish（user 操作，3 行命令）

```bash
git tag -d v0.1.0                          # 删 stale local tag (49fb8f1e placeholder，未 push origin)
git tag v0.1.0                             # 重建在 HEAD (本 session 后 = NPM-003 commit + plan owner 收尾 commit)
git push origin master --tags              # 推 tag 触发 .github/workflows/publish.yml
```

预期 CI 流程：
1. checkout
2. setup pnpm 10.28.2 + Node 20 + `@tvu` scope 指向 `https://npm.pkg.github.com`
3. `pnpm install --frozen-lockfile`（触发 prepare = typecheck + build）
4. `audit:design-system` warn-only（baseline FAIL，不阻 publish）
5. `audit:published-vs-code` warn-only（baseline FAIL，不阻 publish）
6. `pnpm publish --no-git-checks` — prepublishOnly 跑 7 strict audit（任一 fail 阻 CI）→ 发到 GitHub Packages

发布成功 verify：
- GitHub repo → Packages tab 看 `@tvu/design-system@0.1.0`
- 或外部 consumer test install（按 RELEASING.md §External consumer setup 配 `.npmrc`）

### 第 2 步 — Publish 后归档本 pickup

```bash
git mv docs/internal/_plans/next-session-pickup-2026-05-11.md docs/internal/_plans/archived/
git commit -m "docs(plans): archive 2026-05-11 pickup — v0.1 published"
```

---

## 4. Untracked / dirty 文件（别 session 进行中 — 与 v0.1 publish 路径无关）

User 2026-05-11 明示：这些是**另一个 session 在跑的任务**，**尚未结束**，本 session 不要碰。新 session 起手默认延续此规则——除非 user 主动说"消化这些文件"，否则**跳过不动**。

| 文件 | 状态 | 备注 |
|---|---|---|
| `.claude/settings.json` | M | 工具设置改动（私有），user 自决 |
| `docs/meta-rules.md` | M | 别 session 在动（具体改动 plan owner 未查 — 避免与别 session 冲突）|
| `docs/multi-session-collaboration-rules.md` | M | 别 session 在动 |
| `docs/internal/mockup-conventions.md` | M | **本 session 期间新增 dirty**（NPM-002 期间出现）— 别 session 在动 |
| `docs/internal/code-conventions.md` | ?? (175 行) | MicroApps mockup session 产物 — 新增 AI 写代码消费 TVU library R1-R4 硬约束（与 mockup-conventions.md M1-M20 同源镜像）|
| `docs/internal/retrospection/2026-05-11-library-key-confusion.md` | ?? (169 行) | MicroApps mockup session 产物 — TVU UX Library vs TVU UX Design System 误用复盘 |

**新 session 起手协议**：onboarding 报告 dirty 状态时 explicit 标"如果别 session 在跑可忽略"；user 不主动说要消化 → **不动**这些文件，直接推进 v0.1 publish 路径（NPM-003）。

---

## 5. 已知 Bug / 不确定项

| 项 | 状态 | 处理 |
|---|---|---|
| INFRA-F27 修复后 `audit:icon-fill-currentcolor` rule 是否需扩展到其它 hex（如 #353535）? | 当前 rule 只检 `#dbdbdb`，executor 与之对齐；其它色保留为设计师意图硬编码 | 等用户报视觉问题再决定；非阻塞 |
| `figma-data/published/icons/manifest.json` build 后 timestamp 刷新 | 每次 build 产生 1 行 dirty，本质 INFRA-F26 范围（timestamp idempotence） | 不阻塞 publish；忽略 |
| 旧 next-session pickup（2026-05-09）archive 后是否影响历史可追溯 | 已 `git mv` 到 `_plans/archived/`，git history 完整 | 无影响 |
| 60 unpublished cleanup 范围未定义 | Phase X.4.2 复盘提及但未展开 | review §7.1 标 META-F27-v2 候选，与 NPM 链路解耦 |

---

## 6. Out-of-scope（不在 v0.1 路径，按需做）

- **CANONICAL-006** Pagination figma alignment refactor — prompt 已写，等 fire；可 v0.1 后做
- **INFRA-F20** visual baseline (Playwright) — review §6 建议 NPM 链路后做
- **INFRA-F21** pre-commit hooks — 依赖 F20 + audit upgrade
- **INFRA-F24** page theme injection 范式统一 — 双轨当前可生存
- **INFRA-F25** audit suite formalization — 已起步，完整化与 F21 一起
- **INFRA-F26** extract timestamp idempotence — commit cap 噪音问题，非阻塞
- **6.3** 删 Notification.success/type — 未启动；post-v0.1
- **6.4** 新增运行时能力 — 未启动；post-v0.1
- **BRIDGE-MOCKUP-001/002/003** 库债 — 设计师 owner
- **A6** package.json 补 `audit:page-t2` 等缺失 npm script alias — 可任意 session 顺手做
- **A7** docs/internal 43+ 历史 report 挪 _reports/ — 可任意 session 顺手做

---

## 7. 文件位置速查

| 我要看 | 路径 |
|---|---|
| 当前 backlog | [`backlog.md`](../backlog.md) |
| CHANGELOG（NPM-001 落地） | [`../../../CHANGELOG.md`](../../../CHANGELOG.md) |
| changesets 配置 | [`../../../.changeset/config.json`](../../../.changeset/config.json) |
| NPM-001 prompt（已 fire） | [`../_prompts/npm-001-changelog-spec.prompt.md`](../_prompts/npm-001-changelog-spec.prompt.md) |
| NPM-002 prompt（已 fire） | [`../_prompts/npm-002-install-quickstart.prompt.md`](../_prompts/npm-002-install-quickstart.prompt.md) |
| NPM-003 prompt（已 fire，一步到位）| [`../_prompts/npm-003-publish-workflow.prompt.md`](../_prompts/npm-003-publish-workflow.prompt.md) |
| INFRA-F27 prompt（已 fire） | [`../_prompts/infra-f27-build-icon-dist-currentcolor-fix.prompt.md`](../_prompts/infra-f27-build-icon-dist-currentcolor-fix.prompt.md) |
| Publish workflow | [`../../../.github/workflows/publish.yml`](../../../.github/workflows/publish.yml) |
| Release 流程指南 | [`../../RELEASING.md`](../../RELEASING.md) |
| 系统性 review（2026-05-09） | [`../_reports/systematic-review-2026-05-09.md`](../_reports/systematic-review-2026-05-09.md) |
| AGENTS.md | [`../../../AGENTS.md`](../../../AGENTS.md) |
| Mockup 硬约束 | [`../mockup-conventions.md`](../mockup-conventions.md) |
| 库组件目录 | [`../figma-component-catalog.md`](../figma-component-catalog.md) |
| Code conventions (untracked 待 commit) | `../code-conventions.md` |

---

## 8. 元说明

- **本文件生命周期**：v0.1 publish 4/4 阻塞已全 ✅（NPM-003 commit `520bb15a`）— **user 跑 §3 第 1 步 3 行命令触发 publish 后，本文件按 §3 第 2 步挪 `_plans/archived/`**；改写顺序见 [`archived/next-session-pickup-2026-05-09.md`](archived/next-session-pickup-2026-05-09.md) §6 元说明同款
- **如果新 session 决定不按本顺序做**：在新 session 重写一份覆盖本文件（保留时间戳后缀），不要在本文件里改
- **本 handoff 不是 prompt**：是 plan owner 给下个 session 的 plan owner（自己或换人）的 onboarding 文档，不直接喂 executor
