# Normalize line endings: Git stores LF, checks out the platform-native ending.
* text=auto

# Keep shell scripts and git hooks LF on every platform so their shebangs are
# not corrupted by a CRLF checkout on Windows (PI-362).
*.sh text eol=lf
.github/hooks/* text eol=lf

# Generated / vendored trees — collapse their diffs and drop them from GitHub's
# language stats. `.claude/` is a generated mirror of `.agents/` (never hand-
# edited); lockfiles are tool-managed; the Obsidian vault is prose, not code.
.claude/** linguist-generated=true
uv.lock linguist-generated=true
package-lock.json linguist-generated=true
bun.lock linguist-generated=true
bun.lockb binary linguist-generated=true
.agents/vault/** linguist-vendored=true
# Rendered diagram pictures (PI-680): the .mmd source is the artifact of record
# and stays diffable; the committed .svg render is regenerable (diagram skill's
# always-re-render rule), so collapse its diffs and keep it out of language stats.
docs/diagrams/**/*.svg linguist-generated=true
