mcpField
P
playwright-triage

playwright-triage

github.com/microsoft開発15.0k176 回インストール今日更新
リポジトリ

playwright-triage について

`microsoft/playwright-cli` 向けの無人 issue トリアージスキルです。調査と修正を案内し、変更先が `microsoft/playwright` の場合は回帰テストや上流への修正提案も扱います。

主な機能

  1. 01Playwright CLI の issue トリアージ
  2. 022 つのリポジトリにまたがるコードの特定
  3. 03公開済みバージョンでの問題再現
  4. 04回帰テストと修正の手順案内
  5. 05上流修正提案の準備

活用シーン

  1. 01報告された CLI の不具合調査
  2. 02公開済みパッケージのバージョンでの動作再現
  3. 03修正を上流に適用すべきかの判断
  4. 04回帰テストと修正提案の準備

インストール

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

$npx skills add https://github.com/microsoft/playwright-cli --skill playwright-triage

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

詳細

Playwright CLI の Issue トリアージ

あなたは、microsoft/playwright-cli の Issue トリアージ ワークフローで、無人で実行されます。まず、共通ガイド $AGENT_GUIDES_DIR/triage.md(microsoft/playwright/.github/actions/run-agent/guides/triage.md のコピー)を読み、次に CLAUDE.md を、どちらも全文読んでください。ガイドには、任意の Playwright リポジトリで Issue をトリアージする方法が記載されています。CLAUDE.md には、このリポジトリのビルド、テスト、Lint の方法が記載されています。このファイルでは、そのどちらにも記載されていない内容、つまりコードの場所、チェックアウト、公開済みバージョンの実行方法、およびこのリポジトリ固有の対応結果である microsoft/playwright での修正について説明します。

コードの場所

このリポジトリは npm パッケージ @playwright/cli です。内容は、更新チェックを含む playwright-cli.js、skillCheck.js、README、skills/playwright-cli/ にあるスキル、およびパッケージ化された CLI のテストの一部です。package.json では、このパッケージが実行する playwright と playwright-core の alpha バージョンが固定されています。CLI は microsoft/playwright の packages/playwright-core/src/tools/ にあります。cli-client/ にはコマンドとそのオプション、cli-daemon/ にはコマンド間でブラウザーを開いたままにするデーモン、backend/ にはコマンドが実行するツールがあります。ほとんどのバグと機能リクエストは、そこで修正されます。

このリポジトリが所有するファイルに原因がある場合に限り、ここでバグを修正してください。skills/playwright-cli/ は packages/playwright-core/src/tools/skills/playwright-cli/ のコピーで、ロール時に scripts/update.js によって更新されるため、そちらの修正も上流に反映してください。

チェックアウト

$REPO_DIR は、ガイドに記載されている microsoft/playwright-cli のチェックアウトです。ここでは npm ci が実行済みで、固定バージョンのブラウザーがインストールされています。CLI はデフォルトでランナーイメージの Google Chrome を使用します。見つからない場合は、npx playwright install chrome でインストールしてください。クローンはシャローなので、履歴が必要になる前に、その中で git fetch --unshallow --tags origin を実行してください。

$PLAYWRIGHT_DIR は、$REPO_DIR の隣にある main の先端の microsoft/playwright クローンです。ここでは npm ci と npm run build が実行済みで、Chromium、Firefox、WebKit がインストールされています。このリポジトリにとっての先端のツリーです。そこで、tests/mcp/cli-fixtures.ts の cli フィクスチャを使い、tests/mcp/cli-*.spec.ts のテストとして再現してください。npm run test-playwright-cli でこれらのテストを実行できます。テストを書く前に、同リポジトリの AGENTS.md を全文読んでください。そこには、ビルド、テスト、Lint の方法が記載されています。クローンには全履歴がありますが、ファイルの内容は Git が必要とするまで取得されません。そのため、そこで git log と git tag --contains を使用できます。

固定バージョンは先端のツリーより古いものです。npm view playwright-core@<alpha> gitHead を実行すると、alpha のビルド元となった上流コミットが表示されます。

microsoft/playwright の修正

修正対象が $PLAYWRIGHT_DIR の場合は、$REPO_DIR の代わりに、そこでガイドの Fix セクションに従ってください。$PLAYWRIGHT_DIR で main からブランチ fix-<n> を作成し、回帰テストをその中の tests/mcp/cli-*.spec.ts に追加し、AGENTS.md の指示に従ってビルドと lint を実行し、その規約に従ってコミットします。たとえば fix(cli): ... のようにします。その後、$OUTPUT_DIR/fix/ の代わりに $OUTPUT_DIR/upstream-fix/ に、同じファイルを使って提案を残してください。

  • fix.patch:$PLAYWRIGHT_DIR での git diff --binary main HEAD の出力。
  • pr-body.md:ガイドの指示に従います。Fixes 行には、課題の完全な URL Fixes https://github.com/microsoft/playwright-cli/issues/<n> を記載し、このリポジトリの課題が PR によってクローズされるようにします。
  • proposal.json:ガイドの指示に従います。最後に作成してください。

公開ジョブによって microsoft/playwright にドラフト PR が作成されます。そのリポジトリの修正ワークフローでレビューに対応します。提案は fix/ または upstream-fix/ のどちらか一方だけを残してください。両方を残さないでください。このリポジトリの package.json を変更して修正を取り込まないでください。次回のロールで @playwright/cli に反映されます。

両方のリポジトリでリンク済み PR を確認してください。 microsoft/playwright の PR は、この課題を完全な URL または microsoft/playwright-cli#<n> の形式でリンクしています。そちらでも検索してください。 repo:microsoft/playwright is:pr "playwright-cli/issues/<n>" および repo:microsoft/playwright is:pr "playwright-cli#<n>"。チームまたは microsoft-playwright-automation によるそちらの PR はチーム PR です。$PLAYWRIGHT_DIR でその PR を確認してください。

すでに修正済みとは、tip-of-tree ではテストが通り、固定されたバージョンでは失敗する状態を指します。修正は次回のロールでユーザーに届きます。次のコマンドで上流 PR を見つけ、メモに記載してください。 git -C $PLAYWRIGHT_DIR log <gitHead of the pinned alpha>..main -- packages/playwright-core/src/tools

公開済みバージョン

たとえばレポーターのバージョンを実行したり、二分探索したりする場合は、$SCRATCH_DIR/playwright-cli-<n>/<version>/ を作成し、そのディレクトリで次を実行してください。

npm init -y
npm i @playwright/cli@<version>
npx playwright-cli --help

このリポジトリのフィクスチャは、そのディレクトリでは利用できません。簡略化した再現手順は、そこで npx playwright-cli コマンドとして実行するか、それらを起動するスクリプトとして実行してください。ページは data: URL またはスクリプト内の http.createServer() で提供します。完了したら npx playwright-cli close-all を実行し、デーモンが開いたままにならないようにしてください。

npm view @playwright/cli@<version> dependencies.playwright-core を実行すると、リリースの alpha が表示されます。次のコマンドで、回帰を上流コミットと照合してください。 git -C $PLAYWRIGHT_DIR log <good gitHead>..<bad gitHead> -- packages/playwright-core/src/tools

第三者からの PR

このリポジトリでは、package.json、package-lock.json、scripts/、 .github/、.azure-pipelines/、.claude/ を変更する PR を実行しないでください。microsoft/playwright の PR には、 $PLAYWRIGHT_DIR/.claude/skills/playwright-triage/SKILL.md のリストが適用されます。

コメント