Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add kitchen-engineer42/joharnessburg/plugin install johnWrote 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/kitchen-engineer42/joharnessburg/parsing)<a href="https://agentmods.dev/skills/kitchen-engineer42/joharnessburg/parsing"><img src="https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/parsing/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/kitchen-engineer42/joharnessburg/parsing"><img src="https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/parsing.svg" alt="Reviewed on agentmods" width="80" 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.00112 | $0.02180 |
| Opus 5 | $0.00056 | $0.01090 |
| Sonnet 5 | $0.00022 | $0.00436 |
| Haiku 4.5 | $0.00011 | $0.00218 |
Grade A, and why
parsing 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 10d ago.
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 — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.
parsing
The first useful thing John does on any project: read the user's raw input materials and produce structured markdown the rest of the pipeline can consume. This skill teaches a capability ladder — probe what you have, start at the cheapest rung that works, and escalate when the output isn't good enough for the job.
Probe first
Before parsing anything, take stock of two things and write the result into PLAN.md's parse-phase notes:
- The corpus: file types, counts, sizes, and structure. Is it native-PDF or scanned? Office formats? A folder tree of small files? One 2,000-page monster? A quick inventory (
ls -R+ reading the first KB of representative files) tells you which rungs you'll need. - The environment: which rungs are available. markitdown is in-process (
pip install markitdown); ppx is usable only if$JOHN_PPX_CLIENT_URLis set and/readyzreturns HTTP 200 withstatus: "ready", service identity, and capabilities./healthzis liveness only. Probe, don't assume — a missing rung changes routing, and discovering that mid-fan-out wastes a phase.
Echo what you found ("32 PDFs (~8 scanned), 5 DOCX, ppx reachable at :8501") before routing. Cheap self-check: if the inventory is wrong, every downstream decision is wrong.
The capability ladder
Three rungs, cheapest first. The default path for a fresh git clone of John (no servers running) is rungs 0–1 — never block on rung 2 being absent.
- Tier 0 — agent-native. Read text, markdown, code, and simple/small PDFs directly. For small or already-clean inputs, use no parser at all: copy into
parsed/with ametadata.jsonfor consistency (or reference the file directly at the chunking step). - Tier 1 — markitdown, the universal in-process default.
${CLAUDE_PLUGIN_ROOT}/scripts/markitdown_parse.py. DOCX, PPTX, XLSX, HTML, plain formats. Pure Python, no server. Seereferences/markitdown-recipe.md. - Tier 2 — ppx, the high-fidelity PDF path when present.
${CLAUDE_PLUGIN_ROOT}/scripts/ppx_parse.py, a thin HTTP client to the server at$JOHN_PPX_CLIENT_URL(defaulthttp://localhost:8501). Layout-aware parsing, table/figure structure, OCR routing for scans, structureddoc.jsonalongsidedoc.md. Use it for all PDFs when the readiness probe passed; otherwise PDFs fall to Tier 1/0 with the quality caveat below. Pass a destination that does not yet exist—the client and service publish the complete artifact set atomically, and an existing destination is a conflict. The URL is the contract — any backend speaking the same HTTP shape can serve this rung (seereferences/parser-backend-swapping.md).
What ships with it
4 files 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.
- 10d ago First seen · 105 lines · 112 tokens per session scan A f7d4f6eea51b
parsing is a skill published in the GitHub repository kitchen-engineer42/joharnessburg (9 stars, last pushed 2mo ago), licensed MIT. It adds 112 tokens to every session and 2,180 once invoked, about $0.0006 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-08-31.
Other skills, from other repositories
book-capture
Capture book pages from Mac Kindle, Apple Books, Kindle Cloud Reader, PDF files, or photos of a physical book, then OCR and generate structured Obsidian Markdown. Activates when user mentions capturing a book, Kindle screenshots, Apple Books capture, book OCR, book-to-markdown conversion, photographing a paper book…
wise-markitdown
File-to-markdown text extraction via Microsoft's markitdown CLI — the ONE tool to reach for whenever text/content must be extracted from a binary or structured file: PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx/.xls), images (EXIF metadata), audio (metadata + transcription), HTML, CSV/JSON/XML, ZIP archives…
md-to-pdf
Convert Markdown to PDF via reportlab or weasyprint engines. Triggers - pdf, md to pdf, markdown to pdf, generate pdf.
especialista-em-instrucao-de-trabalho
Especialista em Instrução de Trabalho (IT). Use para detalhar como executar uma tarefa específica: passos granulares, imagens, parâmetros e segurança. Palavras-chave: instrução de trabalho, IT, tarefa, passo a passo, detalhamento, execução, segurança.
deck-publish
Publish presentation decks by converting HTML to PDF or PowerPoint (PPTX). Three modes: PDF (for distribution and archiving), screenshot PPTX (pixel-perfect, default — slides are images), and editable PPTX (real editable text boxes and shapes). Use this skill whenever the user wants to publish a deck, export slides…
PDF files: create, read, merge, fill, OCR, edit text.