playwright-triage について
`microsoft/playwright-cli` 向けの無人 issue トリアージスキルです。調査と修正を案内し、変更先が `microsoft/playwright` の場合は回帰テストや上流への修正提案も扱います。
主な機能
- 01Playwright CLI の issue トリアージ
- 022 つのリポジトリにまたがるコードの特定
- 03公開済みバージョンでの問題再現
- 04回帰テストと修正の手順案内
- 05上流修正提案の準備
活用シーン
- 01報告された CLI の不具合調査
- 02公開済みパッケージのバージョンでの動作再現
- 03修正を上流に適用すべきかの判断
- 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行には、課題の完全な URLFixes 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 のリストが適用されます。