# cc-web 主题完成验收清单 把本清单作为完成门禁。任一强制项未验证时,保持任务未完成并说明原因。 ## 1. 范围与隔离 - [ ] 新主题使用独立稳定 ID,未覆盖现有主题。 - [ ] `THEME_OPTIONS`、bootstrap、持久化和 picker 的语义一致。 - [ ] 现有主题仍可选择/迁移,并通过其专项回归。 - [ ] 所有专属 selector 都限定新主题 ID。 - [ ] 未修改主题无关业务逻辑、交互或大文件格式。 - [ ] 已复核相关脏文件,没有覆盖用户或并行任务改动。 ## 2. 源素材与派生资产 - [ ] 概念图、完整参考、背景和素材板已归档到任务目录。 - [ ] 归档文件与原始输入 hash 已核对。 - [ ] 生成脚本和 manifest 已保留且可重放。 - [ ] 派生资产记录源文件、裁剪框、规格、尺寸和用途。 - [ ] 透明 PNG 无棋盘格、黑边或被裁掉的尖角。 - [ ] 图标 alpha 主体尺寸和光学中心符合控件层级。 - [ ] 所有运行时资产位于 `public/assets/themes//`。 - [ ] 主题实现与 manifest 不包含远程图片 URL。 ## 3. DOM 与组件实现 - [ ] 静态 `index.html` 与动态 welcome 构建函数结构同步。 - [ ] 项目名、Agent、会话标题等动态内容没有写死。 - [ ] 新主题图标未与原生文字、SVG、图片或旧伪元素重叠。 - [ ] 新会话加号、下拉、操作菜单和设置入口仍可见、可点击。 - [ ] 菜单展开不被父级 overflow 裁切。 - [ ] 固定框与动态尺寸框使用了合适的切片策略。 - [ ] 输入框单行、多行、聚焦、拖拽和特殊模式都没有双边框或错位。 - [ ] 工具块、协作卡、弹层和消息嵌套层没有意外不透明底色。 - [ ] `prefers-reduced-motion` 能关闭主题动画/过渡。 ## 4. 视觉对照 ### 参考视口 - [ ] 在参考图原始尺寸或同等宽高比下截图/检查。 - [ ] 背景主体、人物、纹理和安全区与参考构图一致。 - [ ] 侧栏、顶栏、消息区和输入区比例无明显偏差。 - [ ] 面板层级清楚,没有全页面卡片化或遮罩过暗。 - [ ] 边框轻重、切角范围和阴影符合参考层级。 - [ ] 主文字可读,用户指定的颜色与对比度已满足。 - [ ] 没有重复图标、莫名边框、虚线、色块或“一坨”叠层。 ### 几何证据 - [ ] 主卡片中心与实际聊天画布中心误差可接受。 - [ ] 图标以 alpha 主体/光学重心居中,不只看画布。 - [ ] 文字与图标基线一致。 - [ ] 欢迎卡、输入框和菜单没有横向溢出或裁切。 - [ ] 记录关键 bbox、中心差、间距或 computed style。 ### 透明与磨砂 - [ ] 背景纹理在设计要求透明的层中实际可见。 - [ ] 外层气泡与内层工具块分别检查背景。 - [ ] blur 没有把背景细节抹成实心色块。 - [ ] computed style 的最终 background/backdrop-filter 来自预期 selector。 ## 5. 动态状态 - [ ] 新建空会话欢迎页。 - [ ] 当前项目名称/其他动态文案刷新正确。 - [ ] 短消息、长消息、代码块和工具调用。 - [ ] 用户/助手/系统/跨会话气泡。 - [ ] 单行与多行输入。 - [ ] 附件、笔记、队列、发送和停止状态。 - [ ] 会话 hover、active、操作菜单展开。 - [ ] 设置页、主题选择器、弹层和移动端侧栏。 ## 6. 多视口 至少检查: - [ ] 参考设计原始视口,例如 1672×941。 - [ ] 常规桌面,例如 1440×900。 - [ ] 窄屏,例如 500px 宽。 - [ ] 移动端,例如 390×844。 - [ ] 各视口横向溢出为 0 或有明确设计原因。 - [ ] 背景定位、侧栏宽度、输入框和欢迎卡在断点处连续。 ## 7. 自动化与静态检查 根据实际主题 target 调整 ``: ```bash timeout 60s node --check public/app.js timeout 60s node --check scripts/regression.js timeout 60s npm run regression -- --target -theme timeout 60s npm run regression -- --target -theme timeout 60s npm run regression git diff --check ``` - [ ] 新主题专项回归通过。 - [ ] 相关旧主题专项回归通过。 - [ ] 全量回归通过。 - [ ] JS 语法检查通过。 - [ ] `git diff --check` 通过。 - [ ] 回归覆盖注册、隔离、静态/动态 DOM、资产、响应式、对比度、reduced-motion 和 cache bust。 ## 8. 在线与浏览器校验 - [ ] 先用 `curl http://127.0.0.1:/` 确认本地服务。 - [ ] 如远程浏览器不能访问 localhost,使用 `hostname -I` 中的 `11.144.144.*` 地址。 - [ ] CSS、JS 和每个新增资产请求返回 200。 - [ ] 浏览器实际加载的 cache-busted URL 是最新版本。 - [ ] 使用 Firefox/Playwright/Selenium 读取关键 computed style 和几何值。 - [ ] 浏览器截图或实测记录已写入任务进度。 不要仅因浏览器访问 `127.0.0.1` 失败就判断服务未启动。 ## 9. 交付与保留 - [ ] 列出新主题 ID、显示名和资产目录。 - [ ] 列出修改文件和未触碰的旧主题边界。 - [ ] 列出源素材归档、manifest 和提取脚本路径。 - [ ] 报告真实浏览器结果和多视口数据。 - [ ] 报告专项/全量回归结果。 - [ ] 说明任何未验收状态或环境限制。 - [ ] 未删除概念图、素材板、切片或生成脚本。 只有工程检查、真实浏览器视觉和参考图对照全部满足后,才能把主题标记为完成。