@avi2dg/checks 0.52.0 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,576 +2,15 @@
2
2
 
3
3
  Every release of `@avi2dg/checks`, newest first, written by the release from its conventional commits.
4
4
 
5
- ## 0.52.0
5
+ ## 0.53.0
6
6
 
7
- Released 2026-10-25.
7
+ Released 2026-10-26.
8
8
 
9
9
  ### Features
10
10
 
11
- - **docs:** short front door README and refuse hand copied pinned versions [#206](https://github.com/avi2d/checks/pull/206)
12
- - **testing:** add 28-day refresh window for restored mutation baselines [#205](https://github.com/avi2d/checks/pull/205)
11
+ - **delivery:** release each push to main as a versioned npm release [#5](https://github.com/avi2d/checks/pull/5)
12
+ - **delivery:** keep private terms out of commits and pull request text [#2](https://github.com/avi2d/checks/pull/2)
13
13
 
14
14
  ### Fixes
15
15
 
16
- - **delivery:** refuse fork-reachable self-hosted runners, read fleet pins from config [#204](https://github.com/avi2d/checks/pull/204)
17
- - upgrade fast-uri and zod past the October advisories [#202](https://github.com/avi2d/checks/pull/202)
18
-
19
- ## 0.51.0
20
-
21
- Released 2026-10-23.
22
-
23
- ### Features
24
-
25
- - **testing:** reuse full baseline results for unchanged files [#197](https://github.com/avi2d/checks/pull/197)
26
-
27
- ### Fixes
28
-
29
- - **delivery:** accept GitHub display name on commits GitHub made [#198](https://github.com/avi2d/checks/pull/198)
30
- - **testing:** correct unit test fallback order wording to Bun default directory order [#195](https://github.com/avi2d/checks/pull/195)
31
-
32
- ## 0.50.1
33
-
34
- Released 2026-10-20.
35
-
36
- ### Fixes
37
-
38
- - **delivery:** admit the self-hosted iphone runner in private-repo ci-wiring [#193](https://github.com/avi2d/checks/pull/193)
39
-
40
- ## 0.50.0
41
-
42
- Released 2026-10-20.
43
-
44
- ### Features
45
-
46
- - **testing:** cap local checks-test at the unit tier plus a declared smoke list [#191](https://github.com/avi2d/checks/pull/191)
47
-
48
- ## 0.49.0
49
-
50
- Released 2026-10-20.
51
-
52
- ### Features
53
-
54
- - **testing:** build the full mutation baseline with bail, fastest unit tests first [#190](https://github.com/avi2d/checks/pull/190)
55
-
56
- ### Fixes
57
-
58
- - **delivery:** name the parsed invocation's line in CI wiring refusals [#189](https://github.com/avi2d/checks/pull/189)
59
- - **quality:** refuse named font sizes in font shorthand and build token map once per file [#188](https://github.com/avi2d/checks/pull/188)
60
- - **delivery:** judge shell-shaped release references in checks-ci-wiring [#186](https://github.com/avi2d/checks/pull/186)
61
-
62
- ## 0.48.1
63
-
64
- Released 2026-10-20.
65
-
66
- ### Fixes
67
-
68
- - **quality:** hold font shorthand and local size custom properties to the tokens option [#185](https://github.com/avi2d/checks/pull/185)
69
- - **testing:** compare checks-night-run against the latest night that recorded scores [#184](https://github.com/avi2d/checks/pull/184)
70
- - **testing:** default checks-test --parallel to the machine's core count [#182](https://github.com/avi2d/checks/pull/182)
71
-
72
- ## 0.48.0
73
-
74
- Released 2026-10-19.
75
-
76
- ### Features
77
-
78
- - **quality:** add opt-in BEM, flat selector and page :has stylelint options [#179](https://github.com/avi2d/checks/pull/179)
79
-
80
- ## 0.47.0
81
-
82
- Released 2026-10-19.
83
-
84
- ### Features
85
-
86
- - **testing:** file night-run regressions as GitHub issues instead of gating pull requests [#174](https://github.com/avi2d/checks/pull/174)
87
-
88
- ## 0.46.0
89
-
90
- Released 2026-10-19.
91
-
92
- ### Features
93
-
94
- - **quality:** refuse CSS comments, non-ASCII selectors and stylesheets over 400 lines [#172](https://github.com/avi2d/checks/pull/172)
95
-
96
- ## 0.45.1
97
-
98
- Released 2026-10-19.
99
-
100
- ### Fixes
101
-
102
- - **quality:** pass @property in the Baseline CSS gate at every target [#169](https://github.com/avi2d/checks/pull/169)
103
-
104
- ## 0.45.0
105
-
106
- Released 2026-10-18.
107
-
108
- ### Breaking changes
109
-
110
- - **quality:** hold CSS to the stylelint rule families set in stylelint.config.ts [#167](https://github.com/avi2d/checks/pull/167)
111
-
112
- ## 0.44.0
113
-
114
- Released 2026-10-18.
115
-
116
- ### Features
117
-
118
- - split the test suite into parallel unit and e2e CI tiers [#162](https://github.com/avi2d/checks/pull/162)
119
- - **testing:** hunt flakes with parallel test workers and replay failing workers [#164](https://github.com/avi2d/checks/pull/164)
120
- - **mutation:** add checks-mutation-scope to limit PR mutation runs to the change [#161](https://github.com/avi2d/checks/pull/161)
121
- - **quality:** add checks-no-plain-js gate refusing plain JavaScript sources [#163](https://github.com/avi2d/checks/pull/163)
122
- - **docs:** add checks-copy gate to refuse dashes in declared copy [#160](https://github.com/avi2d/checks/pull/160)
123
-
124
- ## 0.43.0
125
-
126
- Released 2026-10-17.
127
-
128
- ### Features
129
-
130
- - **testing:** run checks-test files in parallel on opt-in [#158](https://github.com/avi2d/checks/pull/158)
131
-
132
- ## 0.42.0
133
-
134
- Released 2026-10-14.
135
-
136
- ### Features
137
-
138
- - **delivery:** fail a setup-bun step whose Bun version drifts from the fleet pin [#156](https://github.com/avi2d/checks/pull/156)
139
-
140
- ## 0.41.1
141
-
142
- Released 2026-10-14.
143
-
144
- ### Fixes
145
-
146
- - **delivery:** refuse workflow references to missing workflows or jobs in ci-wiring [#153](https://github.com/avi2d/checks/pull/153)
147
-
148
- ## 0.41.0
149
-
150
- Released 2026-10-12.
151
-
152
- ### Features
153
-
154
- - **testing:** keep mutation baselines and flake reports out of Actions artifact storage [#150](https://github.com/avi2d/checks/pull/150)
155
-
156
- ## 0.40.0
157
-
158
- Released 2026-10-11.
159
-
160
- ### Features
161
-
162
- - **delivery:** fold title lint into the ci job and trim docs-only runs [#146](https://github.com/avi2d/checks/pull/146)
163
-
164
- ## 0.39.0
165
-
166
- Released 2026-10-11.
167
-
168
- ### Features
169
-
170
- - **testing:** prune superseded mutation baselines after main uploads [#144](https://github.com/avi2d/checks/pull/144)
171
-
172
- ## 0.38.1
173
-
174
- Released 2026-10-11.
175
-
176
- ### Fixes
177
-
178
- - **docs:** derive README what-you-see line from source, make Where things are optional [#142](https://github.com/avi2d/checks/pull/142)
179
-
180
- ## 0.38.0
181
-
182
- Released 2026-10-10.
183
-
184
- ### Features
185
-
186
- - **testing:** add checks-mutation-baseline to restore the baseline from a runner cache [#140](https://github.com/avi2d/checks/pull/140)
187
-
188
- ## 0.37.0
189
-
190
- Released 2026-10-09.
191
-
192
- ### Features
193
-
194
- - ship typed defineConfig builders for oxlint, knip and dependency-cruiser [#138](https://github.com/avi2d/checks/pull/138)
195
-
196
- ## 0.36.0
197
-
198
- Released 2026-10-08.
199
-
200
- ### Features
201
-
202
- - **testing:** add unitTestFiles so each mutant loads only the unit tests that cover it [#132](https://github.com/avi2d/checks/pull/132)
203
-
204
- ## 0.35.1
205
-
206
- Released 2026-10-07.
207
-
208
- ### Fixes
209
-
210
- - **delivery:** recognise mutation jobs that run stryker through repository shell scripts [#130](https://github.com/avi2d/checks/pull/130)
211
-
212
- ## 0.35.0
213
-
214
- Released 2026-10-07.
215
-
216
- ### Features
217
-
218
- - **quality:** add the opt-in checks-browser runner and checks-frontend-syntax gate [#127](https://github.com/avi2d/checks/pull/127)
219
-
220
- ### Fixes
221
-
222
- - **testing:** cap mutation concurrency at half the available cores [#129](https://github.com/avi2d/checks/pull/129)
223
- - **docs:** check Russian prose in the sentence length and one-sentence-per-line rules [#126](https://github.com/avi2d/checks/pull/126)
224
-
225
- ## 0.34.0
226
-
227
- Released 2026-10-03.
228
-
229
- ### Features
230
-
231
- - **delivery:** pin mutation jobs to winbox and default other jobs to hosted runners [#123](https://github.com/avi2d/checks/pull/123)
232
-
233
- ## 0.33.0
234
-
235
- Released 2026-10-03.
236
-
237
- ### Features
238
-
239
- - **docs:** report sentences over trial length caps as advisory [#120](https://github.com/avi2d/checks/pull/120)
240
-
241
- ### Fixes
242
-
243
- - move effect to stable 4.0.0 [#122](https://github.com/avi2d/checks/pull/122)
244
- - **complexity:** accept signed numbers and earlier props names in thin-astro defaults [#115](https://github.com/avi2d/checks/pull/115)
245
- - **docs:** judge agent file entries and headings from a CommonMark parse [#116](https://github.com/avi2d/checks/pull/116)
246
- - **docs:** fail link anchors the checks-docs reference rule could not check [#114](https://github.com/avi2d/checks/pull/114)
247
-
248
- ## 0.32.0
249
-
250
- Released 2026-09-29.
251
-
252
- ### Features
253
-
254
- - **delivery:** add checks-secrets gate that fails a range whose commits add a secret [#112](https://github.com/avi2d/checks/pull/112)
255
- - **delivery:** open a release pull request daily and tag it when it merges [#111](https://github.com/avi2d/checks/pull/111)
256
-
257
- ## 0.31.0
258
-
259
- Released 2026-09-28.
260
-
261
- ### Features
262
-
263
- - lint .astro files in lint coverage, unused and a thin-frontmatter rule [#108](https://github.com/avi2d/checks/pull/108)
264
-
265
- ## 0.30.0
266
-
267
- Released 2026-09-28.
268
-
269
- ### Features
270
-
271
- - **testing:** refuse full mutation runs outside CI [#106](https://github.com/avi2d/checks/pull/106)
272
- - **docs:** refuse a decision-record revision link named on one side only [#105](https://github.com/avi2d/checks/pull/105)
273
-
274
- ## 0.29.0
275
-
276
- Released 2026-09-28.
277
-
278
- ### Breaking changes
279
-
280
- - **docs:** hold agent files to a 3,000-character router where every entry points [#101](https://github.com/avi2d/checks/pull/101)
281
-
282
- ### Fixes
283
-
284
- - **testing:** run checks-test with CI=true so focused tests fail locally [#100](https://github.com/avi2d/checks/pull/100)
285
-
286
- ## 0.28.0
287
-
288
- Released 2026-09-28.
289
-
290
- ### Features
291
-
292
- - **dependencies:** add checks-advisories gate for advisories a bun.lock change adds [#98](https://github.com/avi2d/checks/pull/98)
293
-
294
- ## 0.27.0
295
-
296
- Released 2026-09-27.
297
-
298
- ### Breaking changes
299
-
300
- - **quality:** add data-shape oxlint plugin for readonly params and schema twins [#96](https://github.com/avi2d/checks/pull/96)
301
- - ship stricter type gates for any, optional keys, process.env and ts-reset [#94](https://github.com/avi2d/checks/pull/94)
302
-
303
- ### Features
304
-
305
- - **docs:** check agent files, vanished names and reports about the past [#95](https://github.com/avi2d/checks/pull/95)
306
-
307
- ### Fixes
308
-
309
- - describe the kit without naming its owner in the package description [#91](https://github.com/avi2d/checks/pull/91)
310
-
311
- ## 0.26.0
312
-
313
- Released 2026-09-27.
314
-
315
- ### Breaking changes
316
-
317
- - **complexity:** add checks-exports gate holding unused exports to a shrinking baseline [#89](https://github.com/avi2d/checks/pull/89)
318
- - move doc templates into dist/templates and presets into src/quality [#88](https://github.com/avi2d/checks/pull/88)
319
-
320
- ## 0.25.0
321
-
322
- Released 2026-09-27.
323
-
324
- ### Breaking changes
325
-
326
- - stop shipping checks-backtest and unused exports keys, guard the tarball with Knip [#86](https://github.com/avi2d/checks/pull/86)
327
- - sort the kit into src/<vector>/ and require tests/<level>/ [#84](https://github.com/avi2d/checks/pull/84)
328
-
329
- ### Features
330
-
331
- - add checks-unused gate that rejects unreferenced TypeScript files via Knip [#85](https://github.com/avi2d/checks/pull/85)
332
-
333
- ## 0.24.2
334
-
335
- Released 2026-09-27.
336
-
337
- ### Fixes
338
-
339
- - **scripts:** list commits merged in after a bump under that release [#82](https://github.com/avi2d/checks/pull/82)
340
- - **scripts:** leave versions with no listable commits out of the changelog [#81](https://github.com/avi2d/checks/pull/81)
341
-
342
- ## 0.24.1
343
-
344
- Released 2026-09-27.
345
-
346
- ### Fixes
347
-
348
- - **scripts:** let checks-changelog release a repository that gains its version late [#79](https://github.com/avi2d/checks/pull/79)
349
-
350
- ## 0.24.0
351
-
352
- Released 2026-09-27.
353
-
354
- ### Features
355
-
356
- - **scripts:** ship checks-changelog, checks-release-notes and checks-release-report bins [#77](https://github.com/avi2d/checks/pull/77)
357
-
358
- ### Fixes
359
-
360
- - **scripts:** make checks-vendor re-freeze a cached tree whose owner write bit came back [#76](https://github.com/avi2d/checks/pull/76)
361
-
362
- ## 0.23.0
363
-
364
- Released 2026-09-26.
365
-
366
- ### Breaking changes
367
-
368
- - move cognitive-complexity into its own readability oxlint plugin [#74](https://github.com/avi2d/checks/pull/74)
369
-
370
- ## 0.22.0
371
-
372
- Released 2026-09-26.
373
-
374
- ### Breaking changes
375
-
376
- - replace quality.json with native configs and workflow gates [#72](https://github.com/avi2d/checks/pull/72)
377
- - declare test skips inline and add live and pixel test tiers [#71](https://github.com/avi2d/checks/pull/71)
378
-
379
- ### Features
380
-
381
- - create GitHub releases with linked changelogs [#70](https://github.com/avi2d/checks/pull/70)
382
-
383
- ### Fixes
384
-
385
- - **scripts:** run generated commitlint through bun so the runner needs no node [#69](https://github.com/avi2d/checks/pull/69)
386
- - **test:** allow npm pack enough time on release runners [#68](https://github.com/avi2d/checks/pull/68)
387
-
388
- ## 0.21.0
389
-
390
- Released 2026-09-26.
391
-
392
- ### Features
393
-
394
- - **scripts:** let quality.json set the runs-on of generated workflows [#66](https://github.com/avi2d/checks/pull/66)
395
-
396
- ## 0.20.0
397
-
398
- Released 2026-09-26.
399
-
400
- ### Features
401
-
402
- - **scripts:** pin node from .node-version in the generated CI workflow [#64](https://github.com/avi2d/checks/pull/64)
403
- - **scripts:** add checks-subsumed-tests to report tests another test subsumes in a [#62](https://github.com/avi2d/checks/pull/62)
404
-
405
- ### Fixes
406
-
407
- - **scripts:** lint a PR title that starts with # in the generated commitlint workflow [#63](https://github.com/avi2d/checks/pull/63)
408
-
409
- ## 0.19.0
410
-
411
- Released 2026-09-26.
412
-
413
- ### Features
414
-
415
- - **scripts:** judge checks-mutation-compare mutant by mutant instead of by score [#58](https://github.com/avi2d/checks/pull/58)
416
- - **scripts:** fail a test left in tests/quarantine past 30 days [#59](https://github.com/avi2d/checks/pull/59)
417
- - **scripts:** pin shared read-only library clones with checks-vendor [#57](https://github.com/avi2d/checks/pull/57)
418
-
419
- ## 0.18.0
420
-
421
- Released 2026-09-26.
422
-
423
- ### Features
424
-
425
- - **scripts:** generate commitlint and CI workflows with checks-quality [#54](https://github.com/avi2d/checks/pull/54)
426
-
427
- ### Fixes
428
-
429
- - **scripts:** make checks-quality refuse a config that drops the kit's extends [#55](https://github.com/avi2d/checks/pull/55)
430
-
431
- ## 0.17.0
432
-
433
- Released 2026-09-25.
434
-
435
- ### Features
436
-
437
- - **effect-channel:** add a cognitive complexity rule and make it the size budget's [#50](https://github.com/avi2d/checks/pull/50)
438
- - **scripts:** export the refused directive names from comment-matchers [#49](https://github.com/avi2d/checks/pull/49)
439
- - refuse undeclared package imports and deprecated symbol use [#48](https://github.com/avi2d/checks/pull/48)
440
-
441
- ## 0.16.0
442
-
443
- Released 2026-09-25.
444
-
445
- ### Features
446
-
447
- - **scripts:** add checks-repetition to hold new repetition in production code [#46](https://github.com/avi2d/checks/pull/46)
448
- - **scripts:** add the recommended size limits, a tests budget and an overrun ratchet [#45](https://github.com/avi2d/checks/pull/45)
449
-
450
- ## 0.15.0
451
-
452
- Released 2026-09-25.
453
-
454
- ### Features
455
-
456
- - **scripts:** hold living docs to prose rules and resolvable references in checks-docs [#42](https://github.com/avi2d/checks/pull/42)
457
-
458
- ## 0.14.0
459
-
460
- Released 2026-09-25.
461
-
462
- ### Features
463
-
464
- - **scripts:** generate README blocks, check CONTRIBUTING.md, and give each bin a page [#39](https://github.com/avi2d/checks/pull/39)
465
- - **scripts:** generate CHANGELOG.md from conventional commits and ship it in the package [#40](https://github.com/avi2d/checks/pull/40)
466
-
467
- ## 0.13.0
468
-
469
- Released 2026-09-25.
470
-
471
- ### Features
472
-
473
- - **scripts:** add checks-docs gate holding doc files to shared templates [#37](https://github.com/avi2d/checks/pull/37)
474
-
475
- ## 0.12.0
476
-
477
- Released 2026-09-24.
478
-
479
- ### Features
480
-
481
- - **scripts:** add size budget, feature-owner rules and change-signal gates [#35](https://github.com/avi2d/checks/pull/35)
482
-
483
- ### Fixes
484
-
485
- - release 0.12.0 and read local exports in checks-feature-owners [#36](https://github.com/avi2d/checks/pull/36)
486
-
487
- ## 0.11.0
488
-
489
- Released 2026-09-24.
490
-
491
- ### Features
492
-
493
- - **scripts:** add quality.json with schema, loader and checks-quality fragment generator [#33](https://github.com/avi2d/checks/pull/33)
494
-
495
- ## 0.10.0
496
-
497
- Released 2026-09-24.
498
-
499
- ### Features
500
-
501
- - **scripts:** add checks-test skip gate and checks-flake seed recorder [#31](https://github.com/avi2d/checks/pull/31)
502
-
503
- ## 0.9.0
504
-
505
- Released 2026-09-24.
506
-
507
- ### Features
508
-
509
- - **scripts:** let ciWiring.lintGates select the gates checks-lint runs [#29](https://github.com/avi2d/checks/pull/29)
510
- - **oxlintrc:** turn on no-unsafe-type-assertion and no-non-null-assertion [#26](https://github.com/avi2d/checks/pull/26)
511
-
512
- ### Fixes
513
-
514
- - **scripts:** split Effect-free comment matchers out for hosts without node_modules [#30](https://github.com/avi2d/checks/pull/30)
515
- - **scripts:** judge a repository's first commit against the empty tree in the range gates [#28](https://github.com/avi2d/checks/pull/28)
516
- - **lint:** cruise the whole repo; lint-coverage counts skips and exits 2 on a failed walk [#27](https://github.com/avi2d/checks/pull/27)
517
-
518
- ## 0.8.0
519
-
520
- Released 2026-09-24.
521
-
522
- ### Features
523
-
524
- - **scripts:** add checks-lint to run every kit lint gate over one resolved range [#25](https://github.com/avi2d/checks/pull/25)
525
- - **scripts:** run the bins on Effect and hold scripts/ to Effect-native IO [#22](https://github.com/avi2d/checks/pull/22)
526
-
527
- ## 0.6.0
528
-
529
- Released 2026-09-24.
530
-
531
- ### Features
532
-
533
- - add checks-suppressions-ratchet to refuse a raised oxlint suppression count [#21](https://github.com/avi2d/checks/pull/21)
534
-
535
- ## 0.5.0
536
-
537
- Released 2026-09-24.
538
-
539
- ### Features
540
-
541
- - **effect-channel:** add opt-in no-throw and no-try-catch rules [#20](https://github.com/avi2d/checks/pull/20)
542
-
543
- ## 0.4.0
544
-
545
- Released 2026-09-24.
546
-
547
- ### Features
548
-
549
- - add checks-ci-wiring to confirm CI runs each declared gate on pull requests [#19](https://github.com/avi2d/checks/pull/19)
550
-
551
- ### Fixes
552
-
553
- - pin the quarantine pathIgnorePatterns in the test-layout bunfig check [#18](https://github.com/avi2d/checks/pull/18)
554
-
555
- ## 0.3.0
556
-
557
- Released 2026-09-23.
558
-
559
- ### Features
560
-
561
- - add checks-mutation-compare no-regression gate for Stryker reports [#17](https://github.com/avi2d/checks/pull/17)
562
- - ship a shared Stryker mutation-testing preset [#16](https://github.com/avi2d/checks/pull/16)
563
-
564
- ## 0.2.0
565
-
566
- Released 2026-09-23.
567
-
568
- ### Features
569
-
570
- - expose runnable scripts as checks- bins for consumer package scripts [#15](https://github.com/avi2d/checks/pull/15)
571
- - rename npm package from @avi2d/checks to @avi2dg/checks [#14](https://github.com/avi2d/checks/pull/14)
572
- - add a shared comment gate and backtest command [#12](https://github.com/avi2d/checks/pull/12)
573
- - publish @avi2d/checks to the public npm registry [#11](https://github.com/avi2d/checks/pull/11)
574
-
575
- ### Fixes
576
-
577
- - count violation lines from file top, drop dead moduleStart [#10](https://github.com/avi2d/checks/pull/10)
16
+ - **delivery:** skip pr-text scan when CHECKS_SECRETS_PACK is unset [#6](https://github.com/avi2d/checks/pull/6)
package/docs/bins.md CHANGED
@@ -52,11 +52,15 @@ These bins run on their own:
52
52
  - [`checks-release-notes`](gates/checks-release-notes.md) writes one `CHANGELOG.md` section to a file for a GitHub release.
53
53
  - [`checks-release-report`](gates/checks-release-report.md) tells whether the history holds unreleased features or fixes since the last tag.
54
54
  - [`checks-release-pr`](gates/checks-release-pr.md) opens or refreshes the pull request that releases the next version, and dispatches its checks.
55
+ - [`checks-release-publish`](gates/checks-release-publish.md) publishes the version `package.json` holds to npm, unless npm already holds it or a newer version.
56
+ - [`checks-release-push`](gates/checks-release-push.md) releases a package's next version onto its branch once the checks pass, tags it and dispatches the release workflow on the tag.
55
57
  - [`checks-release-tag`](gates/checks-release-tag.md) tags a landed release commit with its version and dispatches the release workflow on the tag.
56
58
  - [`checks-vendor`](gates/checks-vendor.md) pins each library its `prepare` arguments name to a shared read-only clone and links it under `repos/`.
57
59
  - [`checks-browser`](gates/checks-browser.md) opens a product's built pages in Chrome and fails on the layout, keyboard, motion, accessibility, nesting and asset checks its `browser-checks.json` declares.
58
60
  - [`checks-commit-title`](gates/checks-commit-title.md) lints the pull request title in one step of the `ci` job.
61
+ - [`checks-pr-text`](gates/checks-pr-text.md) scans the title, body and comments of a pull request in a public repository for a secret or a term of the private pack.
59
62
  - [`checks-docs-only`](gates/checks-docs-only.md) tells whether a change touches only top-level Markdown and Markdown under `docs/`, so a docs-only change skips the full run.
63
+ - [`checks-setup`](gates/checks-setup.md) writes the kit config, the CI workflow and the doc templates into a new repository.
60
64
 
61
65
  `checks-lint` has [its own page](gates/checks-lint.md), which says which range it resolves.
62
66
  oxlint runs through its own tool, as [Native settings](configs/native-settings.md) says.
@@ -22,15 +22,16 @@ The title lint runs before the docs-only filter, so a change to top-level Markdo
22
22
 
23
23
  ## What it lints
24
24
 
25
- It lints the pull request title and nothing else.
26
- The title is the enforced subject because a squash merge uses it as the main commit subject, and per-commit messages are not linted.
25
+ It lints the pull request title, or the head subject when no open pull request heads the dispatched branch.
26
+ The title is the enforced subject because a squash merge uses it as the main commit subject, and otherwise per-commit messages are not linted.
27
27
  GitHub appends the pull request number to the squashed subject, so the bin lints the title with ` (#0000)` attached.
28
28
  The header length limit applies to the landed subject, not the bare title.
29
29
  The bin moves the git comment character off `#`, so a title starting with `#` is linted like any other.
30
- The `ci` job also triggers on `workflow_dispatch`, as [checks-release-pr](../gates/checks-release-pr.md) says.
30
+ The `ci` job also triggers on `workflow_dispatch`, as [checks-release-pr](../gates/checks-release-pr.md) and [checks-release-push](../gates/checks-release-push.md) say.
31
31
  GitHub holds the `pull_request` runs of a release pull request the workflow token opens until a maintainer approves them.
32
32
  A dispatched run carries no pull request, so the bin reads the title of the one open pull request its branch heads.
33
- It fails when there is none.
33
+ When no open pull request heads the branch, the head commit lands as it is, so the bin lints its subject as it stands.
34
+ It fails when more than one does.
34
35
  That lookup needs the workflow's `pull-requests: read` permission.
35
36
  The `commitlint` status covers a dispatched run too, since GitHub keeps a dispatched run's check off the pull request.
36
37
  The kit's own `.github/workflows/ci.yml` shows the step.
package/docs/design.md CHANGED
@@ -186,24 +186,34 @@ So a checkout without tags, a fork, and a branch that merged `main` in all write
186
186
  A section keeps the date it was written, because the squash merge that lands the release commit may fall on another day.
187
187
  Entries come from commit subjects, which are the squash-merged pull request titles that commitlint holds to the conventional format.
188
188
  A commit body holds the branch's own messages, and nothing lints it, so no entry comes from a body.
189
- The changelog arrives in the release pull request, and no workflow pushes to a branch a person works on.
189
+ The changelog arrives in the release commit, and no workflow pushes to a branch a person works on.
190
190
 
191
- ## A release is cut every day
191
+ ## A release is cut from every push
192
192
 
193
193
  A release waits for no quiet moment, since a busy repository always has work under way.
194
- The daily release opens the release pull request from `main` whenever it holds a feature or a fix since the last tag, and the pull request merges through the repository's usual merge path once its checks pass.
194
+ A package published to npm releases from every push to `main` that holds a feature or a fix since the last tag.
195
+ A version only reaches its users once it is published.
196
+ A daily release pull request would leave each merged change unpublished until a person merged the release too.
197
+ `checks-release-push` builds the release commit on top of `main` and runs the required checks on it from the `release/<branch>` branch it owns.
198
+ Only then does it move `main` to it without a force, so `main` only ever gains a release commit whose checks passed.
199
+ It tags the commit it landed and nothing else.
200
+ A repository that is no package keeps the daily release pull request.
195
201
  `checks-release-pr` writes only to the `release/<branch>` branch it owns, and rebuilds that branch on `main` rather than merging `main` into it, so the changelog it carries is the one the build writes.
196
202
  `checks-release-tag` writes only the `v*` tag of a release commit that already landed.
197
203
  The `github-release` job's `contents: write` creates or updates the GitHub release from the tag's `CHANGELOG.md` section.
198
204
 
199
- Both jobs act with the workflow token.
205
+ Every release bin acts with the workflow token.
200
206
  GitHub starts no run for a push that token makes, and holds the runs of a pull request it opens until a maintainer approves them.
201
207
  A GitHub App or a personal token would start them, but either is a credential each repository stores and someone rotates.
202
- So `checks-release-pr` dispatches the required checks on the release head, and `checks-release-tag` dispatches the release workflow on the tag, since a dispatch is the one run the token can start.
208
+ A dispatch is the one run the token can start.
209
+ So `checks-release-pr` and `checks-release-push` dispatch the required checks on the release head.
210
+ `checks-release-tag` and `checks-release-push` dispatch the release workflow on the tag.
203
211
  GitHub keeps a dispatched run's checks off the pull request, and branch protection does not count them.
204
212
  So each dispatched job reports its result as a commit status named for the job, which a required check of that name counts.
205
213
  Where a status and a check share a name, branch protection requires both, so the status never passes a pull request whose own check failed.
206
- The cost is a `workflow_dispatch` trigger and a status step on each workflow a release needs, a title lint that reads its title from the open pull request, and the repository setting that lets the token open a pull request.
214
+ The cost is a `workflow_dispatch` trigger and a status step on each workflow a release needs.
215
+ The title lint reads its title from the open pull request, or lints the head subject when none is open.
216
+ The daily release also needs the repository setting that lets the token open a pull request.
207
217
 
208
218
  ## The docs gate judges what a change touches
209
219
 
@@ -300,6 +310,18 @@ No finding can be accepted.
300
310
  A secret has no false positive worth keeping in git, because a placeholder carries the same shape without the value.
301
311
  So the gate ignores a repository's `.gitleaks.toml`, `.gitleaksignore` and `gitleaks:allow` comments, which would each let one repository pass what another fails.
302
312
 
313
+ A person's name, an employer's domain, host names and IP ranges are no secret to gitleaks, yet a public repository must not carry them.
314
+ A rule that names them would publish them, so the owner keeps the terms in a private pack outside every repository.
315
+ The pack is a file rather than an inline variable, so one file serves the shell and the runner, and no workflow names a term.
316
+ A pack that is set but cannot serve fails the gate, because a scan that quietly dropped it would pass what it exists to catch.
317
+ An empty `CHECKS_SECRETS_PACK` counts as set, since a CI secret that is missing expands to an empty value.
318
+ No report prints a matched term text or the pack path, because the report lands in a public CI log.
319
+ A finding location prints as it stands, such as a file name or a link.
320
+ So a term inside a file name or a repository name shows there.
321
+ That location is already public in the scanned commit or the scanned pull request.
322
+
323
+ A pull request's title, body and comments reach the forge without a commit, so [checks-pr-text](gates/checks-pr-text.md) scans them with the same rules and the same pack.
324
+
303
325
  ## The frontend checks are opt-in
304
326
 
305
327
  A browser check needs a built site and a browser, and a backend repository has neither.