


On one 13-line invoice export worker it printed 6 findings (6 errors, 0 warnings) from 25 rules, each with file:line and the replacement line.
Who it’s for
For Python teams who parse, render or search PDFs with PyMuPDF and have been told it has to come out.
What breaks, and when
Every import fitz loads PyMuPDF, which is AGPL-3.0 or a paid Artifex licence; the fixes pin pypdf>=6.19 (BSD-3-Clause), read on PyPI 2026-09-30.
What you get
• A scanner Claude runs over every .py, requirements, pyproject and…
• 25 rules: pymupdf/PyMuPDFb/pymupdf4llm requirements, import fitz…
See it first
The real output of the bundled example is on getreadystack.com/skills/pymupdf-to-pypdf-migration/ — free, no sign-up, so you see what it finds before you pay.
Install in 30 seconds
Unzip into ~/.claude/skills/, then ask Claude Code: “Our legal team says we can’t ship AGPL code in the product. Can you find everywhere we still use PyMuPDF or fitz and tell me what to replace each one with? Don’t edit anything yet.”. Needs Node 16+.
What it does not do
Reads source and dependency files only; it does not open PDFs, run your tests or give legal advice.
FAQ
Q: How is this different from asking Claude without the skill?
A: The skill carries a dated rule table and a scanner that reads every file, so Claude quotes the exact date and line instead of guessing from memory.
Q: How do I get the files?
A: In your Whop library after paying: the lesson “pymupdf-to-pypdf-migration.zip”.