verify-ui について
verify-uiは、UI変更を完了として報告する前に、ヘッドレスChromeで検証する開発者やコーディングエージェント向けのプロジェクト別スキルです。設定、操作確認、スクリーンショット、テスト、証拠に基づく報告を案内します。
主な機能
- 01プロジェクト設定とサインイン方法の確認
- 02agent-browserによるヘッドレスChrome検証
- 03操作とUI状態の確認
- 04各ビューポートの撮影と目視確認
- 05コンソール、リクエスト、テストの確認
- 06証拠に基づく検証レポート
活用シーン
- 01UI変更を完了報告する前の確認
- 02対応ビューポートごとの動作検証
- 03再読み込み後の保存内容の確認
- 04プルリクエスト向けのエラーと証拠の記録
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ petem24/ skills --skill verify-uiインストール後、Claude Code で/verify-uiを入力して読み込まれたか確認します。
詳細
UI の検証
変更を完了したと報告する前に、agent-browser を使ってヘッドレス Chrome で自分で UI を確認してください。アプリの起動方法、使用する URL、サインイン方法、実行するテストはプロジェクトごとに異なりますが、以下のルールはどのプロジェクトにも適用されます。
1. プロジェクトのセットアップを確認する
プロジェクトの AGENTS.md(または CLAUDE.md)と、そこからリンクされている UI 検証ガイドを読みます。次の点を確認してください。
- このチェックアウトでのアプリの起動方法と、検証に使用する URL
- サインインするユーザー(
pnpm auth --listで確認できます) - プロジェクトがサポートするビューポートサイズ
- 変更した領域を対象とする既存のテスト
これらの情報がプロジェクトにない場合は、レポートでその旨を伝え、サインインせずにできる範囲で検証してください。
作業中のチェックアウトを起動することも検証の一環です。問題が障害となると判断する前に、起動を試み、ローカルで発生する問題を修正してください。別のチェックアウトに属するサーバーは停止しないでください。
2. ブラウザーを実行する
検証対象のチェックアウトから pnpm browser を実行します。DevSports のプロジェクトでは、バージョンが固定された devkit を通じて利用できます。ホスト設定とライブダッシュボードについては、devkit の README を参照してください。インストールされていない場合は pnpm browser:install でインストールします(Linux で Chrome のライブラリが不足している場合は --with-deps を追加してください)。固定バージョンで使えるコマンドは pnpm browser --help で確認できます。agent-browser 独自の upgrade コマンドは実行しないでください。
- タスクごとにセッションを 1 つ使用します。 一意の
AGENT_BROWSER_SESSION(例:<project>-<task>-<role>)を選び、すべてのコマンドに設定してください。シェルのエクスポート設定は、ツール呼び出しの間で引き継がれないことがあります。自分のセッションだけを終了し、close --allは絶対に実行しないでください。 pnpm authでサインインします。 開発用ユーザーは Clerk のテストユーザー(+clerk_testアドレス)で、メールアドレスやパスワード、シークレットは不要です。サインインコードは424242です。pnpm auth [user] --url "$APP_URL"を実行すると、アプリ自身の Clerk を通じてセッションにサインインできます。別のユーザーに切り替えるには、別のユーザーを指定して再度実行します。テストスイート向けにセッションを保存するには、pnpm auth --all --saveを実行します。手動でサインインするには、サインインページでテスト用アドレスを入力し、424242を入力します。pnpm authがないプロジェクトでは、AGENTS.mdに記載された独自のサインイン方法を確認してください。- オリジンは 1 つに統一します。 サインイン、ブラウジング、テストはすべて同じ URL に対して行います。セッションはオリジンをまたいで引き継がれないため、
localhostでサインインして Tailscale の URL で検証しないでください。 - 保存されたセッションは認証情報です。 出力、コミット、コピーをしてはいけません。実際のパスワード、コード、Cookie を求めてはいけません。また、個人用ブラウザープロファイルに接続してはいけません。
export AGENT_BROWSER_SESSION=<project>-<task>
pnpm auth --url "$APP_URL"
pnpm browser open "$APP_URL"
pnpm browser set viewport 1440 1000
pnpm browser snapshot -i
pnpm browser click @e3 # refs come from the latest snapshot
pnpm browser wait --text "Saved"
pnpm browser screenshot output/agent-browser/<task>-1440.png
pnpm browser console
pnpm browser errors
pnpm browser network requests
pnpm browser close
3. 変更を適切に確認する
- ページ遷移後や大きな変更を行った後は、最新のスナップショットを取得します。参照情報は古くなることがあります。
- ネットワークアイドル状態や一定時間のスリープではなく、テキスト、セレクター、URL など、UI の状態が見えるまで待ちます。Convex などのバックエンドは接続を開いたままにします。
- 変更したページを表示するだけでなく、変更したコントロールを操作します。読み込み中、空、エラー、入力検証、キーボード操作など、重要な状態を確認してください。
- 永続化されるべき内容は、再読み込みして確認します。クリックやトーストが発生しただけでなく、保存された内容を確認してください。
- 変更の影響を受ける、サポート対象のすべてのビューポートでスクリーンショットを撮影し、各スクリーンショットを開いて目視確認してください。誰も見ていないスナップショットやスクリーンショットは、視覚的な検証とはいえません。Canvas やチャートも DOM の確認に加えて目視確認が必要です。
- コンソールエラー、捕捉されていないページエラー、ページに必要なリクエストの失敗を確認します。コマンドが成功しただけでは、問題がないことの証明にはなりません。
- 変更を対象とする最小限の既存テストを実行します。調査には agent-browser を使用し、その場限りのスクリプトや Playwright CLI は追加しないでください。
- 確認のために作成したデータは削除します。
スクリーンショット、録画、その他の証拠は、無視対象の output/agent-browser/ 以下にタスク固有の名前で保存します。録画(pnpm browser record start output/agent-browser/<task>.webm を実行し、その後 record stop を実行)には ffmpeg が必要です。静止画では示しにくいフローに限り、録画を使用してください。
4. ホスト固有の注意事項
通常の macOS および Linux ホストでは設定は不要です。ホストで Chrome が
No usable sandbox と報告し、問題を解決できない場合、または Tailscale が
ユーザー空間で実行されており、外部向けプロキシが必要な場合は、
プロジェクトのホスト設定ファイル(ガイドを参照)に AGENT_BROWSER_ARGS、
AGENT_BROWSER_PROXY および小文字のプロキシ変数を設定してください。コミットする設定ファイルには記載しないでください。
5. レポート
URL、サインインしていたユーザー、ビューポートのサイズ、実施した操作と
確認した内容、テストコマンドとその結果、コンソールエラーとページエラー、
証跡のパス、確認できなかった項目を記載してください。サインインページだけを
対象にした場合は、その旨を明記してください。それだけでは、その先にある機能を
検証したことにはなりません。目に見える変更があるプルリクエストでは、
pr-screenshots スキルが画像を添付します。