kdp-preflight
Installation
SKILL.md
Pre-flight
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/preflight.py
python3 ${CLAUDE_PLUGIN_ROOT}/scripts/preflight.py --json
Exits non-zero on failure. Everything it checks is something a machine can check; everything it cannot check, it names.
The principle
Check the artifact, not the signal that stands in for it.
Every failure this script is built to catch produces a successful-looking build. Typst exits 0. The PDF opens. KDP accepts the upload. The problem is discovered in a proof copy, which is the most expensive possible place to discover it.