用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/saattrupdan/dotfiles --skill chrome-extension命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | chrome-extension |
| description | Chrome extension development, Web Store submission, and review process. |
| tagline | Chrome extension development and Web Store submission |
| last-updated | 2026-06-06T00:00:00.000Z |
This skill covers Manifest V3 Chrome extension development, Web Store submission requirements, and the review process.
Use this skill when:
{
"manifest_version": 3,
"name": "Your Extension",
"version": "1.0.0",
"description": "Clear, concise description (≤132 characters for short description)",
"permissions": ["storage", "..."],
"host_permissions": ["https://example.com/*"],
"action": { ... },
"background": {
"service_worker": "background.js"
}
}
Your extension must have a single, narrow, easy-to-understand purpose.
Example:
This extension adds English subtitles to Danish TV content on DR's streaming platform (dr.dk/drtv). It hijacks DR's native subtitle button to inject a three-way toggle (Off / Dansk / English). When "English" is selected, the extension captures the Danish subtitle stream, sends it to a user-configured LLM provider, and displays the translated English cues as a native TextTrack on the video player. Works only on dr.dk/drtv/* URLs. No ads, no tracking, no unrelated features.
Tips:
For each permission, explain why it's needed for your single purpose:
| Permission | What to explain |
|---|---|
storage | What user settings/data you persist locally |
webNavigation | Why you need to detect page navigation (e.g., SPA handling) |
declarativeNetRequest | CORS/API call requirements for MV3 service workers |
host_permissions | Which hosts you access and why |
Example (storage):
Stores the user's LLM provider selection, API key, and custom endpoint URL in chrome.storage.local. This data persists across browser sessions so users don't need to re-enter credentials. The API key never leaves the user's machine except when sent directly to their chosen LLM provider. No other data is stored.
Example (webNavigation):
Detects when the user navigates to episode pages. Required because the site is a single-page application (SPA) that dynamically loads content without full page reloads. Without webNavigation, the extension wouldn't know when to activate on new episodes within the same browsing session.
Example (declarativeNetRequest):
Dynamically registers CORS rules to allow the background service worker to fetch responses from external APIs. When translation starts, the extension adds a temporary rule permitting cross-origin responses from the LLM endpoint. Required because Chrome MV3 service workers cannot use XMLHttpRequest with loose CORS.
Example (host_permissions):
https://www.dr.dk/*— Inject subtitle toggle and fetch subtitle files from DR's playerhttps://inference.alexandra.dk/*— Default LLM endpoint for translation- Optional
https://*/*— Allow custom LLM endpoints if user configures them
Question: Are you using remote code?
Answer: No (if all JS is bundled)
Explanation:
All JavaScript is bundled at build time using esbuild. No remote code is loaded at runtime. The extension is fully self-contained in the submitted package. No
<script>tags pointing to external URLs, no dynamiceval(), no remote WASM, no CDN-loaded modules.
If you DO use remote code, you must disclose it and may face additional scrutiny.
You must declare what user data you collect (if any):
Categories to consider:
If you collect nothing:
This extension collects zero user data. All data stays on the user's machine or flows directly to their chosen LLM provider:
- API key stored locally in chrome.storage.local, never transmitted to the developer
- Subtitle text sent directly from user's browser to their LLM provider — developer does not intercept or store
- Cache stored locally in IndexedDB, not synced or transmitted
- No telemetry, no analytics, no tracking
Leave all data collection checkboxes unchecked if none apply.
Required if you collect any user data. Recommended even if you don't.
Host it on:
Must include:
| Requirement | Specification |
|---|---|
| Count | 1–5 screenshots (at least 1 required) |
| Size | Exactly 1280×800 OR 640×400 pixels |
| Format | JPEG or 24-bit PNG (no alpha channel) |
| Content | Show actual extension UI in action |
Tips:
Common rejection reasons:
Build the extension:
npm run build
Package for submission:
npm run package
Upload the zip file to Chrome Web Store Dashboard
$5 fee paid (if first-time developer)npm run package produces clean zip| Chrome Web Store | Firefox AMO |
|---|---|
No data_collection_permissions | Requires data_collection_permissions |
Uses key for extension ID | Uses browser_specific_settings.gecko.id |
| Validates during review | Validates on upload |
| Manual review always | Auto-approval possible |
| $5 one-time fee | No fee |
| Screenshots: 1280×800 or 640×400 exactly | Screenshots: 2400×1800 max |
| Source review on request | Source submission required |