a619616736
test_cli_entrypoint_end_to_end copies add_contributor.py with read_text()/write_text() and no encoding argument, so both fall back to the system locale. add_contributor.py contains UTF-8 multi-byte characters (an em dash), which makes the read raise UnicodeDecodeError on any non-UTF-8 Windows locale (observed on cp950 / Traditional Chinese). The trailing mapping-file read gets the same treatment for symmetry. Same footgun class as the subprocess text=True sweep in #60741, just on the pathlib read_text/write_text side. 🤖 Generated with [Claude Code](https://claude.com/claude-code)