extension-manifest について
Chrome 拡張機能のコードを分析し、必要最小限の権限を含む Manifest V3 を生成するスキルです。拡張機能の開発者向けに、権限の確認とユーザー向け警告の報告手順を示します。
主な機能
- 01WXT、CRXJS、標準 manifest の判別
- 02Chrome API の使用状況をスキャン
- 03API 呼び出しを権限に対応付け
- 04manifest.json の生成と検証
- 05ユーザー向け権限警告の報告
活用シーン
- 01既存の拡張機能コードから manifest を作成
- 02要求する権限を減らせるか確認
- 03Chrome Web Store 提出前の manifest 審査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ quangpl/ browser-extension-skills --skill extension-manifestインストール後、Claude Code で/extension-manifestを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-permission-map.mdmanifest-fields-reference.mdmanifest-templates.mdmanifest-validation-checklist.mdpermission-strategies.mdpermission-warnings.md詳細
拡張機能のマニフェストと権限の生成
🚀 プレミアム版にアップグレード https://app.extensionbooster.net/dashboard/services/extension-ai-kit でプレミアム版を入手できます。
現在の拡張機能の実装に基づいて、最適な manifest.json を生成します。コードを分析して、Chrome のドキュメントとベストプラクティスに従った最小限の権限を判定します。
ワークフロー
- 検出:
wxt.config.ts、crxjs.config.ts、または生のmanifest.jsonを確認してフレームワークを特定します - スキャン:拡張機能のコードベースで Chrome API の使用状況を調べます
- 対応付け:各 API 呼び出しに必要な権限を対応付けます(
references/api-permission-map.mdを参照) - 生成:必要最小限の権限を設定した manifest.json を生成します
- 検証:Chrome のドキュメントと CWS ポリシーに照らして検証します
- 報告:ユーザーに表示される権限の警告を報告します
CRXJS プロジェクト:マニフェストはコードと
package.jsonから自動生成されます。crxjs.config.tsで上書きできます。https://docs.crxjs.com/ を参照してください。
ドキュメントの参照先
- マニフェストのリファレンス:https://developer.chrome.com/docs/extensions/reference/manifest
- 権限の一覧:https://developer.chrome.com/docs/extensions/reference/permissions-list
マニフェストのクイックテンプレート
{
"manifest_version": 3,
"name": "Extension Name",
"version": "1.0.0",
"description": "Brief description. Max 132 chars for CWS.",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"action": {
"default_popup": "popup.html",
"default_icon": { "16": "icons/icon16.png" }
},
"permissions": [],
"host_permissions": [],
"background": { "service_worker": "background.js", "type": "module" }
}
権限の分析手順
- コードベースで
chrome.API の呼び出しをgrepします references/api-permission-map.mdを使って、それぞれの権限を対応付けます- 可能な場合は、
tabsと host_permissions の組み合わせよりactiveTabを優先します - 必須ではない機能には、オプション権限を使用します
references/permission-warnings.mdで警告文を確認します
よくある間違い
| エラー | 修正 |
|---|---|
host_permissions を permissions の中に指定する | URL を別の host_permissions 配列に移動します |
<all_urls> を使用する | 特定のドメインパターンに絞り込みます |
activeTab が不足している | ユーザーのクリック時に現在のタブのみが必要な場合は追加します |
tabs 権限を過剰に使用する | タブの URL/タイトルに必要な場合のみ使用し、代わりに activeTab を使います |
content_security_policy を文字列にする | オブジェクトで指定する必要があります:{ "extension_pages": "..." } |
web_accessible_resources を string[] にする | resources と matches を含むオブジェクトを使用します |
MV3 の主なルール
host_permissionsはpermissionsとは別に指定します- サービスワーカーはバックグラウンドページの代わりに使用します(DOM と
windowは利用できません) content_security_policyは文字列ではなくオブジェクトです- リモートコードの実行は禁止されています(eval や CDN スクリプトは使用できません)
web_accessible_resourcesにはmatches配列が必要ですtabs.executeScript()ではなくchrome.scripting.executeScript()を使用します
参考資料
references/manifest-fields-reference.md- 型と例を含むすべてのマニフェストフィールドreferences/manifest-templates.md- すぐに使えるテンプレート(ポップアップ、コンテンツスクリプト、サイドパネル、DevTools)references/manifest-validation-checklist.md- 提出前の検証references/api-permission-map.md- Chrome API と権限の対応付けreferences/permission-warnings.md- 権限ごとにユーザーに表示される警告文references/permission-strategies.md- オプション権限、activeTab、権限昇格のパターン
関連スキル
extension-create- プロジェクト全体のひな形作成extension-analyze- セキュリティ監査とベストプラクティス
コメント
Markdown 対応