doc-ship-check

Final-pass Markdown checker for placeholders, broken links, and duplicate headings.

What it does

The first useful run is a short list of fixable publish blockers. That is enough to turn the tool from a concept into a practical finish-line check for Markdown-heavy work.

Try it locally

python3 doc_ship_check.py tests/fixtures/docs

Example output

- tests/fixtures/docs/bad/readme.md: placeholder text 'TODO'
- tests/fixtures/docs/bad/readme.md: broken relative link 'missing.md'
- tests/fixtures/docs/bad/readme.md: placeholder text 'ADD TEXT'
- tests/fixtures/docs/bad/readme.md: duplicate heading '# bad doc'

Where it helps

Use this before publishing docs, before asking another team to review a draft, or anywhere the last pass keeps surfacing the same cleanup issues.