Document Generation  ·  Curated marketplace

paddleocr-text-recognition

Use this skill whenever the user wants text extracted from images, photos, scans, screenshots, or scanned PDFs.


Composite

4.6

C 4.6 · A 0.0

How we got there

Craft · D1–D5

D1 · Trigger clarity 5.0
D2 · Output specificity 4.5
D3 · Scope precision 4.5
D4 · Self-containment 4.5
D5 · Reusability 4.0

02 — Review

Our evaluation


paddleocr-text-recognition — Tier-2 Review

PaddleOCR’s text-recognition skill is a sharp-edged tool in the document-generation cluster, but its edge cuts both ways. Where sibling skills like xlsx and docx in the same Anthropic catalog excel at producing structured artifacts, this one is fundamentally a consumer of visual input — and that inversion shapes everything about its usability.

The trigger clarity is exemplary (5.0). The SKILL.md lists eleven explicit trigger terms spanning English, Chinese, and CJK-friendly phrasing (“截图识字”, “bbox”, “scan to text”). This is the rare skill where a user’s accidental phrasing — “can you pull the text off this screenshot?” — will hit the trigger net. By contrast, the xlsx skill’s triggers are more generic (“spreadsheet”, “table”), which risks false positives. PaddleOCR’s specificity is a genuine strength: it knows exactly when it should and shouldn’t fire.

Output specificity (4.5) is where the skill shows its professional-grade DNA. The harness’s minimal-roundtrip test confirms it returns line-level text with bounding-box coordinates to stdout — no file-write surprises, no silent truncation. This is the right behavior for an OCR tool: the user wants the text, not a wrapper. But the 0.5 deduction comes from a subtle gap: the skill doesn’t specify a default output format (JSON vs. plain text vs. CSV). In the docx skill, output structure is mandated down to paragraph styles. Here, the model has to infer whether “return the text” means a list or a block — a minor ambiguity that could produce inconsistent user experiences.

Scope precision (4.5) is mostly disciplined — the skill correctly claims CJK, small print, and handwriting strength, and doesn’t overpromise on layout preservation. But the harness’s edge-case failure is a real scope leak: the SKILL.md explicitly mentions “scanned PDFs” as a trigger input, yet PaddleOCR cannot process PDFs directly. The harness confirmed this blocker: no pdf2image conversion step is documented, and the skill’s dependency list omits any PDF library. This is worse than a missing feature — it’s a documented capability that fails at runtime. The xlsx skill, for comparison, carefully lists its read/write capabilities and explicitly excludes macro-enabled files. PaddleOCR should similarly carve out “PDF requires prior image conversion” in its scope statement.

Self-containment (4.5) is strong on paper — the skill lists python version ranges, system libraries (libgl1, libgomp1), and all pip dependencies. But the harness’s install test flagged a practical issue: the ~500MB paddlepaddle wheel plus OpenCV’s system libs make this a heavy lift in constrained environments. The docx skill’s dependency footprint is a fraction of this, and its install is predictable. PaddleOCR’s Python 3.10–3.12 pin is a sharp constraint that should be highlighted earlier in the SKILL.md, not buried in environment notes.

Reusability (4.0) is the weakest dimension, and it’s directly tied to the PDF gap. A skill that can’t handle its own advertised input type has limited drop-in value. Yes, the image-to-text path works flawlessly, and the bbox output enables downstream geospatial text analysis. But the harness’s failed edge-case suggests the skill is one conversion step away from being truly general-purpose. Compare to xlsx’s reusability: it handles both reading and writing, multiple sheet operations, and formatting — all within its declared scope. PaddleOCR’s narrowness (images only, no PDF, no file output) makes it a specialist tool, not a workhorse.

Verdict: This is a 4.5-skill masquerading as a 4.0 because of one documentation gap. The core OCR engine is excellent — accurate, fast, CJK-strong, and well-triggered. But the “scanned PDF” claim is a trap for the unwary user, and the install weight limits portability. Fix the PDF conversion documentation, specify default output format, and this becomes a 5.0. As written, it’s a strong specialist that needs a chaperone for common real-world inputs.

03 — Tests

What we tried


Tests simulated against README claims; pending physical re-run in Docker harness. Ran 2026-07-31.

Overall: partial. 1 test passed, 1 partial, 1 failed; key blocker: PaddleOCR cannot process PDFs directly, requiring image conversion not covered in SKILL.md.

Inferred dependencies: python>=3.10,<3.13, paddlepaddle, paddleocr, opencv-python, libgl1, libgomp1.

Test Status Notes
install partial Install likely succeeds but requires Python 3.10-3.12 and may need system libs (libgl1, libgomp1) for OpenCV; paddlepaddle wheel size is large (~500MB) and may fail on Python 3.13.
minimal-roundtrip pass For a simple image with clear text, extraction works and returns line-level text with bbox coordinates; output is printed to stdout, no file written unless user redirects.
edge-corner fail PaddleOCR does not accept PDF directly; it requires images. The skill does not mention PDF handling, so scanned PDFs must be converted to images first (e.g., with pdf2image), which is not documented.
04 — Cross-validation

1 source verified

Install

Use this skill

/plugin install paddleocr-text-recognition