- ruff: fix all 328 errors (autofix + manual); move config to [tool.ruff.lint]
- mypy: fix all errors (annotations, nullable-column guards, stale kwargs
in weekly report caller)
- black: reformat src/tests so black --check passes
- CI: remove `|| true` from ruff/black/mypy/pytest steps in both
.gitea and .github workflows; install project deps and add mypy
step in gitea python-ci so gates actually run
- docs: move 14 root status/guide markdown files into docs/, update links