スキル playwright-best-practices
📦

playwright-best-practices

v1.0.0 コンテンツリビジョン r1 高リスク ⚙️ 外部コマンド🌐 ネットワークアクセス📁 ファイルシステムへのアクセス🔑 環境変数

ベストプラクティスに照らしたPlaywrightテストのレビュー

Playwrightのテストスイートは、手動の待機、壊れやすいセレクター、共有状態を使うと不安定になりがちです。このスキルは、Claude、Codex、Claude Codeが実践的なTypeScript Playwrightルールに照らしてテストをレビューするためのガイドです。

対応: Claude Codex Code(CC)
⚠️ 38 不十分

自分のエージェントでインストール

このリクエストをエージェントにコピーしてください。正規の Skill ページとマニフェストが含まれています。

エージェントリクエスト
Review the Skillstore skill "playwright-best-practices" from https://skillstore.io/skills/vitalics-playwright-best-practices.md and its manifest at https://skillstore.io/api/skills/vitalics-playwright-best-practices/manifest. Verify the artifact. Stop and obtain explicit user consent before installing or changing files.

エージェントは引き続き計画を提示し、セキュリティポリシーで必要な確認を求める必要があります。

エージェントが読めるリソース

AI エージェント、クローラー、スクリプトがページ全体ではなく整理されたコンテキストを必要とする場合は、これらのリンクを使ってください。

テストする

「playwright-best-practices」を使用しています。 ボタンをクリックする前に固定遅延を使っているチェックアウトのテストファイルをレビューする。

期待される結果:

レビューでは手動待機の使用を報告し、それが不安定さを引き起こす理由を説明し、自動待機アクションまたは特定レスポンスの待機を推奨します。

「playwright-best-practices」を使用しています。 繰り返しのセレクターと共有セットアップロジックを持つログインスイートをレビューする。

期待される結果:

レビューではセレクターの重複を強調し、ログインページオブジェクトを提案し、再利用可能な認証済みセットアップ用のフィクスチャを推奨します。

「playwright-best-practices」を使用しています。 シャーディングを有効にする前にCIスイートをレビューする。

期待される結果:

レビューでは、並列実行時に失敗する可能性のある共有テストデータ、順序依存、storage stateの再利用を特定します。

セキュリティ監査

高リスク

Most static findings are false positives from Markdown examples, including example URLs, template literals, relative imports, CI flags, and Playwright API mocks. One real issue remains: SKILL.md requires fetching mutable remote guidelines and treating them as instructions, which can change outside the audited package.

15
スキャンされたファイル
7,900
解析済み行数
1
レビュー項目
0
誤検知を無視

確認済みのセキュリティ上の懸念 (1)

高
Mutable Remote Instructions Fetched at Runtime
SKILL.md tells the agent to fetch fresh guidelines before each review and then use the fetched content as rules. Because the URL follows a mutable branch, the reviewed package can later execute changed instructions outside this audit.
The file explicitly requires WebFetch of latest rules from a branch and says the fetched content contains output instructions. This is a clear supply-chain and prompt-injection surface even though no malicious remote content is present locally.
機能レビュー項目 (1)

これらは、このスキルに期待される可能性のある実際のローカル機能であるため、レビューが必要ですが、確認済みの悪意ある動作としてはカウントされません。

高
Hardcoded URL
https://raw.githubusercontent.com/vitalics/playwright-labs/tree/main/packages/playwright-best-practi
SKILL.md instructs the agent to fetch live guidelines from a mutable GitHub branch before each review. That network dependency can introduce unreviewed instructions after marketplace audit.

リスク要因

