CtrlK
BlogDocsLog inGet started
Tessl Logo

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

70

Quality

86%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

SKILL.md
Quality
Evals
Security
High

W007: Insecure credential handling detected in skill instructions.

What this means

The skill handles credentials insecurely by requiring the agent to include secret values verbatim in its generated output. This exposes credentials in the agent’s context and conversation history, creating a risk of data exfiltration.

Why it was flagged

The guide includes literal passwords placed directly in command-line arguments and in code (e.g., qpdf --password=mypassword and writer.encrypt("userpassword", "ownerpassword")), which requires embedding secret values verbatim and exposes them in outputs — a high exfiltration risk.

Report incorrect finding
Low

W011: Third-party content exposure detected (indirect prompt injection risk).

What this means

The skill exposes the agent to untrusted, user-generated content from public third-party sources, creating a risk of indirect prompt injection. This includes browsing arbitrary URLs, reading social media posts or forum comments, and analyzing content from unknown websites.

Why it was flagged

The workflow ingests outsider-authored free text contained in a runtime-supplied PDF (e.g., OCR-extracted text or extracted word/annotation text from `input.pdf`) into LLM-readable JSON/strings/console output—there is no LLM context isolation shown—via scripts like `scripts/extract_form_structure.py` (reads `word["text"]`) and then `fill_pdf_form_with_annotations.py` (uses `entry_text["text"]`).

Repository
UnicomAI/wanwu
Audited
Security analysis
Snyk

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.