# 对外分享面（上手页）— 当前态导航

> **状态：这条线已 ship，本文件不再是待办手册。** 2026-08-11 改写。
> 原文是「动笔前」的操作手册，其中 §2 的相撞判定（建议「分」）已被 owner 当日改判「合」、
> §3 的两个待拍问题已拍完、§5ⓑ 的扇面漏已闭合 —— 三段过期指令挂在每 session mandatory 读物上，
> 故就地改写为当前态，**不保留原结构**。完整由来 / 实测数字 / 两次取证失误
> 见 [STATUS-CHANGELOG](../STATUS-CHANGELOG.md) 第 1、3 条（本文件不复述）。

---

## 1. 已落地（别重做）

**交付面（2026-08-13 起变了，别照旧文找）** = **站内真页面** `playground/docs/pages/OnboardingPage.vue`
→ 站上 `…/playground-dist/#/guide/onboarding`（写代码那半 = `ForDevelopersPage.vue` →
`#/guide/for-developers`），进左侧「上手」组、有段落锚点、主题跟随、站内搜索可搜，**免登录可读**。
老地址 `…/playground-dist/onboarding.html` **仍在**、已缩成重定向壳（36 条历史 id 逐条实测落到预期段）
—— ⛔ **它不再是正文真源**，别去那儿改内容。设计与判据见
[`specs/2026-08-13-onboarding-in-site-page-design.md`](../../superpowers/specs/2026-08-13-onboarding-in-site-page-design.md)。
仓库侧 `DESIGNING_WITH_TVU.md` / `CONSUMER_ONBOARDING.md` / `ONBOARDING_NEW_MACHINE.md` 三份仍是指针，
已同步改指页面组件。

⛔ 别重做的具体项：viewport/charset meta · 报头对齐 · 死变量 `--ink-3` · 字号档收敛 ·
身份直达链 + `?view=` URL 同步 · 「做界面记住三条」抽成 `#three` · 令牌自检前移 · 深度目录 ·
Button prop 节选说明 · 图标出口改 `manifest.json` · **路线/路径代号已全部改为场景名**
（看文档站 / 用 Figma 出稿 / 不用 Figma 出稿 / 写代码 / 装源码 / 装 npm 包）+ 9 条旧 id 重定向。

## 2. owner 已拍板（别重开）

| 决策 | 内容 |
|---|---|
| 合还是分 | **合入口**。读者状态不同（还没装 / 装好了）本来支持「分」，但真正的病是可达性：两份都在私有仓库里 |
| 内网地址 | **不必删减**，安装流程整段上站。依据 = 实测发这一页不会让私有仓库变公开（clone 仍要授权） |
| 语言 | **先只出中文**，英文等真有人要再说 |
| 代号 | **不要代号，直接看名字就知道是什么场景** |
| 内联边界 | 操作步骤（装什么 / 跑哪条命令 / 怎么自测）可内联；**规则正文**（间距 / 命名 / token / 组件 API）不内联，要渲染不要手抄 |

## 3. 仍开着的三条（owner 已确认维持不动，未立 entry）

- **ⓐ Logo 的公开出口来自 `./components/Logo/Logo.vue` 而非 `src/canonical/`** —— owner 确认维持不动。
  2026-08-11 查清并已就地登记在 [`scripts/audit-export-coverage.mjs`](../../../scripts/audit-export-coverage.mjs)
  的 `INTERNAL_ALLOWLIST` 注释里（连同一处**会误导的旧措辞的订正**）：被闸豁免的是孤儿
  `src/canonical/Logo.vue`（故障注入实测，闸删掉该豁免后逐字点名它）；而 base
  `src/components/Logo/Logo.vue` **确实在 `src/index.ts` 里**导出 + 全局注册，是该文件里唯一一个
  从 `src/components/` 而非 `src/canonical/` 直出的公开组件 ⇒ npm Vue 消费者拿到 base，
  少掉 canonical 包装加的 `data-figma-component="Logo"` 溯源属性与 `:host` 对齐修复。
  ⛔ 别再把它当「新发现」重报，也别据旧措辞断言「npm 包里没有 Logo」。
- **ⓑ 远端 `_ds_manifest.json` 的 `components[]` 36 条 `sourcePath` 全悬空** —— 2026-08-11 live 复核成立
  （远端无 `components/general/`、全项目零 `.jsx`）。**不是缺陷、无运行时消费方、已裁定不派工**：
  真源在 [`.design-sync/NOTES.md` §6](../../../.design-sync/NOTES.md) 与
  [`_handoffs/2026-07-30-sync-b-retirement-classification.md`](../_handoffs/2026-07-30-sync-b-retirement-classification.md) §组 2。
  ⛔ 别再为它立第 4 份副本或新 backlog entry。
- **ⓒ 本文件自身** —— 已从「手册」改成「导航」。`_plans/` 里另有数份任务已 ship 的 pickup，
  统一归档是独立的一件事（`audit:plan-lifecycle` 只管可达性，管不到「引用是历史叙述还是在飞声明」）。

## 4. 下一轮起手

这条线**没有待开工项**。要接新活去 [`STATUS.md`](../../STATUS.md) §Active 后续工作 与 §一·等 owner 拍板。
⚠️ SessionStart hook 用 `ls -t` 取 `_plans/` 里 mtime 最新的一份当 L-core#3，
所以**本文件会被当成「当前 sprint 操作手册」读** —— 上面第 4 节这句话就是给那个读者的：不必按本文件开工。

## 5. 这条线特有的取证纪律（别处没有，值得留）

- **本地起服务取渲染证据必须送 `charset=utf-8`** —— `python3 -m http.server` 不送，整页按 Latin-1 解码成乱码，
  而乱码毁掉 CJK 可断行性，会**量出不存在的布局缺陷**（本轮真踩过，那批数字全作废）。
  一般化：给取证工具做阴性对照时不只对照 404/200，**还要对照响应头**。
- **锚点 / 滚动类断言的两个标准陷阱**：① 复用同一个 page 改 hash 是**同文档导航，内联脚本不重跑** ⇒ 每个 case 用全新 page；
  ② `scroll-behavior: smooth` 会让采样落在动画中途 ⇒ 判据要「连续 3 次 `scrollY` 不变」。两条都会把好功能判成坏的。
- **STATUS S1 有 3000 B 上限**，写前跑 `pnpm run audit:doc-shape` 看当前占用；被并行线整段替换时**先核 CHANGELOG 再追加补指针**，别顶掉别人的落地结论。
- ⛔ **别手工往 `playground-dist/` 塞** —— `emptyOutDir: true`，改源后跑 `pnpm build:playground`。
  碰 `.vue`/`.css`/`playground-dist` 需 `VISUAL_COMMIT_APPROVED=1`，**AI 不自设**。