⚙️ 外部コマンド (58)
AGENTS.md:441-518 AGENTS.md:1313-1337 AGENTS.md:1337-1339 AGENTS.md:1349-1358 AGENTS.md:1358-1366 AGENTS.md:1366-1373 AGENTS.md:1373-1383 AGENTS.md:1383-1405 AGENTS.md:1405-1412 AGENTS.md:1428-1438 AGENTS.md:1438-1462 AGENTS.md:2191-2232 AGENTS.md:2232-2236 AGENTS.md:2236-2239 AGENTS.md:2363-2372 AGENTS.md:2372-2388 AGENTS.md:2388-2390 AGENTS.md:2488-2517 AGENTS.md:2517-2560 AGENTS.md:2560-2573 AGENTS.md:3018-3020 AGENTS.md:3020-3024 AGENTS.md:3024-3029 AGENTS.md:3102-3104 AGENTS.md:1665 AGENTS.md:1667 AGENTS.md:1668 AGENTS.md:1669 rules/debug-test-steps.md:114-116 rules/debug-test-steps.md:116-120 rules/debug-test-steps.md:120-125 rules/debug-test-steps.md:198-200 rules/fixture-custom-merge-reuse.md:263-304 rules/fixture-custom-merge-reuse.md:304-308 rules/fixture-custom-merge-reuse.md:308-311 rules/fixture-custom-merge-reuse.md:435-444 rules/fixture-custom-merge-reuse.md:444-460 rules/fixture-custom-merge-reuse.md:460-462 rules/fixture-custom-merge-reuse.md:560-589 rules/fixture-custom-merge-reuse.md:589-632 rules/fixture-custom-merge-reuse.md:632-645 rules/parallel-test-isolation.md:32-56 rules/parallel-test-isolation.md:56-58 rules/parallel-test-isolation.md:68-77 rules/parallel-test-isolation.md:77-85 rules/parallel-test-isolation.md:85-92 rules/parallel-test-isolation.md:92-102 rules/parallel-test-isolation.md:102-124 rules/parallel-test-isolation.md:124-131 rules/parallel-test-isolation.md:147-157 rules/parallel-test-isolation.md:157-181 rules/parallel-test-sharding.md:141 rules/parallel-test-sharding.md:143 rules/parallel-test-sharding.md:144 rules/parallel-test-sharding.md:145 rules/speed-page-object-model.md:136-213 SKILL.md:19 SKILL.md:25-27
🌐 ネットワークアクセス (181)
AGENTS.md:2354 AGENTS.md:2363 AGENTS.md:2500 AGENTS.md:3469 AGENTS.md:3337 AGENTS.md:3391 AGENTS.md:3706 AGENTS.md:95 AGENTS.md:116 AGENTS.md:130 AGENTS.md:183 AGENTS.md:196 AGENTS.md:206 AGENTS.md:221 AGENTS.md:231 AGENTS.md:246 AGENTS.md:262 AGENTS.md:277 AGENTS.md:287 AGENTS.md:325 AGENTS.md:333 AGENTS.md:341 AGENTS.md:375 AGENTS.md:460 AGENTS.md:507 AGENTS.md:662 AGENTS.md:687 AGENTS.md:712 AGENTS.md:736 AGENTS.md:883 AGENTS.md:915 AGENTS.md:978 AGENTS.md:991 AGENTS.md:1001 AGENTS.md:1013 AGENTS.md:1023 AGENTS.md:1035 AGENTS.md:1048 AGENTS.md:1061 AGENTS.md:1071 AGENTS.md:1084 AGENTS.md:1096 AGENTS.md:1131 AGENTS.md:1146 AGENTS.md:1162 AGENTS.md:1183 AGENTS.md:1204 AGENTS.md:1225 AGENTS.md:1305 AGENTS.md:1313 AGENTS.md:1319 AGENTS.md:1326 AGENTS.md:1337 AGENTS.md:1351 AGENTS.md:1358 AGENTS.md:1364 AGENTS.md:1372 AGENTS.md:1389 AGENTS.md:1404 AGENTS.md:2018 AGENTS.md:2030 AGENTS.md:2042 AGENTS.md:2069 AGENTS.md:2084 AGENTS.md:2177 AGENTS.md:2190 AGENTS.md:2354 AGENTS.md:2363 AGENTS.md:2371 AGENTS.md:2500 AGENTS.md:2516 AGENTS.md:2925 AGENTS.md:2957 AGENTS.md:3231 AGENTS.md:3246 AGENTS.md:3252 AGENTS.md:3281 AGENTS.md:3299 AGENTS.md:3318 AGENTS.md:3351 AGENTS.md:3383 AGENTS.md:3405 AGENTS.md:3484 AGENTS.md:3495 AGENTS.md:3509 AGENTS.md:3519 AGENTS.md:3531 AGENTS.md:3557 AGENTS.md:3647 README.md:19 README.md:20 rules/advanced-api-mocking.md:330 rules/advanced-api-mocking.md:198 rules/advanced-api-mocking.md:252 rules/advanced-api-mocking.md:567 rules/advanced-api-mocking.md:92 rules/advanced-api-mocking.md:107 rules/advanced-api-mocking.md:113 rules/advanced-api-mocking.md:142 rules/advanced-api-mocking.md:160 rules/advanced-api-mocking.md:179 rules/advanced-api-mocking.md:212 rules/advanced-api-mocking.md:244 rules/advanced-api-mocking.md:266 rules/advanced-api-mocking.md:345 rules/advanced-api-mocking.md:356 rules/advanced-api-mocking.md:370 rules/advanced-api-mocking.md:380 rules/advanced-api-mocking.md:392 rules/advanced-api-mocking.md:418 rules/advanced-api-mocking.md:508 rules/assertion-web-first.md:59 rules/assertion-web-first.md:91 rules/assertion-web-first.md:154 rules/assertion-web-first.md:167 rules/assertion-web-first.md:177 rules/assertion-web-first.md:189 rules/assertion-web-first.md:199 rules/assertion-web-first.md:211 rules/assertion-web-first.md:224 rules/assertion-web-first.md:237 rules/assertion-web-first.md:247 rules/assertion-web-first.md:260 rules/assertion-web-first.md:272 rules/assertion-web-first.md:307 rules/assertion-web-first.md:322 rules/assertion-web-first.md:338 rules/assertion-web-first.md:359 rules/assertion-web-first.md:380 rules/assertion-web-first.md:401 rules/debug-test-steps.md:21 rules/debug-test-steps.md:53 rules/fixture-custom-merge-reuse.md:426 rules/fixture-custom-merge-reuse.md:435 rules/fixture-custom-merge-reuse.md:572 rules/fixture-custom-merge-reuse.md:90 rules/fixture-custom-merge-reuse.md:102 rules/fixture-custom-merge-reuse.md:114 rules/fixture-custom-merge-reuse.md:141 rules/fixture-custom-merge-reuse.md:156 rules/fixture-custom-merge-reuse.md:249 rules/fixture-custom-merge-reuse.md:262 rules/fixture-custom-merge-reuse.md:426 rules/fixture-custom-merge-reuse.md:435 rules/fixture-custom-merge-reuse.md:443 rules/fixture-custom-merge-reuse.md:572 rules/fixture-custom-merge-reuse.md:588 rules/locator-role-based.md:20 rules/locator-role-based.md:45 rules/locator-role-based.md:70 rules/locator-role-based.md:94 rules/parallel-test-isolation.md:24 rules/parallel-test-isolation.md:32 rules/parallel-test-isolation.md:38 rules/parallel-test-isolation.md:45 rules/parallel-test-isolation.md:56 rules/parallel-test-isolation.md:70 rules/parallel-test-isolation.md:77 rules/parallel-test-isolation.md:83 rules/parallel-test-isolation.md:91 rules/parallel-test-isolation.md:108 rules/parallel-test-isolation.md:123 rules/speed-page-object-model.md:20 rules/speed-page-object-model.md:28 rules/speed-page-object-model.md:36 rules/speed-page-object-model.md:70 rules/speed-page-object-model.md:155 rules/speed-page-object-model.md:202 rules/stable-auto-waiting.md:59 rules/stable-auto-waiting.md:80 rules/stable-auto-waiting.md:94 rules/stable-auto-waiting.md:147 rules/stable-auto-waiting.md:160 rules/stable-auto-waiting.md:170 rules/stable-auto-waiting.md:185 rules/stable-auto-waiting.md:195 rules/stable-auto-waiting.md:210 rules/stable-auto-waiting.md:226 rules/stable-auto-waiting.md:241 rules/stable-auto-waiting.md:251 SKILL.md:26
📁 ファイルシステムへのアクセス (28)
🔑 環境変数 (32)
監査者: codex 監査履歴を表示 →
このレポートを共有・引用

