mcpField
B
browser-replay

browser-replay

github.com/ruvnetテスト・品質80.0k720 回インストール今日更新
リポジトリ

browser-replay について

browser-replayは、記録済みのブラウザーセッションの軌跡を再実行するスキルです。UIの回帰確認、記録した不具合の再現、実行結果の比較に使え、セレクターの復旧と一致率による判定にも対応します。

主な機能

  1. 01記録済みブラウザー軌跡を読み込む
  2. 02ブラウザーMCPツールで操作を再生
  3. 03不一致時に類似セレクターを再試行
  4. 04系譜を追跡して再生を記録
  5. 05一致ステップ率を算出して判定

活用シーン

  1. 01デプロイ後にUIフローを回帰テスト
  2. 02過去のセッションで記録した不具合を再現
  3. 03同じブラウザーフローの実行を比較
  4. 04分岐前に親セッションを再生

MCP 対応

ブラウザーを開き、browser_click、browser_fill、browser_evalなどのMCPブラウザーツールで記録済み操作を実行します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ruvnet/ruflo --skill browser-replay

インストール後、Claude Code で/browser-replayを入力して読み込まれたか確認します。

詳細

ブラウザー再生

記録されたセッションの軌跡を再実行します。回帰テストや決定論的な再実行に使用し、browser-record と browser-selectors の組み合わせで実際に再生可能なものが生成されることを検証するための経路です。

このスキルは、v0.2.0 アーキテクチャの根幹となる前提です。 ADR-0001 Verification §4 では、提案が Proposed から Accepted に移行する前に、ドリフトの傾向が異なる10個のサイトで再生成功率が80%以上であることを求めています。再生が不安定な場合は、失敗パターンを findings.md に記録し、ADR の上位担当者に報告してください。

使用する場面

  • デプロイ後の UI フローの回帰テスト。
  • 過去のセッションで記録されたバグの再現。
  • browser-screenshot-diff 用に、同一フローの2回の実行を比較する場合。
  • セッションをフォーク(/ruflo-browser fork)し、変更を加える前に親セッションを再生する場合。

手順

  1. 元のセッションを特定します:
    npx -y [email protected] rvf status <session-id>.rvf
    
  2. 軌跡を読み込みます:
    Read .../trajectory.ndjson
    
    各行は {ts, action, args, selector, result} です。
  3. mcp__plugin_ruflo-core_ruflo__browser_open を使って新しいブラウザーを開きます(対象 URL は元の URL、または --url で指定した URL です)。
  4. 軌跡の各ステップについて、記録された引数を使って対応する MCP ツール(browser_click、browser_fill、browser_eval など)を実行します。
  5. セレクターが見つからない場合、すぐに失敗とせず、同じ <host>:<intent> に対して埋め込みが類似するセレクターを browser-selectors 名前空間で検索し、1回だけ再試行します:
    npx -y @claude-flow/cli@latest memory search --namespace browser-selectors \
      --query "<host> <intent>" --limit 5
    
  6. 再生実行用に新しい軌跡を記録します(新しい RVF コンテナーを割り当て、rvf derive で系譜を追跡します)。
  7. 判定:一致したステップ数と全ステップ数の比率を集計します。デフォルトの許容しきい値は0.85です(--tolerance で設定可能)。判定結果は findings.md に記録します。

注意事項

  • Browserbase は再生機能を明示的に提供していません(rrweb のセッション再生は非推奨になりました)。セレクターの埋め込みによる復旧に期待しているため、ドリフトが大きいサイトではノイズが発生することを想定してください。
  • ネットワークの非決定性(タイミング、コンテンツの変動)により、誤って失敗と判定されることがあります。予想される変動を注入するには --mutate を使うか、フィクスチャに固定してください。
  • ビジュアル差分を取得するには、親セッション ID を指定して browser-screenshot-diff に連結します。
  • セレクターの復旧にステップごとに1回を超える再試行が必要な場合は、記録してください。これは再生ではなく、サイトを再記録する必要があることを示しています。

コメント