# 工单 Lane B — KAP 无限画布：前端交互与信息架构审计

## 0. 任务性质
**只读审计批，非修码批。** 产出 = 审计报告 markdown 文件，唯一允许写入 = 报告文件本身。
最终目标：画布前端是 Kai 的日常创作驾驶舱，也是 KMC 成片验收、KGR 盲选终审的唯一交互面。所有发现要服务于「Kai 高效做创作决策」与「KMC/KGR 工程目标的落地效率」。

## 1. 背景已知事实（实测锚点，直接采用勿重新推导；与实探冲突处以实探为准）

- 画布前端源码：`/data/workspace/kais-aigc-platform/packages/infinite-canvas/src/`（183 个 ts/tsx，~2.7MB）
  - 状态：`store/canvasStore.ts` 1207 行（zustand）、`store/variantOps.ts`、`store/qcVerdict.ts`、`store/gateStore.ts`
  - hooks：`useLayout.ts` 456行、`useCanvasSocket.ts` 300行、`useNavHistory.ts`、`useCanvasPersistence.ts`、`useLod.ts`
  - 组件树：`components/`（nodes/ edges/ storyboard/ gate/ g15/ g16/ assetManager/ panel/ 等）+ `v3/`（adapter/lanes/serialize）
  - 时间轴：`components/StoryboardTimeline.tsx`（首尾帧三态策展、帧变体选择器）
- 部署态：`data/web/infinite-canvas/`（build 产物，经 `cp dist → data/web/` 部署）；构建 `npm run build`（vite）
- 服务在跑：:10588（生产，禁写入操作）；线上页面可用 GET 或无头浏览器只读查看
- Kai 的使用场景与既定 UI 纪律（作为审计基准）：
  1. 「高频动作首页直达，禁藏下钻抽屉」（0911 已做过 P1×4 直达改造：审核判定/变体选定/资产选定/成片终审，commit 3544c3b4）
  2. 「>20 镜三栏定版布局（左播放器/中判读上下文/右选镜列表），工厂纵向长页禁用」
  3. 「竖屏 9:16 图 CSS 用 contain 非 cover」
  4. 「审核页判定件跟镜走首屏」
  5. 盲选/评审页需 GT 参照板显性展示
- KMC 消费场景：画布时间轴点击分镜→播放 p11a 预览片段；首尾帧三态策展；审核判定回写（Gate B / review-gate）；变体选定（select-winner）
- KGR 消费场景：逆向资产（角色/场景/分镜/声纹）上画布做验收与迭代

## 2. 审计任务（C1-C6）

- **C1 状态管理健康度**：canvasStore.ts 1207 行单 store 的耦合分析——哪些 slice 已失控、selector 粒度导致的重渲染风险（找 `useCanvasStore(state => ...)` 整对象取用模式）、variantOps/qcVerdict/gateStore 与主 store 的边界是否清晰。
- **C2 高频路径走查**：从「打开画布→选项目→进时间轴→播放片段→做审核判定→选定变体」全路径，找仍然违反「首页直达」纪律的地方（藏抽屉/多层下钻/判定件不在首屏）；对照 commit 3544c3b4 已完成的 P1×4，指出漏网的高频动作。
- **C3 StoryboardTimeline 深审**：首尾帧三态（选定/待选/淘汰）策展交互、帧变体选择器、>20 镜时的性能（是否虚拟滚动？11485 节点规模下的渲染策略）、视频播放链路（firstFrameUrl/lastFrameUrl/clip_path 缺失时的降级 UI）。
- **C4 数据契约对齐**：前端 adapter（v3/adapter.ts）与后端 save-v2/load-v2 的字段契约——前端正交假设与后端响应形态不匹配处；useCanvasSocket 的实时事件 vs 轮询的竞态。
- **C5 错误态与加载态覆盖**：加载失败/空项目/网络断开的 UI 降级；ErrorBoundary 的覆盖面。
- **C6 改进建议**：每条标注服务对象（Kai 交互效率 / KMC 验收效率 / KGR 终审效率 / 平台健康）与成本（S/M/L）。

## 3. 红线（违反=交付作废）

1. **绝对只读**：禁改仓内文件；禁 `npm run build`（会在仓内产生产物）；禁 POST/PUT 任何 API；禁 sqlite 写。
2. 允许：读源码、GET 端点、无头浏览器只读打开线上页面观察（若环境可用；截图只许存 /tmp/kap-canvas-review/）。
3. 唯一写入 = `/tmp/kap-canvas-review/report-B.md`。

## 4. 输出契约

报告写 `/tmp/kap-canvas-review/report-B.md`，结构：
1. 执行摘要（≤200 字 + P0 清单）
2. 问题清单：P0/P1/P2，每条 = 现象 → 证据（文件:行号）→ 根因 → 对 Kai/KMC/KGR 的影响 → 修复建议（成本 S/M/L）
3. 「首页直达」纪律合规表：全高频动作 × 合规状态
4. 改进建议（标注服务对象）
5. 验证方式（operator 独立复核路径）
6. 硬性证据约束：所有结论引用文件:行号或实测输出；不确定标「待验证」。结尾附 ≤300 字摘要。
