BUG-003: annotations de types, gardes None sur get_user(), PdfReader: Any et import PROVIDERS manquant (bug latent main.py:4523). Etape mypy du CI rendue bloquante (etait advisory).
BUG-004: lien README.md -> docs/CONTRIBUTING.md corrige (+ DELIVERY_WORKFLOW.md), arbre projet mis a jour, parite README.fr.md.
Verifie: mypy 0 erreur, ruff OK, pytest 728 passed / 5 skipped, frontend OK, liens md OK.
- bookslm.py: PERF402 — list(_cache) au lieu de la boucle d'append
- bookslm_routes.py: SIM102 — combine les conditions imbriquées (via --unsafe-fixes)
- export.py: DTZ005 — datetime.now(tz=timezone.utc) au lieu de naive now()
- watcher.py: SIM102 — combine les conditions imbriquées
Résultat : ruff check backend/ → All checks passed!
Vérifié : pytest full suite reste 492 passed, 5 skipped, 0 failed.