wxt-browser-extensions
WXTブラウザ拡張機能のパフォーマンス最適化ガイドラインを提供するスキルです。WXTを使ったブラウザ拡張機能のコード作成・レビュー・リファクタリング時に活用し、最適なパフォーマンスパターンを確保します。コンテンツスクリプト、Service Worker、メッセージング、拡張機能APIに関わるタスクで自動的に適用されます。
description の原文を見る
WXT browser extension performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring WXT browser extension code to ensure optimal performance patterns. Triggers on tasks involving WXT, browser extensions, content scripts, service workers, messaging, and extension APIs.
SKILL.md 本文
コミュニティ WXT ブラウザ拡張機能ベストプラクティス
WXT ブラウザ拡張機能開発のための包括的なパフォーマンス最適化ガイド。8 つのカテゴリーにわたる 49 のルールを含み、自動リファクタリングとコード生成をガイドするために影響度順に優先順位付けされています。WXT v0.20+ 向けに更新。
適用する場面
以下の場合にこれらのガイドラインを参照してください:
- 新しい WXT ブラウザ拡張機能コードを記述する場合
- サービスワーカーのバックグラウンドスクリプトを実装する場合
- コンテンツスクリプトを Web ページに注入する場合
- 拡張機能コンテキスト間のメッセージング設定をセットアップする場合
- マニフェストの権限とリソースを設定する場合
ルールカテゴリー(優先度順)
| 優先度 | カテゴリー | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | Service Worker ライフサイクル | CRITICAL | svc- |
| 2 | コンテンツスクリプト注入 | CRITICAL | inject- |
| 3 | メッセージング アーキテクチャ | HIGH | msg- |
| 4 | ストレージ パターン | HIGH | store- |
| 5 | バンドル最適化 | MEDIUM-HIGH | bundle- |
| 6 | マニフェスト設定 | MEDIUM | manifest- |
| 7 | UI パフォーマンス | MEDIUM | ui- |
| 8 | TypeScript パターン | LOW-MEDIUM | ts- |
クイックリファレンス
1. Service Worker ライフサイクル (CRITICAL)
- リスナーを同期的に登録してイベント漏落を防止svc-register-listeners-synchronously- メモリ内状態の代わりにストレージを使用svc-avoid-global-state- 長時間の操作でサービスワーカーを起動状態に保つsvc-keep-alive-patterns- インストールおよび更新のライフサイクルイベント処理svc-handle-install-update- DOM 操作にはオフスクリーンドキュメントを使用svc-offscreen-documents- ネットワークブロッキングには宣言的ルールを使用svc-declarative-net-request
2. コンテンツスクリプト注入 (CRITICAL)
- ランタイムコードを main() 関数内に配置inject-use-main-function- ISOLATED または MAIN ワールドを適切に選択inject-choose-correct-world- 適切な runAt タイミングを設定inject-run-at-timing- 更新時のコンテキスト無効化処理inject-use-ctx-invalidated- 条件付き注入にはランタイム登録を使用inject-dynamic-registration- iframe 処理用に allFrames を設定inject-all-frames- wxt:locationchange で SPA ナビゲーション処理inject-spa-navigation
3. メッセージング アーキテクチャ (HIGH)
- @webext-core/messaging を使用した型安全なメッセージングmsg-type-safe-messaging- 非同期ハンドラーで true を返す (ネイティブ API)msg-return-true-for-async- コンテンツスクリプトには tabs.sendMessage を使用msg-use-tabs-sendmessage- ストリーミング通信にはポートを使用msg-use-ports-for-streams- メッセージレシーバーがない場合の処理msg-handle-no-receiver- 循環メッセージループの防止msg-avoid-circular-messages
4. ストレージ パターン (HIGH)
- 型安全なアクセスに storage.defineItem を使用store-use-define-item- 適切なストレージエリアを選択store-choose-storage-area- 関連データを単一の defineItem にグループ化store-batch-operations- リアクティブ更新に watch() を使用store-watch-for-changes- ストレージクォータエラー処理store-handle-quota-errors- スキーママイグレーションはバージョニング使用store-versioned-migrations
5. バンドル最適化 (MEDIUM-HIGH)
- エントリーポイント別にコード分割bundle-split-entrypoints- バンドルサイズの分析と監視bundle-analyze-size- アイコンライブラリは直接インポートを使用bundle-tree-shake-icons- WASM を動的ロードbundle-externalize-wasm- コンテンツスクリプトサイズを最小化bundle-minify-content-scripts
6. マニフェスト設定 (MEDIUM)
- 最小限の権限を要求manifest-minimal-permissions- オプション権限を段階的に使用manifest-use-optional-permissions- Web アクセス可能なリソースの範囲設定manifest-web-accessible-resources- CSP を正しく設定manifest-content-security-policy- 複数ブラウザー対応manifest-cross-browser-compatibility
7. UI パフォーマンス (MEDIUM)
- 注入 UI には Shadow DOM を使用ui-use-shadow-dom- ポップアップレンダリングを遅延実行ui-defer-rendering- アンマウント時に UI をクリーンアップui-cleanup-on-unmount- サイドパネル状態を保持ui-sidepanel-persistence- 複雑な UI には iframe を使用ui-position-fixed-iframe- DOM 読み取りと書き込みをバッチ処理ui-avoid-layout-thrashing
8. TypeScript パターン (LOW-MEDIUM)
- #imports 仮想モジュールと自動インポートを使用ts-use-imports-module- chrome の代わりに browser 名前空間を使用ts-use-browser-not-chrome- エントリーポイントオプションを明示的に型付けts-type-entrypoint-options- 不足している API 用に型を拡張ts-augment-browser-types- 厳密な null チェックを有効化ts-strict-null-checks- ビルド情報に import.meta を使用ts-import-meta-env- ハンドラーで any 型を回避ts-avoid-any- インポート用にパスエイリアスを使用ts-path-aliases
使い方
各ルールの詳細説明とコード例については、個別の参照ファイルを参照してください:
Section definitions- カテゴリー構造と影響度レベルRule template- 新しいルール追加用テンプレート
参照ファイル
| ファイル | 説明 |
|---|---|
references/_sections.md | カテゴリー定義と順序付け |
assets/templates/_template.md | 新規ルール用テンプレート |
metadata.json | バージョンと参照情報 |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pproenca
- リポジトリ
- pproenca/dot-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/pproenca/dot-skills / ライセンス: MIT
関連スキル
superfluid
Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper
civ-finish-quotes
実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。
nookplot
Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。
web3-polymarket
Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。
ethskills
Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。
xxyy-trade
このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。