SuperAPI AI 工具集

agh-ui-screenshot

测试与质量

查看项目

更新于 10-15 20:27

技能介绍

用途:为 AGH 运行时 UI 界面生成确定性 PNG 截图,覆盖 Storybook 隔离 iframe、提案 mock(docs/design/new-proposal/agh-refined-7.html)以及任意本地开发服务器 URL。因为 Chrome 内置 --screenshot 在 Storybook iframe 上会挂起、且会与字体加载产生竞态,本技能改为通过 chrome-launcher + chrome-remote-interface 显式驱动 Chrome 规避这两个问题。

主要能力与用法:先确认开发服务器可达,用 curl 检查 web/ Storybook(6006)与 packages/ui/ Storybook(6007),返回 200;不可用时分别在对应 workspace 运行 bun run storybook 启动并等待启动横幅。随后执行 bootstrap 助手 bash .agents/skills/agh-ui-screenshot/scripts/setup-workdir.sh /tmp/agh-ui-screenshot 准备工作目录。捕获 Storybook 时用 bun run .agents/skills/agh-ui-screenshot/scripts/list-stories.mjs http://localhost:6006 解析 story id。最后从工作目录运行 cap.mjs,参数为 --out、--width、--height、--wait、--shot,每对 --shot 输出一张 PNG。常用尺寸:1440×900 全路由,1680×1050 宽断点,1100×700 基础预览,320×800 折叠侧栏;--wait 2200 为经验下限,出现回退字体时增至 4000。捕获提案 mock 时需先启动静态服务器 python3 -m http.server 8765。

验证与限制:成功输出 saved,失败输出 FAIL 但脚本仍以 0 退出,需检查 FAIL 行;小于 20 KB 的 PNG 可疑,会遇到 Storybook“找不到 story”回退页。捕获超过 90 秒可能因 story 内 React 抛错挂起。bootstrap 失败可删除工作目录下 node_modules 与 bun.lock 重试;Chrome 僵尸进程可用 pkill 清理。其余症状先查阅 references/troubleshooting.md。