Skip to content

fix(conformance): force LF for vendored clause prose on Windows checkout#361

Merged
pofallon merged 1 commit into
mainfrom
fix/clause-prose-lf-gitattributes
Jul 24, 2026
Merged

fix(conformance): force LF for vendored clause prose on Windows checkout#361
pofallon merged 1 commit into
mainfrom
fix/clause-prose-lf-gitattributes

Conversation

@pofallon

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #360 (normative clause inventory, 021). That PR auto-merged at its first commit before the Windows CRLF fix landed, so main's Test (MVP fast) (windows) lane is currently broken.

On a Windows checkout, git's autocrlf rewrites the vendored spec prose LF→CRLF, which changes the bytes and breaks the 021 machinery: SHA-256 fingerprint verification against manifest.json, the committed-inventory byte-comparison (clause check / V14), and the explicit no-CR guard — cascading into 27 clause integration-test failures (all other lanes, including the live-certification parity lane, passed).

Fix

Extend .gitattributes with -text for the new byte-exact 021 paths, mirroring the existing 020 schema-inventory entries:

  • conformance/spec/** (vendored prose + fingerprint manifest)
  • conformance/inventory/clauses.json (machine-owned, byte-compared)
  • fixtures/conformance/prose/**, fixtures/conformance/clause-drift/**

Committed blobs are already LF, so this only pins the working-tree bytes on every platform — no file content changes.

🤖 Generated with Claude Code

https://claude.ai/code/session_019vhr7Tcf8ybvSZSE1owqBT

The 021 normative clause inventory fingerprint-verifies the vendored spec
Markdown against manifest.json, byte-compares the committed inventory against
a fresh regeneration, and explicitly rejects any CR byte in the prose. On a
Windows checkout git's autocrlf rewrote LF to CRLF, changing the bytes and
failing every fingerprint / byte-comparison / no-CR check (27 clause
integration tests on the windows dev-fast lane).

Extend .gitattributes with `-text` for the new byte-exact paths, mirroring the
020 schema-inventory entries: conformance/spec/**, conformance/inventory/
clauses.json, fixtures/conformance/prose/**, fixtures/conformance/clause-drift/**.
Committed blobs are already LF, so this only pins the working-tree bytes on
every platform.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019vhr7Tcf8ybvSZSE1owqBT
@github-actions github-actions Bot added the fix Bug fix label Jul 24, 2026
@pofallon
pofallon merged commit 8bdb445 into main Jul 24, 2026
14 checks passed
@pofallon
pofallon deleted the fix/clause-prose-lf-gitattributes branch July 24, 2026 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant