Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/personamanagmentlayer/pcl/document-processing-expertnpx skills add personamanagmentlayer/pcl --skill document-processing-expertgit clone --depth 1 https://github.com/personamanagmentlayer/pclWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/personamanagmentlayer/pcl/document-processing-expert)<a href="https://agentmods.dev/skills/personamanagmentlayer/pcl/document-processing-expert"><img src="https://agentmods.dev/badge/skills/personamanagmentlayer/pcl/document-processing-expert.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00102 | $0.02435 |
| Opus 5 | $0.00051 | $0.01218 |
| Sonnet 5 | $0.00020 | $0.00487 |
| Haiku 4.5 | $0.00010 | $0.00244 |
Grade A, and why
document-processing-expert scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 296 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Document Processing Expert
Working with the formats people actually exchange. The recurring mistake is treating a document as text: these are structured containers, and the structure is where the meaning lives.
Core Concepts
Read the Format, Not the Bytes
.docx, .xlsx and .pptx are ZIP archives of XML parts. PDF is a page
description language, not a document model. Using a library that understands the
format is not a convenience — string manipulation on these files produces output
that opens corrupted.
Extraction Is Lossy; Decide What Matters
Every extraction discards something: layout, styling, reading order, or the relationship between a heading and its table. Decide up front whether you need text, structure, or fidelity, and choose the tool accordingly.
Generation Is About Templates
Building a document element by element in code produces unmaintainable output that a designer cannot touch. Fill a template that a human authored, in the tool they authored it in.
Untrusted Documents Are Untrusted Input
Documents carry macros, external entities, embedded files and remote references. A parsing library is an attack surface. Treat every uploaded document as hostile.
Extracting text
import pdfplumber
def extract_pages(path: str) -> list[str]:
with pdfplumber.open(path) as pdf:
return [page.extract_text() or "" for page in pdf.pages]
pdfplumber preserves layout well and extracts tables; pypdf is faster for
plain text and page manipulation. If extract_text() returns empty on a page
that clearly has content, the page is an image — you need OCR, not a different
parser.
Extracting tables
with pdfplumber.open(path) as pdf:
for page in pdf.pages:
for table in page.extract_tables():
header, *rows = table
records = [dict(zip(header, row)) for row in rows]
Table extraction is unreliable on borderless or multi-page tables. Validate the result — column count, expected types, totals that reconcile — rather than trusting it.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 296 lines · 102 tokens per session scan A 2e38ef75163d
document-processing-expert is a skill published in the GitHub repository personamanagmentlayer/pcl (41 stars, last pushed today), licensed Apache-2.0. It adds 102 tokens to every session and 2,435 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
document-generation
Generate Word (.docx), Excel (.xlsx) and PowerPoint (.pptx) documents and fill existing PDF forms, from real NetClaw data, with per-element provenance and no fabrication. Use when someone needs a deliverable rather than an answer — a change record to attach to a CR, an audit workbook for a compliance reviewer, a…
document-creator
Use when creating, editing, and generating Office documents programmatically — Word, PowerPoint, Excel, and PDF. One interface for all document formats with shared methodology.
document-processing
End-to-end document processing agent skill covering PDF manipulation (extract, merge, split, rotate, watermark, form-fill, OCR), DOCX creation and editing (templates, mail-merge, style management), XLSX spreadsheet handling (formulas, charts, pivot tables, data analysis), PPTX presentation generation (layouts, charts…
office-artifacts
Use when creating, opening, reading, or editing Office artifacts such as LibreOffice-native ODT/ODS/ODP files and compatibility DOCX/XLSX/PPTX files with the officeartifact tool.
office-router
Route Office requests into the correct xlsx, docx, or pptx workflow, while preferring Slidev for new presentation drafts unless .pptx is explicitly required.
anthropics-office-skills
Skill "anthropics-office-skills" from AvalonLee/AstraCraft-Program, covering anthropic office 文档技能, 这是什么, 怎么安装, 仅克隆文档技能子目录(稀疏检出,体积小) and 然后将所需技能目录复制到你的 agent 的 skills 目录(仅本地使用).