Repository navigation
Expand file tree
/
Copy path.gitattributes
More file actions
102 lines (89 loc) · 4.94 KB
/
Copy path.gitattributes
File metadata and controls
102 lines (89 loc) · 4.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# Hooks and the statusline run under bash/python on every platform — keep LF so
# they never ship with CRLF (which breaks bash shebangs and is noisy in Python).
*.sh text eol=lf
*.py text eol=lf
hooks/* text eol=lf
# The generated root Pi manifest is compared byte-for-byte on every host.
/package.json text eol=lf
# Coverage provenance compares this shared Pi input to its exact Git bytes.
/core/hosts.json text eol=lf
# The native artifact engine hash-binds reviewed fixtures and legacy bytes.
# Preserve those exact bytes on Windows as well as Unix checkouts.
core/artifacts/** text eol=lf
# Native HTML and retained engine evidence are hashed as exact bytes. Disable
# checkout and staging conversion; historical before-images may contain CRLF.
/.codearbiter/specs/*.html -text
/.codearbiter/plans/*.html -text
/.codearbiter/.artifacts/** -text
# The reviewed structured-artifact reference pair is renderer-verified against
# its exact generated HTML bytes. A Windows autocrlf checkout must not turn the
# LF renderer output into CRLF and manufacture RENDER_DRIFT.
docs/artifacts/design/original-review2/** text eol=lf
# Reviewed Pi host graphs are hash-bound byte-for-byte and must survive a
# Windows checkout without newline conversion.
.github/fixtures/pi-hosts/**/*.json text eol=lf
.github/fixtures/pi-hosts/**/.npmrc text eol=lf
# Frozen debug qualification inputs are verified against their committed bytes.
# Disable newline conversion so Windows checkouts preserve those identities.
/.github/fixtures/debug/cases.json -text
/docs/proposals/debug-correctness/D1-CASES.json -text
# Pi release metadata and TypeScript/JavaScript artifacts are also checked as
# exact UTF-8/LF bytes after checkout and regeneration on every hosted OS.
plugins/ca-pi/**/*.json text eol=lf
plugins/ca-pi/**/*.js text eol=lf
plugins/ca-pi/**/*.mjs text eol=lf
plugins/ca-pi/**/*.ts text eol=lf
plugins/ca-pi/**/*.txt text eol=lf
# The markdown surface is generated (core/surface/ -> plugin trees) and verified
# by a BINARY byte-compare (tools/build-surface.py --check), so these trees must
# check out LF or the gate false-fails on Windows. Deliberately scoped: operator
# state under .codearbiter/ (audit artifacts, reports, logs) and site test
# fixtures keep their committed bytes untouched.
core/surface/** text eol=lf
plugins/**/*.md text eol=lf
docs/**/*.md text eol=lf
/*.md text eol=lf
# The selected production-byte rollout pilot is bound to one cross-host digest
# pair. Keep only those two legacy inputs LF-stable so Windows checkout cannot
# rewrite the bytes the migration/rollback evidence promises to preserve.
/.codearbiter/specs/reaudit-ra03-read-only-review-aggregation.md text eol=lf
/.codearbiter/plans/reaudit-ra03-read-only-review-aggregation.md text eol=lf
# Workflows and their composite actions. Not a style preference: an editor on
# Windows that rewrites one of these wholesale turns a four-line change into a
# whole-file diff, which is what happened to ci.yml in #530 (3323 changed lines
# for 44 real insertions) and which hides the actual edit from every reviewer
# and every future `git blame`. YAML block scalars normalize line breaks when
# parsed, so the runner never noticed - nothing failed, and that is precisely
# why nothing caught it.
.github/workflows/*.yml text eol=lf
.github/actions/**/*.yml text eol=lf
# These scripts are a literal-byte trust boundary: the manifest hashes their
# tracked Git blobs and the protected Windows runner validates checkout bytes.
/.github/scripts/Invoke-CodeArbiterDesktopCandidate.ps1 text eol=lf
/.github/scripts/Invoke-CodeArbiterDesktopUiDriver.ps1 text eol=lf
/.github/scripts/Invoke-CodeArbiterDesktopRouteProbe.ps1 text eol=lf
# TypeScript/JavaScript/JSON across the plugin and site trees. #515 showed this
# is not cosmetic. An editor pass on Windows flipped farm.ts and
# farm.unit.test.ts to CRLF, which made git read the ENTIRE file as added — and
# the H-09b security backstop scans ADDED lines for crypto and secret patterns.
# Every pre-existing hash-construction call and every credential-shaped test
# fixture in those files therefore counted as newly introduced, and a
# concurrency fix touching no such code was blocked demanding a security pass.
#
# (Naming the actual API here would trip that same scanner on this comment —
# which it did, once, while this note was being written.)
#
# A whole-file diff does not just bury the change; it makes every line-scanning
# gate in this repo fire on code nobody wrote. README.md was already immune
# because `/*.md` above pins it, which is exactly why its diff stayed two lines
# while farm.ts's was six thousand.
#
# Verified before adding: no committed file under these globs is CRLF today, so
# this normalizes nothing retroactively and only prevents the next drift.
plugins/**/*.ts text eol=lf
plugins/**/*.js text eol=lf
plugins/**/*.mjs text eol=lf
plugins/**/*.json text eol=lf
site/**/*.ts text eol=lf
site/**/*.json text eol=lf
.claude-plugin/*.json text eol=lf