Open-source plugin that closes a silent-failure class in document ingestion: the standard converter exits 0 even when it recovers nothing, so an image-only PDF yields an empty file a model reports as blank. Conversions are graded on the characters actually recovered per page against a threshold set from measured documents, and a ~400-character pointer replaces document content; a 200-page PDF is paid for once instead of re-rendered as images every turn. Across both plugins: 55 automated tests, CI on Windows, macOS, and Linux across two Python versions, and five tagged releases. Repository: https://github.com/AndrewAvery7/claude-markitdown-hook