Files
cc-web/.codex/skills/create-cc-web-theme/references/acceptance-checklist.md
2026-07-18 10:14:38 +08:00

5.3 KiB
Raw Blame History

cc-web 主题完成验收清单

把本清单作为完成门禁。任一强制项未验证时,保持任务未完成并说明原因。

1. 范围与隔离

  • 新主题使用独立稳定 ID未覆盖现有主题。
  • THEME_OPTIONS、bootstrap、持久化和 picker 的语义一致。
  • 现有主题仍可选择/迁移,并通过其专项回归。
  • 所有专属 selector 都限定新主题 ID。
  • 未修改主题无关业务逻辑、交互或大文件格式。
  • 已复核相关脏文件,没有覆盖用户或并行任务改动。

2. 源素材与派生资产

  • 概念图、完整参考、背景和素材板已归档到任务目录。
  • 归档文件与原始输入 hash 已核对。
  • 生成脚本和 manifest 已保留且可重放。
  • 派生资产记录源文件、裁剪框、规格、尺寸和用途。
  • 透明 PNG 无棋盘格、黑边或被裁掉的尖角。
  • 图标 alpha 主体尺寸和光学中心符合控件层级。
  • 所有运行时资产位于 public/assets/themes/<id>/
  • 主题实现与 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 调整 <theme>

timeout 60s node --check public/app.js
timeout 60s node --check scripts/regression.js
timeout 60s npm run regression -- --target <theme>-theme
timeout 60s npm run regression -- --target <related-existing-theme>-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:<port>/ 确认本地服务。
  • 如远程浏览器不能访问 localhost使用 hostname -I 中的 11.144.144.* 地址。
  • CSS、JS 和每个新增资产请求返回 200。
  • 浏览器实际加载的 cache-busted URL 是最新版本。
  • 使用 Firefox/Playwright/Selenium 读取关键 computed style 和几何值。
  • 浏览器截图或实测记录已写入任务进度。

不要仅因浏览器访问 127.0.0.1 失败就判断服务未启动。

9. 交付与保留

  • 列出新主题 ID、显示名和资产目录。
  • 列出修改文件和未触碰的旧主题边界。
  • 列出源素材归档、manifest 和提取脚本路径。
  • 报告真实浏览器结果和多视口数据。
  • 报告专项/全量回归结果。
  • 说明任何未验收状态或环境限制。
  • 未删除概念图、素材板、切片或生成脚本。

只有工程检查、真实浏览器视觉和参考图对照全部满足后,才能把主题标记为完成。