用途:把浏览器或 Web UI 的交互演示录制成短小、真实的本地 GIF;仅当任务要求把 GIF 附加到 Pull Request 时,才在最后一步通过 assets 分支发布并嵌入 PR 正文。
主要能力:使用仓库自带的浏览器控制技能,否则使用仓库声明的 Playwright 依赖;用捆绑编码器保证时序、尺寸和体积可重复。录制只产出帧图片和一个本地 .gif,不改动远端状态;发布是独立步骤,不触碰 PR 自身分支。
使用方式:先按 PR 暂存应用,要求工作区干净,用 git rev-parse HEAD 记录提交,按该树构建并启动服务器,使用全新状态根、工作区、会话和隔离浏览器上下文。选择 3 到 6 个状态讲一个故事,帧命名如 00-initial.png,存到被 gitignore 的截图目录(如 .playwright-mcp/),先 mkdir -p 创建子目录。每帧截图前等待具体 UI 条件,定位器需唯一匹配,避免用固定延迟。编码需 python3、ffmpeg、ffprobe,先单独一行 export GIF_SKILL_DIR=/absolute/path/to/this/skill,再运行 python3 "$GIF_SKILL_DIR/scripts/encode_gif.py" 帧目录 输出.gif --durations 1.5,1.5,1.5,3.5 --fps 10 --max-width 1200 --colors 128。最后读取编码器 JSON 摘要并目视检查编码后的 GIF。
适用场景:需要为改变用户可见 GUI 行为的 PR 提供演示证据,或录制可复现的 UI 交互演示。
限制:不得用 fixture 查询、mock 传输、合成事件注入或测试专用钩子替代真实服务器与真实凭据;凭据不可用时应报告限制。不得读取或暴露凭据值。发布时 GIF 只能放在专用 orphan assets 分支,禁止提交到 PR 分支或长期分支,禁止删除、重写或强推 assets 分支。嵌入需使用带 ?raw=true 的 raw blob URL。若缺少 ffmpeg 或 ffprobe,应报告依赖而非擅自安装。其他细节暂未提供。