precommit: add pinned ruff-pre-commit hook + document drift gates
`make pre-commit` installed the pre-commit package, but without a
`.pre-commit-config.yaml` the git hook was a silent no-op. Wire it to
`astral-sh/ruff-pre-commit` so staged Python gets gated locally.
Pin the hook rev to `v0.15.2` to match the ruff version in `uv.lock`, and
leave a config comment telling future readers to bump both together on
`make update`.
Run `ruff-format` with `args: [--check]` so the hook stays pass-only and
fails loudly instead of silently reformatting, and keep `ruff-check` on its
default non-fixing behavior. This matches the `make test` format-check gate
and points contributors at `make format` when drift appears.
Document the two drift gates in a new `### Drift prevention` subsection
under `AGENTS.md` §10 and retitle the `make pre-commit` row in §5 to say
it should be run once after cloning to install the ruff format/lint hook.
`CLAUDE.md` and `GEMINI.md` are symlinks to `AGENTS.md`, so one edit covers
all three.
No source files were touched; `ruff format --check .` and `ruff check .`
were already green at 566 files.
Co-Authored-By: Codex <codex@openai.com>