Mv3 Doctor

Use when building, modifying, migrating, or reviewing a Chrome extension — anything involving manifest.json, a background service worker, content scripts, or Manifest V3. Encodes the MV3 rules that models routinely get wrong, and ships a validator to check the result.

Install

skills CLI (Claude Code, Cursor, Codex and more)
npx skills add n0liu/mv3-doctor --skill mv3-doctor
Manual install
git clone --depth 1 https://github.com/n0liu/mv3-doctor.git /tmp/mv3-doctor
mkdir -p ~/.claude/skills
cp -r /tmp/mv3-doctor/. ~/.claude/skills/mv3-doctor

Personal skills live in ~/.claude/skills. Use .claude/skills in a project folder to share a skill with your team.

From the SKILL.md

# Building Chrome Manifest V3 Extensions

Manifest V3 broke assumptions that a decade of extension tutorials — and most
training data — still take for granted. Code that looks correct, passes review
by eye, and even runs during a quick manual test will fail in production because
the service worker was still warm when you tested it.

Follow the rules below while writing, then **run the validator before you claim
the work is done.**

## The one idea that explains most MV3 bugs

**The background service worker is ephemeral.** Chrome starts it to deliver an
event and terminates it after roughly 30 seconds of inactivity. It is not a
long-running process. Every mistake below follows from forgetting this.

MV2 mental model (wrong): a background page that stays alive, holds state in
memory, keeps sockets open, and runs timers.

MV3 mental model (right): a collection of stateless event handlers. Each one
starts from nothing, reads what it needs from storage, does its work, and may be
killed the moment it goes idle.

## Rules

### 1. Never keep state in module-level variables

```js
// WRONG — resets to 0 without warning when the worker restarts
let requestCount = 0;
chrome.runtime.onMessage.addListener(() => { requestCount += 1; });

// RIGHT — state outlives the worker
chrome.runtime.onMessage.addListener(async () => {
  const { requestCount = 0 } = await chrome.storage.session.get("requestCount");
  await chrome.storage.session.set({ requestCount: requestCount + 1 });
});
```
Read the full skill on GitHub

Details

Skill name
mv3-doctor
License
MIT
Repo updated
20 July 2026

FAQ

What does the Mv3 Doctor skill do?

Use when building, modifying, migrating, or reviewing a Chrome extension — anything involving manifest.json, a background service worker, content scripts, or Manifest V3. Encodes the MV3 rules that models routinely get wrong, and ships a validator to check the result.

How do I install the Mv3 Doctor skill?

skills CLI (Claude Code, Cursor, Codex and more): npx skills add n0liu/mv3-doctor --skill mv3-doctor. Skills go in ~/.claude/skills (personal) or .claude/skills (project), and Claude loads them automatically when a task matches the description.

Is Mv3 Doctor popular?

It lives in n0liu/mv3-doctor, which has 5 GitHub stars and 0 forks.

Related skills

Novel Writing Coach

5

chanceline-max/novelist-skill

指导模型原创小说的选题、策划、大纲、人物、剧情、章节、续写、改稿、卡文与长篇连续性管理;适用于男频、女频、言情、玄幻、都市、悬疑、现实、无限流等题材。

Writing & Content

Mr Li Writer

5

NocodeMrLi/mr-li-writer-skill

面向中文内容创作的编辑判断、研究、策划、写作与平台原生交付工作流。根据标题、素材、参考资料、核心想法或模糊灵感,先识别读者任务、材料条件和创新必要性,再按需完成语境扫描、可写性判断与方向校准,并区分发布平台与内容目标,进行事实检索、观点设计、平台原生正文写作、标题策划和对应交付。适用于公众号文章、知乎回答、小红书原生笔记、官网/网页、个人博客、行业解读、实用指南和基于素材的扩展研究写作。

Writing & Content

Project Showcase

5

ayushxx7/project-showcase-skill

Automate the creation of high-quality project showcases: UI captures, security scans, repo health audits, README injection, GitHub releases, and social media launches.

Writing & Content

Machiavelli Digital Twin / 马基雅维利分身

5

niflhum/machiavelli-skill

A conversational digital twin of Niccolò Machiavelli, distilled from his complete works. Delivers power analysis, strategic decision-making frameworks, and risk assessment with Machiavelli's signature style - based on how things actually are, not how they ought to be. / 以马基雅维利的思维方式、分析框架和表达风格,为用户提供局势分析、决策建议和风险评估。 Three modes: /machia (dialogue), /machia-a (analysis), /machia-w (writing), /machia-e (eastern). Not for: pure emotional venting, everyday trivia, technical questions.

Writing & Content

Rankcontrol

5

rankcontrol/rankcontrol

Operate the user's RankControl workspace (rctrl.com) from the command line - AI search visibility and citations (ChatGPT, Perplexity, Claude, Gemini, Grok, Google AI Mode, Google AI Overviews), SEO content planning, article generation and publishing to their CMS, backlinks and outreach, social repurposing, brand memory, and reports. Use this whenever the user asks about AI visibility, AI citations, GEO/AEO, being cited by ChatGPT, their content calendar, publishing articles, AI traffic attribution, or anything in their RankControl account, even if they don't name RankControl explicitly.

Writing & Content

Humanize Chinese Writing

5

fy-agent/humanize-chinese-writing

中文文本与 HTML 内容的去 AI 味、人性化改写、素材型长文、页面信息密度检查与分析稿审阅。用于用户说“去AI味”“像人写的”“自然一点”“保留原意改写”,或要求减少黑话、套话、模板腔、讲义腔、机器感,按个人文风润色中文稿、长文、HTML 页面文案、仪表盘和分析报告。优先保留事实、观点、语气、引用、链接、数据口径与代码结构,不以规避检测器为目标。

Writing & Content

Browse the most popular Claude skills, all writing & content skills, or write your own with the skills generator.