Browser Debugger スキル
このスキルは、Chrome DevToolsを使ってWebサイトを体系的にデバッグし、問題を特定・報告する機能を提供します。
提供する機能
- •ネットワークエラーの検出と分析
- •コンソールエラーの収集と分類
- •パフォーマンス問題の調査(Core Web Vitals含む)
- •UI/UXの問題の確認とスクリーンショット取得
- •体系的なデバッグレポートの作成
コアワークフロー
Webサイトのデバッグを行う際は、以下のステップに従ってください:
- •現在のブラウザの状態を確認する
- •対象URLを理解する(または新しいページを開く)
- •ページの初期状態をスナップショットで確認
- •ネットワークリクエストを分析
- •コンソールメッセージを確認
- •必要に応じてパフォーマンストレースを実行
- •発見した問題を整理してレポートを作成
デバッグフロー詳細
ステップ 1: ブラウザの状態確認
まず、現在開いているページを確認します:
mcp__chrome-devtools__list_pages
複数のページが開いている場合は、適切なページを選択します:
mcp__chrome-devtools__select_page
ステップ 2: 対象URLへのナビゲート
デバッグ対象のURLが指定されている場合は、そのURLに移動します:
mcp__chrome-devtools__navigate_page
新しいページを開く必要がある場合:
mcp__chrome-devtools__new_page
ステップ 3: ページの初期状態確認
ページが読み込まれたら、スナップショットを取得してページの構造を確認します:
mcp__chrome-devtools__take_snapshot
これにより、以下が確認できます:
- •ページの主要な要素
- •アクセシビリティツリー
- •現在選択されているDevTools要素
視覚的な確認が必要な場合はスクリーンショットを取得:
mcp__chrome-devtools__take_screenshot
ステップ 4: ネットワークリクエストの分析
すべてのネットワークリクエストを一覧表示します:
mcp__chrome-devtools__list_network_requests
重要な確認ポイント:
- •失敗したリクエスト(4xx, 5xxステータス)
- •遅いリクエスト(レスポンスタイムが長い)
- •ブロックされたリクエスト(CORS、CSPエラー等)
問題のあるリクエストがあれば、詳細を取得:
mcp__chrome-devtools__get_network_request
ステップ 5: コンソールメッセージの確認
コンソールに出力されたメッセージを一覧表示:
mcp__chrome-devtools__list_console_messages
特に注目すべき項目:
- •エラーメッセージ(
errorタイプ) - •警告メッセージ(
warnタイプ) - •未処理のPromiseリジェクション
- •セキュリティ関連の警告
重要なメッセージがあれば詳細を取得:
mcp__chrome-devtools__get_console_message
ステップ 6: パフォーマンストレース(必要に応じて)
パフォーマンス問題が疑われる場合、トレースを開始:
mcp__chrome-devtools__performance_start_trace
ページをリロードするか、特定の操作を実行した後、トレースを停止:
mcp__chrome-devtools__performance_stop_trace
Core Web Vitalsや具体的なパフォーマンスインサイトを分析:
mcp__chrome-devtools__performance_analyze_insight
ステップ 7: デバッグレポートの作成
収集した情報を整理して、以下の構造でレポートを作成します:
# デバッグレポート - {URL} - {日時}
## 概要
- 対象URL: {url}
- 検査日時: {timestamp}
- ページタイトル: {title}
## ネットワークの問題
### エラー
- [{status_code}] {url} - {error_message}
- 原因: {analysis}
- 推奨対応: {recommendation}
### 警告
- {description}
## コンソールの問題
### エラー
- {error_message}
- ファイル: {source}:{line}
- 原因: {analysis}
- 推奨対応: {recommendation}
### 警告
- {warning_message}
## パフォーマンス
### Core Web Vitals
- LCP: {value}
- FID: {value}
- CLS: {value}
### 主な問題
- {performance_issue}
- 影響: {impact}
- 推奨対応: {recommendation}
## UI/UXの問題
- {issue_description}
- スクリーンショット: {path}
- 推奨対応: {recommendation}
## 優先度順の推奨対応
1. [高] {action_item}
2. [中] {action_item}
3. [低] {action_item}
保存先: docs/debug-reports/
ファイル名: {YYYYMMDD}_{HHmmss}_debug_report.md
高度な使用方法
インタラクティブなデバッグ
特定の操作後の状態を確認する場合:
- •要素をクリック:
mcp__chrome-devtools__click
- •フォームに入力:
mcp__chrome-devtools__fill
- •要素にホバー:
mcp__chrome-devtools__hover
- •特定のテキストを待機:
mcp__chrome-devtools__wait_for
JavaScriptの評価
ページの状態を動的に確認:
mcp__chrome-devtools__evaluate_script
例:
- •ローカルストレージの内容確認
- •グローバル変数の値確認
- •DOM操作の実行
デバイスエミュレーション
モバイルデバイスでの問題を確認:
mcp__chrome-devtools__emulate
または画面サイズを変更:
mcp__chrome-devtools__resize_page
デバッグシナリオ別ガイド
シナリオ 1: ページが表示されない
- •ページに移動
- •ネットワークリクエストを確認(失敗したリソース読み込み)
- •コンソールエラーを確認(JavaScriptエラー)
- •スクリーンショットで実際の表示を確認
シナリオ 2: APIリクエストが失敗する
- •ページを操作してAPIリクエストを発生させる
- •ネットワークリクエストをフィルタ(
xhr,fetch) - •失敗したリクエストの詳細を取得(ステータス、ヘッダー、ボディ)
- •CORSやCSP問題をコンソールで確認
シナリオ 3: ページが遅い
- •パフォーマンストレースを開始
- •ページをリロード
- •トレースを停止して分析
- •Core Web Vitalsを確認
- •遅いリソースをネットワークタブで特定
- •JavaScriptの実行時間を確認
シナリオ 4: レイアウトが崩れている
- •スナップショットで要素構造を確認
- •スクリーンショットで視覚的な問題を記録
- •異なる画面サイズで再現性を確認
- •コンソールでCSS関連の警告を確認
ベストプラクティス
体系的なアプローチ
- •必ず最初にスナップショットとネットワーク・コンソールの確認から始める
- •仮説を立ててから深掘りする(すべてを詳細に見ない)
- •関連する問題をグループ化して報告
優先順位付け
デバッグ結果の重要度を以下の基準で判断:
- •高: ページが機能しない、セキュリティ問題、データ損失の可能性
- •中: パフォーマンス問題、UX低下、警告メッセージ
- •低: マイナーなUI問題、最適化の余地
再現性の確保
- •問題の再現手順を明確に記録
- •環境情報(ブラウザ、画面サイズ、ネットワーク条件)を記録
- •必要に応じてスクリーンショットやトレースファイルを保存
エラーの文脈理解
単純にエラーをリストするのではなく:
- •エラーの原因を分析
- •ビジネスへの影響を評価
- •具体的な修正案を提示
レポートの読みやすさ
- •技術的な詳細と推奨対応を分けて記述
- •コードスニペットやスクリーンショットを適切に使用
- •優先度順にアクションアイテムを整理
他スキルとの連携
Playwright スキルとの使い分け
| 目的 | 推奨スキル |
|---|---|
| パフォーマンス分析(Core Web Vitals) | chrome-devtools-debugger |
| 手動テスト中に発見した問題の調査 | chrome-devtools-debugger |
| E2Eテストの自動生成 | playwright-e2e-generator |
| クロスブラウザテスト | playwright-cross-browser |
| 探索的テスト | playwright-explorer |
| バグの再現・テストケース化 | playwright-bug-reproducer |
協調ワークフロー
パターン 1: 探索 → 詳細分析
- •
playwright-explorerで探索的テストを実行 - •バグを発見したら、その状態を記録
- •
chrome-devtools-debuggerに切り替えて詳細分析- •ネットワークリクエストの詳細確認
- •パフォーマンストレースの取得
- •コンソールエラーの詳細調査
パターン 2: 手動テスト → デバッグ → テスト化
- •手動でブラウザを操作中に問題を発見
- •
chrome-devtools-debuggerでその場で調査(セッションを引き継げる) - •原因を特定
- •
playwright-bug-reproducerで再現テストを作成
パターン 3: バグ報告 → 再現 → 分析 → 修正確認
- •バグ報告を受け取る
- •
playwright-bug-reproducerで再現を試みる - •再現成功したら
chrome-devtools-debuggerで詳細分析 - •修正後、再現テストで確認
このスキルの強み
- •今開いているブラウザに接続できる(手動テストとシームレスに連携)
- •パフォーマンストレース(Core Web Vitals)の取得と分析
- •ネットワークリクエストの詳細な分析(ヘッダー、ボディ)
- •デバイスエミュレーション
重要な考慮事項
プライバシーとセキュリティ
- •認証情報や個人情報をレポートに含めない
- •スクリーンショットに機密情報が映り込んでいないか確認
- •必要に応じて情報をマスクまたは省略
パフォーマンス
- •トレースは負荷が高いため、本当に必要な時のみ実行
- •大量のリクエストがある場合は適切にフィルタリング
- •長時間のセッションは避ける(ブラウザのメモリ消費)
ツールの制限
- •DevToolsは開発者ツールであり、本番環境の監視には適さない
- •ブラウザの状態に依存するため、環境によって結果が異なる可能性
- •一部の問題(サーバーサイドの問題等)はDevToolsでは検出できない
インタラクション例
例 1: 新しいWebサイトのデバッグ
ユーザー:「https://example.com をデバッグして問題を報告して」
プロセス:
- •新しいページを開いてURLに移動
- •スナップショットとスクリーンショットを取得
- •ネットワークリクエストを確認
- •コンソールメッセージを確認
- •問題を発見した場合は詳細を調査
- •デバッグレポートを作成
応答:「example.comのデバッグが完了しました。3つのネットワークエラーと2つのコンソールエラーを発見しました。詳細なレポートを作成しました。」
例 2: パフォーマンス問題の調査
ユーザー:「このページの読み込みが遅い原因を調べて」
プロセス:
- •現在のページでパフォーマンストレースを開始
- •ページをリロード
- •トレースを停止して分析
- •Core Web Vitalsを確認
- •ネットワークリクエストで遅いリソースを特定
- •推奨対応をまとめる
応答:「パフォーマンストレースの結果、LCPが4.2秒と遅いです。主な原因は大きな画像ファイル(3.5MB)の読み込みです。画像の最適化を推奨します。」
例 3: APIエラーの調査
ユーザー:「ログインボタンをクリックした時のエラーを調べて」
プロセス:
- •現在のページのスナップショットを取得
- •ログインボタンを特定してクリック
- •ネットワークリクエストで新しいリクエストを確認
- •失敗したAPIリクエストの詳細を取得
- •コンソールエラーを確認
- •問題をまとめて報告
応答:「ログインAPIリクエストが401エラーで失敗しています。リクエストヘッダーにAuthorizationヘッダーが含まれていないことが原因です。」