# 사실 인덱스 산출물과 추출기는 개행을 LF 로 고정한다. # # 왜: 추출기는 `\n` 으로 쓰는데 `core.autocrlf=true` 머신(Windows 기본)에서 체크아웃하면 # 워킹트리 파일이 CRLF 가 된다. 그러면 PRD §Success Metrics 의 "재현성 · 편차 0" # (추출 2회 실행 후 `diff` 빈 출력) 판정이 머신마다 갈린다 — 값이 아니라 개행 때문에. # 실측 확인: 재체크아웃 후 commits.admin.jsonl 에 CR 1,157개가 생기고 diff 가 깨졌다. docs/_meta/index/* text eol=lf # 사실 인덱스 산출물과 추출기의 개행을 LF 로 고정한다. # # 소유: `.claude/prds/insuniverse-docs-00-protocol.prd.md` §`.gitattributes` — EOL 정책 # (2026-08-06, `12-index-runtime` 회부 5 수용). `.gitmodules` 와 같은 루트 인프라 부류다. # # 왜: 이 저장소는 `core.autocrlf=true` 이고 `.gitattributes` 가 없었다. 그 상태에서는 커밋된 LF # 산출물이 워킹트리에서 CRLF 로 나오므로, 추출기 `--emit-yaml` 출력(LF)과 커밋본의 **바이트 # 비교가 항상 실패**하고 인덱스의 `set_sha256` 도 플랫폼마다 갈린다. 재현성 지표가 산출물을 # 실제로 덮으려면 EOL 이 먼저 고정돼야 한다. # # 범위 제한: 전역 `* text=auto` 를 걸지 않는다. 아래 두 glob 만 건드려 기존 추적 파일의 EOL 을 # 흔들지 않는다. 범위 검사는 Validation `#5c-0`(규칙 집합 정확 일치) · # 적용 검사는 `#5c`(check-attr 출력 파싱) · 결과 검사는 `#5c-2`(전역 churn 0건). # # 위 `docs/_meta/index/*` 는 10-index-git 축이 같은 사유로 먼저 올린 규칙이다(main). 아래 두 줄과 # 겹치는 부분은 결과가 동일하고(둘 다 `eol=lf`), `docs/_meta/verify/*.mjs` 는 위 규칙이 덮지 # 않으므로 양쪽을 모두 남긴다. docs/_meta/index/*.yaml text eol=lf docs/_meta/verify/*.mjs text eol=lf # `12-index-runtime` 회부 12 수용 (2026-08-10, 마일스톤 4). 위 두 glob 과 **같은 사유**의 범위 # 확장이다 — `policy-candidates.runtime.jsonl` 은 추출기 `--emit-jsonl` 출력(LF)을 그대로 커밋하고 # 커밋본과 재방출의 바이트 비교가 재현성 지표 본체다. 이 줄이 없으면 `core.autocrlf=true` 가 # 워킹트리를 CRLF 로 만들어 그 비교가 **첫 실행부터 항상 실패**한다. docs/_meta/index/*.jsonl text eol=lf