-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy path.gitignore
More file actions
328 lines (303 loc) · 11.2 KB
/
Copy path.gitignore
File metadata and controls
328 lines (303 loc) · 11.2 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
# Antifailure local state. Never commit this; it holds journals and handles.
.antifailure/
# Secrets and credentials. The deny list from the repository hygiene policy.
.env
.env.*
!.env.example
!.env.sample
*.pem
*.key
*.p12
*.pfx
*.jks
kubeconfig
*.kubeconfig
credentials.json
service-account*.json
# Build output
#
# Anchored, every one of them. Unanchored, a rule like `coverage/` matches a
# directory of that name at ANY depth, and this has now cost the repository
# twice. It swallowed tools/coverage, the source of gate G4: the files existed
# on disk, `go build` and `go test` were happy, and git could not see them. A
# tool that cannot be committed is a gate that does not exist. Then `bin/`
# swallowed web/packages/db/bin, the seeder's entry point, and the failure
# arrived in CI as "Cannot find module" on a path that plainly exists locally,
# with package.json cheerfully declaring the script the whole time.
#
# The rule is the lesson rather than the two directories: if a name is only
# meant to mean the one at the root, write the slash.
/bin/
/dist/
# Where tools/release/build.sh assembles an archive before packing it. It
# holds a copy of the binary, so leaving it untracked and unignored is how a
# 58MB artifact ends up in somebody's `git add -A`.
/stage/
/.tools/
/.gate-reports/
# No trailing slash, unlike the four above, and that is not an oversight. The
# build output is a directory and `tools/coverage` is also a command, so a
# stray binary of that name lands here as a FILE. A directory-only rule ignored
# the first and not the second.
/coverage
/inputcheck
*.out
*.test
*.prof
# Terraform
.terraform/
*.tfstate
*.tfstate.*
*.tfplan
# `terraform show -json plan.tfplan` writes this, and it is NOT the human
# readable plan in another format. The JSON carries actual values alongside a
# separate `after_sensitive` structure that merely MARKS which of them are
# sensitive, so what the text plan prints as (sensitive value) is present in
# full here. A create-only plan happens to be safe because the value is not
# known yet; the moment there is real state to compare against, this file
# contains the generated database passwords. The cost job in CI reads it from
# the runner's disk and it never leaves.
plan.json
.terraform.lock.hcl.local
crash.log
# The Azure Functions host reads api/local.settings.json when somebody runs the
# site's API locally. It needs no credential today, and it is still ignored,
# because the day it needs one is the day somebody commits it: a credential is
# only committed once.
local.settings.json
# Node
node_modules/
.next/
.turbo/
out/
*.tsbuildinfo
next-env.d.ts
.astro/
playwright-report/
test-results/
blob-report/
# Editors and operating systems
.DS_Store
Thumbs.db
.idea/
.vscode/*
!.vscode/extensions.json
!.vscode/settings.recommended.json
*.swp
# Logs
*.log
npm-debug.log*
pnpm-debug.log*
# Local artifacts produced by test runs
engine/**/testdata/tmp/
runner/artifacts/
# Local gate output. Generated per run, never committed.
/.gate-reports/
# Compiled binaries built in place.
#
# `go build ./tools/claimcheck` writes ./claimcheck into whatever directory you
# ran it from, and `git add -A` then commits a platform specific executable that
# is useless to everybody including the person who built it. It has happened
# twice here: a 10MB engine/af-proxy and a 3.2MB claimcheck, both arm64 Mach-O,
# in a repository that ships Linux binaries.
#
# It has now happened a third time, with a 4.2MB `dogfood`, and the third time
# is the one that says something about the list rather than about the mistake.
# The list named the tools that existed when it was written, eleven tools were
# added since, and nobody thought about this file while adding them. A list
# that has to be maintained by remembering is a list that is wrong by default.
#
# Named rather than globbed, because a glob wide enough to catch every future
# one would also catch source directories that share a name with their command,
# and `docs` is exactly that: a tool and a site, so `/docs` here would ignore
# the whole documentation tree.
#
# So the completeness of this list is now checked instead of remembered.
# tools/gatecheck's TestEveryToolsBinaryNameIsIgnored fails when a tool has no
# line here and no reason recorded for not having one, and
# TestNoCompiledBinaryIsTracked remains the backstop for when one lands anyway.
/azguard
/changecheck
/cigate
/claimcheck
/actioncheck
/classcheck
/configguard
/conflictcheck
/constcheck
/contactcheck
/cost
/docscheck
/docsembed
/dogfood
/editioncheck
/errcheck
/errgen
/eventcheck
/execcheck
/fieldsweep
/figurecheck
/gatecheck
/gendrift
/installcheck
/installsh
/keycheck
/ldcheck
/licensecheck
/licensegen
/lintcheck
/lintgen
/manifestcheck
/modecheck
/motioncheck
/notices
/npmaudit
/origincheck
/planguard
/prosecheck
/proxysrc
/readability
/release
/releasecheck
/relnotes
/relpack
/reltar
/runbookcheck
/sbomcheck
/routecheck
/sitesmoke
/scanrepo
/schemadoc
/sidebarcheck
/site
/socketcheck
/statuscheck
/surfacecheck
/tagsync
/tfsecignores
/varcheck
/vulncheck
/walkthrough
/wirecheck
engine/af-proxy
engine/af
# Terraform. State and provider binaries never belong in the repository, and a
# local backend override is a working convenience rather than a shared choice.
.terraform/
.terraform.lock.hcl
*.tfstate
*.tfstate.*
*.tfplan
crash.log
local_backend_override.tf
# backend*.hcl rather than backend.hcl, because the production runbook tells an
# operator to create backend.production.hcl and says in as many words that it is
# ignored by git. It was not: only the bare name was listed, so following the
# documented steps left an untracked file holding the state storage account name
# for the next `git add -A` to commit. The claim and the rule agree now.
backend*.hcl
# The plan step writes plan.tfplan, plan.json and plan.txt into the stack
# directory. *.tfplan covers the first and a plan.json rule above covers the
# second; plan.txt was covered by nothing. It is `terraform show -no-color`
# output rather than the raw variable values, so it is the smaller of the two
# risks, and it is still a file nobody meant to offer to `git add -A`.
plan.txt
*.auto.tfvars
# Assembled deploy output: www/out + docs/dist + the apex files, built by
# `just site` and uploaded straight to the host. Nothing here is source.
/site/
/docs/dist/
/www/out/
# Synced by `vale sync` from the version named in .vale.ini. Not committed:
# it is a third party style package with its own licence, and vendoring it
# would put someone else's rules in this repository's notices.
tools/docs/styles/Google/
# Scratch output from browser automation.
.playwright-mcp/
# An example builds into the directory it lives in unless you say otherwise,
# and `go build ./...` does not say otherwise. One of these was staged.
/examples/*/go-api
# Python bytecode, from examples/django-api. Committed once by a `git add`
# on a directory that had been run, which is exactly how build output gets
# into a repository.
__pycache__/
*.pyc
# The report `af ci --output report.md` writes. Running an example produces one
# in that example's directory, and it is an artifact of a run rather than part
# of the example.
examples/*/report.md
# Generated by scripts/optimize-images.mjs at build time from
# www/assets/hero/*.png. The sources are committed; these are not. The encoder
# is deterministic, so a clean checkout produces the same bytes and the
# repository does not carry a second copy of every image in two more formats.
#
# The two generated extensions rather than the whole directory. Ignoring
# www/public/home/ outright also swallows any real asset somebody adds there,
# silently: `git add` says nothing and the file simply never ships. A branch
# adding a PNG to that directory is a normal thing to do and must not depend on
# whoever writes it noticing this rule.
#
# www/public/og.png is deliberately NOT here. It is generated too, but by
# scripts/make-og.mjs, which renders text with whatever fonts the machine has.
# On a CI runner with no Helvetica Neue that silently substitutes and ships a
# card nobody has looked at, so the reviewed PNG is committed and the script is
# run by hand when the card should change.
/www/public/home/*.avif
/www/public/home/*.webp
# Screenshot and scratch trees a contributor's own verification pass leaves
# behind. They are the evidence for one review, not the record of the product,
# and 64MB of them arrived in one pull request before this line existed.
.verify/
.verify-shots/
# Per-contributor agent configuration. Which assistant somebody drives, and the
# standing instructions they give it, are theirs rather than the repository's.
.agents/
.cursor/
# Written by `next dev`, which appends its own block to both files every time it
# starts: see node_modules/next/dist/server/lib/generate-agent-files.js. Nothing
# ignored them, so any `git add -A` in a worktree where somebody had run the dev
# server would have committed them, which is how the constcheck binary above got
# in. Next's own note in the file says to commit it; that is Next's opinion about
# Next's repository, and these are agent instruction files, so what they say to
# every agent working here should be a decision somebody made rather than a side
# effect of starting a dev server.
#
# The two exact paths rather than bare AGENTS.md and CLAUDE.md. A broad pattern
# would silently swallow a real one somebody writes for the engine, the console
# or the repository root, and the failure mode is the quiet one: `git add` says
# nothing and the file never ships. `git add -f` still works for these two if
# adopting Next's block is ever a deliberate choice.
/www/AGENTS.md
/www/CLAUDE.md
# tools/relpack builds a real release archive to assert what is inside it, and
# it has to do that from a directory inside the tree passed relatively, because
# that is how `just build-release` and release.yml call the script and a path
# outside the tree hides the bug the test exists for. TestMain removes it; this
# line is for the run that is interrupted before it can.
#
# Unanchored, because the whole point of the test is that a broken script puts
# the binary somewhere other than where it was told to. Anchored at the root
# this missed engine/relpack-*/, which is exactly where the defect it watches
# for lands a 60MB static binary, and the first `git add -A` after a run of the
# negative control staged it.
relpack-*
# A throwaway control plane an agent stands up to drive the console in a real
# browser. Never committed: it seeds an operator with a known password.
web/apps/api/zzserve.ts
# `go build ./tools/preview` writes ./preview at the repository root, and
# tools/gatecheck refuses any tools directory whose name is not ignored. That
# directory holds shell and TypeScript rather than Go, so the build is one
# nobody runs on purpose, which is exactly why the artefact would go unnoticed
# until a `git add -A` committed it.
#
# Anchored, so it ignores the build artefact at the root and not the harness at
# tools/preview.
/preview
# `go build ./tools/prmerge` writes ./prmerge at the repository root, for the
# same reason /preview is here: tools/gatecheck refuses any tools directory
# whose name is not ignored, because the next `git add -A` would otherwise
# commit a platform specific executable.
#
# Anchored, so it ignores the build artefact at the root and not the command at
# tools/prmerge.
/prmerge