---
name: deliver-pdf
description: Сдача документа в PDF — единственный экспортный формат ядра. Детерминированный экспортёр разрешает wikilinks, собирает читаемый PDF цепочкой движков (typst → weasyprint → wkhtmltopdf → Chrome headless → standalone-HTML). Перед сдачей — link-check и verifier.
---

# deliver-pdf — сдача в PDF

Используй, когда документ из `spec/` нужно отдать за пределы корпуса:
заказчику, в письмо, на согласование. PDF — единственный экспортный
формат ядра (docx — осознанно нет; в Confluence владелец импортирует
`.md` сам).

## Команда

```sh
python3 .claude/skills/deliver-pdf/scripts/export_pdf.py spec/<док>.md
# → spec/<док>.pdf ; опции: -o путь, --corpus wiki spec, --engine auto|...
```

Экспортёр детерминированный: разрешает `[[wikilink|текст]]` → текст,
`![[картинка]]` → встроенное изображение (поиск по basename в корпусе),
снимает frontmatter (title идёт в заголовок PDF), прогоняет pandoc и
печёт PDF первым доступным движком:

| Движок | Откуда берётся |
|---|---|
| `typst` | `brew install typst` — рекомендуемый, самый чистый вывод |
| `weasyprint` / `wkhtmltopdf` | если стоят |
| Chrome headless | есть почти на любом маке — работает из коробки |
| standalone-HTML | последний рубеж: файл `.html` + печать в PDF из браузера (⌘P) |

## Перед сдачей — обязательный минимум

1. `link-check` по документу — битые ссылки в сдаваемом ТЗ недопустимы.
2. Гигиена: grep по документу на внутренние IP/хосты/токены (ось 6
   `tz-audit`) — leak-guard защищает запись, но не экспорт.
3. Вердикт `verifier` — сдаётся только `status: review/approved`
   документ; черновики не экспортируются.

## Ограничения — честно

- `mermaid`-блоки в PDF не рендерятся: ядро не возит рендерер
  (правило границы). Диаграмма нужна в сдаче → положи рядом её PNG
  (`![[диаграмма.png]]`) — экспортёр встроит; или сдавай `.html`, если
  у получателя есть браузер.
- Пакет из нескольких документов — прогони экспортёр по каждому и
  собери манифест сдачи (что, кому, дата, версии) в
  `stages/NNN-delivery/` — сдача пакета это `stage`.
