CI 组件截图基线调查
从 CI 检查结果和截图制品中调查组件截图差异。
技能明确指出基线由外部 Azure 截图服务管理,并提供按 CI artifact 下载的路径;但未说明数据流、访问权限、敏感截图处理、用户确认、回滚或提交安全边界。描述声称会“commit”基线,而正文明确说无需手动更新,存在权限与行为边界不清,因此扣分。
正文步骤较短且下载命令具体,但依赖已认证且可用的 gh CLI、GitHub 权限和有效 run-id,未说明缺失 artifact、权限失败、网络失败或比较失败时的诊断与恢复。顶部描述与正文关于是否提交基线相互矛盾,静态证据不足,且无专属测试,因此不超过静态上限。
触发条件和主要场景写得清楚:CI 报告截图差异时调查组件截图;但输入、输出、非适用范围、比较工具和后续决策标准不完整。依赖 GitHub CI、GitHub CLI 及海外 Azure 服务,可能影响中国大陆网络环境,因此扣分。
名称和场景基本匹配,结构简洁,并说明基线存储迁移和 Git LFS 变化;但没有安装说明、CLI 版本、参数约束、示例输出、FAQ、限制、版本/变更记录或明确维护责任。仓库上下文提供 MIT 许可证和 Microsoft 来源,但不能弥补技能文档治理信息不足。
可帮助用户下载 CI 原始截图进行人工调查,但不能完成描述所称的“更新并提交”任务;没有给出本地比较方法、判定标准或修复/接受流程,结果仍需较多人工工作,边际价值有限。
技能提供了可审计的命令和外部服务说明,仓库上下文也说明 CI 管理截图;但未提供与该技能关键路径对应的专属 workflow、测试、固定服务响应或可复现输出,且本评估未执行任何步骤,因此仅给有限静态证据分。
- 技能元数据与正文对“提交基线”是否仍需执行存在直接矛盾,使用前应确认实际目标是调查 artifact 还是修改仓库。
- 命令依赖 gh 认证、有效 run-id、GitHub artifact 权限及 Azure 服务可达性;未提供失败诊断或大陆网络替代方案。
- 下载的截图可能包含项目代码或界面数据,文档未说明存储、清理或敏感信息处理要求。
它能做什么 & 适用场景
这个技能用于调查组件截图测试发现的视觉差异,并处理 CI 运行中的截图制品。当前截图基线不再存储在仓库中,而是由外部截图服务管理,服务地址为 hediet-screenshots.azurewebsites.net。合并到 main 分支后,合并提交中的截图会自动成为新的基线,因此通常不需要手动更新或提交基线图片。它适合需要核对 PR 截图差异、下载原始截图并在本地比较的开发流程。
当 Checking Component Screenshots GitHub Action 检测到变化时,指导用户查看 PR 评论中的前后截图对比;使用 gh run download <run-id> --name screenshots --dir .tmp/screenshots 从 CI 运行中下载名为 screenshots 的制品;说明可对下载到 .tmp/screenshots 的完整截图集合进行本地比较。它不会要求把基线图片写回 test/componentFixtures/.screenshots/baseline/,也不会使用 Git LFS 存储截图。
- 组件测试触发 `Checking Component Screenshots` Action 并在 PR 中报告差异时,开发者查看前后截图以判断变化是否合理。
- CI 截图结果需要脱离 PR 评论进行细查时,开发者下载 `screenshots` 制品并检查原始捕获图片。
- 合并前需要确认组件视觉变化时,维护者在本地比较 CI 下载的完整截图集合。
- 团队希望继续维护截图测试、但不想在 Git 仓库中保存基线图片时,采用外部截图服务管理流程。
优缺点一览
- 明确使用 PR 评论中的前后对比和 CI 截图制品进行调查。
- 截图基线由外部服务按提交 SHA 管理,仓库不再保存基线图片。
- 不再依赖 Git LFS 存储截图。
- 提供了可直接执行的 GitHub CLI 制品下载命令。
- 它主要提供调查流程,不包含截图差异修复或本地比较工具的具体命令。
- 需要能够访问 CI 运行、PR 评论和外部截图服务的网络环境。
- 需要 GitHub CLI;源材料没有说明认证、权限配置或失败重试方式。
- 没有说明外部截图服务的价格、可用性保证或数据保留政策。
如何安装
技能位于 VS Code 仓库的 .github/skills/update-screenshots/SKILL.md。可先执行 git clone https://github.com/microsoft/vscode.git,然后将该技能目录保留在 .github/skills/update-screenshots/。源材料没有说明具体 Agent 客户端的注册、安装或配置步骤,也没有列出额外的软件包安装命令。
如何使用
将其作为子代理运行,并在组件截图 Action 报告差异时触发,例如:请调查这次 CI 组件截图差异,并下载截图制品进行本地比较。 先查看 CI 发布的 PR 评论;需要原始图片时执行 gh run download <run-id> --name screenshots --dir .tmp/screenshots。不要手动提交截图基线:源材料说明合并到 main 后,合并提交会自动成为新的基线。
对比同类
与源材料描述的旧流程相比,截图不再通过仓库中的 test/componentFixtures/.screenshots/baseline/ 或 Git LFS 保存,而是由外部截图服务按提交 SHA 管理。该技能保留 CI 制品下载和本地调查步骤,但不再要求手动提交新的基线。