# 验证记录 · 点阵 Lattice 0.2

> 开源说明：这是开发过程中的验证日志。文中引用的截图、JSON 证据和导出视频没有随仓库发布。


日期：0.1 于 2026-09-27，0.2 于 2026-09-28 · 环境：Windows 11，Node 24.16.0，无头 Chrome（ANGLE / D3D11，Intel Arc 140T），three 0.186.1

## 已运行的检查与实际结果

| 检查 | 命令 | 结果 |
| --- | --- | --- |
| 单文件构建 | `node build.mjs` | 通过：`dist/lattice-showcase.html` 661 KB（three.js 已打包，方向契约注释保留在产物中） |
| 单文件离线打开 | `node tools/check-dist.mjs`（file:// 打开 dist） | 通过：65,536 点初始化，43 个 3D 标签，控制台 0 错误 |
| 交互冒烟测试 | `node tools/smoke.mjs`（需先 `node serve.mjs 4187`） | 44/44 通过（0.2 新增：拖拽不选中文字、首屏随页面 1:1 上移、巡游随滚动逐个访问并显示卡片、证明树到达即生长且进度条到 100、连播随滚动切换到后面的证明）。0.1 已有：按住熔化 → 松开切到下一集、Next set、瀑布悬停出卡片、点击节点生长证明树、标签页点击与方向键、开关、滑块驱动进度、Ctrl+K 执行命令、消息、邮箱校验出错与恢复、页面无报错；以上全部在 `prefers-reduced-motion: reduce` 下再跑一遍 |
| 设计检测器 | impeccable `detect.mjs` 对 index.html / page.css / components.css / tokens.css | 0 条（期间修正：Geist 被判为过度使用字体，换成 Atkinson Hyperlegible Next；非令牌字号、圆角、颜色已归入 DESIGN.md 或改为令牌） |
| 桌面截图 1440×900 | `node tools/capture.mjs` | `outputs/captures/night-*.png` 与 `contact-sheet.png`（0.2，12 个场景）：首屏名字、洛伦兹、首屏上移、定理之瀑（悬停 MVT）、巡游第 19 个结果、证明树生长中与长成、连播转场中与下一棵、组件台两屏、证毕 |
| 手机截图 390×844 @2x | `W=390 H=844 node tools/capture.mjs` | `outputs/captures/m-night-*.png`：修正了名字与标题重叠、面板遮挡瀑布与树之后复查通过 |
| 三世界对比 | `WORLDS=night,paper,ultramarine node tools/capture.mjs` | `outputs/captures/{paper,ultramarine}-*.png`（用户据此选定 Night） |

## 0.2 变更（2026-09-28，按用户第二轮意见）

- 删除已否定的「符阵」目录及其索引、启动配置与记忆条目。
- 开关：未选中时为整条轨道内自由游离的气态点，选中时汇聚到右端并锁定成晶体（落位闪光）。
- 进度条：未完成部分为自由游离的气态点；每完成一段，点从气体汇聚到格点、闪光后固定。
- 首屏：点阵随页面 1:1 上移，名字不再压在文字下；离开后点才下落进入瀑布。
- 拖拽点场不再选中文字。
- 瀑布：原版保留，说明改为小而透明；新增「巡游」版本，随滚动按依赖顺序逐个悬停全部 43 个结果，无侧栏。
- 证明树：相机到达时开始生长，面板内新增进度条；新增「连播」，随滚动以半圈旋转转场依次展示 6 棵证明树。
- 复拍：`outputs/captures/night-*.png`（12 个场景）与 `m-night-*.png`（手机），修正了手机上连播 HUD 遮挡树与巡游卡片位置。

## 0.2.1 变更（2026-09-28，第三轮意见）

- 巡游改为 16 个关键结果、每两格滚轮（约 200px）一个。
- 开关与进度条的气体恢复平滑飘动（每个点沿各自的李萨如轨迹），不再是贴边抖动的随机游走；用胶片帧（`tools/filmstrip.mjs`）确认：开关汇聚→锁定闪光→晶体→融化回气体，进度条逐段从气体汇聚并锁定。
- 展示页与组件查看页中的演示会自动播放（大号「Phase」开关每 2.6 秒切换一次、进度条逐段自建再融化重来），一旦用户操作就停下。
- 冒烟测试 44/44（巡游步长随新间距调整）。
- `package.json` 版本号随后改为 0.2.1，与本节一致（源码未变）。

## 完成度审查（inline，未使用子代理）

按 impeccable 收尾审查流程在主线程内执行；工作区规则要求委派须由用户明确提出，因此没有使用独立审查子代理。

- 第一轮结论 **fix**，五项：双语 h2 的中文行呈现为眉标 → 改为同尺寸行内；按钮与命令里用 → @ ∿ 字符充当图标 → 换成点阵 SVG 与汉字键；页脚、命令提示、输入占位符用了 3.6:1 的淡色 → 提到 7:1；结尾没有回到点场 → 新增「证毕」相机站点，用点阵拼出 QED；首屏到瀑布之间点场没有「倒入」→ 新增倾泻：向下滚动时点失去束缚、受重力下落，相机稍后跟随。
- 复核：五项均在复拍中可见解决，未发现新回归。结论 **ship**。0.2 中倾泻改为首屏随页面上移之后才开始（见 `night-2b-scroll.png`），当时的倾泻中途帧已被新截图取代。

## 未验证 / 已知限制

- 未在 iPhone、Android 实机和 Safari 上运行；手机效果只来自 Chrome 的移动端模拟。
- 帧率：内置浏览器面板在窗口未聚焦时会把页面节流到约 4 fps，因此未取得可信的实时帧率数据；自适应分辨率逻辑已改为忽略 >100 ms 的节流帧。
- 声音为程序合成，未经人工试听验收。
- 视觉方向经用户从三世界对比图中选定；最终视觉验收仍待用户在实时页面上确认。
- 字体依赖 Google Fonts；离线时回退系统字体。
