browser-screenshot-diff について
browser-screenshot-diff は、記録済みのブラウザーセッションをステップごとに比較するスキルです。UI の回帰テストやフロー検証に使え、スクリーンショットとアクセシビリティスナップショットを照合し、再生可能な結果を保存します。
主な機能
- 01step-id によるステップ照合
- 02スクリーンショットのピクセル比較
- 03アクセシビリティスナップショットの差分
- 04差異箇所と類似度の報告
- 05再生可能な差分結果の保存
活用シーン
- 01UI 変更後の視覚的回帰確認
- 02browser-replay と元セッションの一致検証
- 03フォームフローの A/B 版比較
MCP 対応
ローカル保存された RVF アーティファクトを扱い、browser_screenshot_diff MCP ツールは提供しません。必要に応じてライブ検証にのみ browser_eval を使います。
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill browser-screenshot-diffインストール後、Claude Code で/browser-screenshot-diffを入力して読み込まれたか確認します。
詳細
ブラウザーのスクリーンショット差分
記録された2つのセッションをステップごとに比較します。セッションAの各ステップをセッションBの同じ step-id に対応付け、キャプチャされたスクリーンショットとアクセシビリティスナップショットの差分を取り、最初の相違点と全体の類似度スコアを報告します。
使用する場面
- UI変更後のビジュアルリグレッションテスト(変更前と変更後を記録して比較)。
browser-replayの実行結果が、許容範囲内で親セッションと一致することの検証。- 同じフォームフローの2つのA/Bバリアントの比較。
手順
- 両方のRVFコンテナーを特定します:
npx -y [email protected] rvf status <session-id-a>.rvf npx -y [email protected] rvf status <session-id-b>.rvf - 両方の軌跡を読み込みます。
trajectory.ndjsonから読み込み、それぞれについてstep-id → (screenshot_path, snapshot_path)のマップを作成します。 step-idでステップを対応付けます。片方にしか存在しないステップにはunmatchedのフラグを付け、相違度スコアに加算します。- ピクセル差分(
--mode pixel|both):各ステップの2つのPNGを比較します。mse、psnr、および最大の差分クラスターのバウンディングボックスを報告します。しきい値の既定値は0.02(ピクセルの2%)です。 - DOM差分(
--mode dom|both):アクセシビリティスナップショットをノードごとに比較します。追加、削除、変更されたノードと、それぞれのアクセシブルな名前を報告します。 - 全体の類似度:対応付けられたステップの加重平均を算出し、ステップの所要時間を重みとして使用します。判定結果は新しい
findings.mdに記録し、新しいRVFコンテナーに保存するため、差分自体を再生できます。 - 差分の判定結果を保存します。両方のソースIDのタグにある
browser-sessionsに保存し、今後の検索で「セッションXと差分を実行した」ことが見つかるようにします。
注意事項
- ピクセル差分は、フォントヒンティング、アンチエイリアス、スクロールバーの位置に影響されます。両方のセッションでビューポートを固定してください。
- Playwrightのアクセシビリティツリーを使ったDOM差分は、HTML差分より安定しています。こちらを優先してください。
- このスキルは動的コンテンツ(時計、広告)には対応していません。フィールドマップに無視する領域を追加するか、差分を取る前にスナップショットを前処理してください。
browser_screenshot_diffMCP ツールは計画されていません(ADR-0001 §7)。このスキルはローカルに保存されたRVFアーティファクトを対象に動作し、ライブ検証にはbrowser_evalのみを使用します。
コメント
Markdown 対応