The Windows footgun checker caught bare Path.read_text()/write_text()
in the config I/O I added in the previous commit. Without encoding=,
Python uses locale.getpreferredencoding() — cp1252/cp936 on Windows —
so a UTF-8 config crashes or writes mojibake.
This was the single root cause of both red checks: the blocking lint
job and tests/scripts/test_windows_footguns_full_repo_scan.py, which
runs the same checker over the repo. Everything else was green
(38,447 passed, 1 failed).
Verified locally: the checker now reports no footguns across 1019
files, and the full-repo-scan test passes.