Objective
Make the documented full local verification command produce the same formatting result on Windows and Ubuntu by enforcing repository line-ending policy.
Audit finding
GitHub CI passes ruff format --check . on Ubuntu, but this Windows checkout has core.autocrlf=true, no .gitattributes, and the same command reports 22 tracked Python files as requiring reformatting. Lint, strict mypy, 556 tests, and 100% coverage pass; the mismatch is line-ending normalization, not logic.
Scope
- Add minimal
.gitattributes policy for text and binary assets.
- Normalize tracked text mechanically without semantic changes.
- Confirm Windows and Ubuntu use the same LF content.
- Document one-time renormalization for existing checkouts.
- Mark media and binary evidence as binary.
Acceptance criteria
Non-goals
Broad restyling, changing Ruff rules, or changing runtime behavior.
Keywords
gitattributes line-endings windows ruff-format ci-parity
Objective
Make the documented full local verification command produce the same formatting result on Windows and Ubuntu by enforcing repository line-ending policy.
Audit finding
GitHub CI passes
ruff format --check .on Ubuntu, but this Windows checkout hascore.autocrlf=true, no.gitattributes, and the same command reports 22 tracked Python files as requiring reformatting. Lint, strict mypy, 556 tests, and 100% coverage pass; the mismatch is line-ending normalization, not logic.Scope
.gitattributespolicy for text and binary assets.Acceptance criteria
ruff format --check .passes on a fresh Windows checkout withcore.autocrlf=true.Non-goals
Broad restyling, changing Ruff rules, or changing runtime behavior.
Keywords
gitattributesline-endingswindowsruff-formatci-parity