pdf-workflow — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited pdf-workflow (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Orchestrates common multi-step PDF pipelines using the pdf-toolkit MCP server. Each workflow calls the 18 MCP tools in a specific order.
All tools accept input_file or input_files (absolute or CWD-relative paths) and an optional output_path.
Goal: combine N PDFs into one, then shrink, and optionally protect.
merge_pdf(input_files=[...], output_path="<tmp>/merged.pdf").compress_pdf(input_file="<tmp>/merged.pdf", compression_level="recommended", output_path=<final>).protect_pdf(input_file=<final>, password=<user-provided>).Goal: turn a Word/Excel/PPT file into a watermarked, password-protected PDF.
office_to_pdf(input_file=<file>) → <raw.pdf>.add_watermark(input_file=<raw.pdf>, mode="text", text="CONFIDENTIAL") → <wm.pdf>.protect_pdf(input_file=<wm.pdf>, password=<pw>) → final.Goal: pull specific pages from a PDF, OCR them, then convert to Word.
extract_pdf_pages(input_file=<src>, pages="3,5-9") → <sub.pdf>.ocr_pdf(input_file=<sub.pdf>, languages=["eng"]) → <ocr.pdf>. (warn: slow for many pages)pdf_to_word(input_file=<ocr.pdf>) → final.docx.Goal: shrink a PDF aggressively and lock it behind a password.
compress_pdf(input_file=<src>, compression_level="extreme") → <small.pdf>.protect_pdf(input_file=<small.pdf>, password=<pw>) → final.Goal: fix a corrupt scan, OCR it, then number the pages.
repair_pdf(input_file=<scan>) → <fixed.pdf>.ocr_pdf(input_file=<fixed.pdf>, languages=["eng"]) → <ocr.pdf>.add_page_numbers(input_file=<ocr.pdf>, starting_number=1, horizontal_position="center", vertical_position="bottom") → final.MISSING_CREDENTIALS. Tell the user to set ILOVEAPI_PROJECT_PUBLIC_KEY and ILOVEAPI_PROJECT_SECRET_KEY env vars and restart Claude Code.ocr_pdf and large-PDF operations can exceed 60s. Mention that to the user before kicking off.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.