バージョン付き評価レポート、中立的なバッジ、埋め込みカード、引用を共有できます。Skillstore は証拠を報告しますが、この Skill が安全かどうかは判断しません。

バージョン別レポートを開く
セキュリティ評価

レポートリンクをコピー

https://skillstore.io/skills/vitalics-playwright-best-practices/audits/7?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_report

Markdownバッジ

[![Skillstore security assessment](https://skillstore.io/badges/skills/vitalics-playwright-best-practices/security.svg)](https://skillstore.io/skills/vitalics-playwright-best-practices?utm_source=security_passport_badge)

HTMLバッジ

<a href="https://skillstore.io/skills/vitalics-playwright-best-practices?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/vitalics-playwright-best-practices/security.svg" alt="Skillstore security assessment" loading="lazy"></a>

埋め込みカード

<iframe src="https://skillstore.io/embed/skills/vitalics-playwright-best-practices.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>
学術引用 (APA · BibTeX · CFF)

APA形式の引用

vitalics. (2026). playwright-best-practices security audit report (audit version 7) [Author version 1.0.0]. Skillstore. https://skillstore.io/skills/vitalics-playwright-best-practices/audits/7

BibTeX形式の引用

@techreport{vitalics-vitalics-playwright-best-practices-2026, author = {vitalics}, title = {playwright-best-practices security audit report (audit version 7)}, institution = {Skillstore}, year = {2026}, number = {7}, url = {https://skillstore.io/skills/vitalics-playwright-best-practices/audits/7}, note = {Author version 1.0.0} }

CITATION.cff

cff-version: 1.2.0 message: "If you use this Skill, cite its author and this versioned security audit report." title: "playwright-best-practices security audit report (audit version 7)" version: "1.0.0" type: report authors: - name: "vitalics" date-released: "2026-07-07" url: "https://skillstore.io/skills/vitalics-playwright-best-practices/audits/7" identifiers: - type: other value: "skillstore:vitalics-playwright-best-practices:audit:7" description: "Skillstore immutable audit report identifier"

バリアントを比較

インストール可能なバリアント 2 件

各作者のスキルは個別のインストール項目として維持されます。推奨バリアントは Skillstore の証拠で順位付けされます。

このバリアントが首位の理由

Skillstore スコアが最高
0xBigBoss 推奨

0xbigboss-playwright-best-practices

Skillstore スコア 79
証拠の信頼度 高
Skillstore 利用状況 82
更新済み

2026-09-09

vitalics 現在

vitalics-playwright-best-practices

Skillstore スコア 38
証拠の信頼度 中
Skillstore 利用状況 16
更新済み

2026-09-09

Skillstore スコア

このスコアの理由 証拠の信頼度: 中
55
アーキテクチャ
100
保守性
85
コンテンツ
70
コミュニティ
83
仕様準拠

作成できるもの

不安定なPlaywrightテストを減らす

手動の待機、リトライされないアサーション、共有状態、壊れやすいタイミング前提についてテストファイルをレビューします。

テストコードレビューを改善する

テスト変更をマージする前に、ロケーター、アサーション、ページオブジェクト、フィクスチャ、並列実行に対して一貫したチェックリストを適用します。

大規模なPlaywrightスイートをリファクタリングする

ページオブジェクト、フィクスチャ、再利用可能なモックヘルパーへ移すべき繰り返しパターンを特定します。

これらのプロンプトを試す

1つのテストファイルをレビューする
Playwrightのベストプラクティスに照らして tests/example.spec.ts をレビューしてください。不安定な待機、ロケーター、アサーションに重点を置いてください。
機能フォルダーを確認する
tests/checkout 配下のPlaywrightテストをレビューしてください。ファイルと行ごとに問題を報告し、簡潔な修正案を提案してください。
並列実行への対応状況を監査する
並列実行の問題について tests/**/*.spec.ts をレビューしてください。共有ユーザー、共有ファイル、テスト順序、シャーディングの安全性に重点を置いてください。
スイートアーキテクチャを評価する
私のPlaywrightスイートアーキテクチャをレビューしてください。ページオブジェクト、フィクスチャ、APIモック、ロケーター戦略、アサーション品質を評価してください。

ベストプラクティス

  • 明示的な待機を追加する前に、Playwrightの自動待機とweb-first assertionsを優先します。
  • CSSセレクターやXPathより前に、role-based locatorsとアクセシブル名を使用します。
  • 複数のテストで共有される再利用可能なページ挙動は、ページオブジェクトまたはフィクスチャに保持します。

回避

  • テスト内のタイミング問題を隠すために固定スリープを追加しないでください。
  • ユーザー向けのroleまたはラベルが存在する場合、DOM構造セレクターに依存しないでください。
  • 並列テスト間で変更可能なユーザー、ファイル、データベース状態を共有しないでください。

よくある質問

このスキルは何をレビューしますか?
Playwright TypeScriptテストについて、安定性、速度、ロケーター、アサーション、フィクスチャ、シャーディング、APIモックのプラクティスをレビューします。
Playwrightテストを実行しますか?
いいえ。ソースファイルをレビューしてガイダンスを提供します。挙動を検証するには、別途テストを実行する必要があります。
テストを自動的に修正できますか?
修正案を提案できます。変更を適用するのは、それがあなたのアプリケーションとテスト環境に合っていることを確認してからにしてください。
なぜrole-based locatorsを優先するのですか?
role-based locatorsは、ユーザーや支援技術がコントロールを識別する方法に一致するため、通常はより安定しています。
CIパフォーマンスに役立ちますか?
はい。並列実行、シャーディング、フィクスチャ、遅い待機の削減に関するガイダンスが含まれています。
使用するときに何を提供すべきですか?
Playwrightのテストファイル、フォルダー、またはglobパターンに加えて、不安定さやシャーディングなどの具体的な懸念事項を提供してください。

開発者情報

作成者

vitalics

ライセンス

MIT

作者バージョン

v1.0.0

Skillstore リビジョン

r1

参照

36e07d5e13068e5be64447e8f20b427cf2cbd21a

メンテナンスの新しさ

2026/7/23

利用状況

12 ダウンロード · 205 閲覧

すべて表示