@oddessentials/repo-standards 5.0.0 → 5.2.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.
@@ -211,6 +211,61 @@
211
211
  "verification": "Check that the canonical version in pyproject.toml or VERSION follows SemVer and verify that the configured tool (for example, setuptools_scm or bumpversion) computes or bumps the version and generates changelog entries from commit history or fragments."
212
212
  }
213
213
  },
214
+ {
215
+ "ciHints": {
216
+ "azure-devops": {
217
+ "notes": "Run the version guard in PR validation jobs before merge.",
218
+ "stage": "quality"
219
+ }
220
+ },
221
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
222
+ "id": "version-guard",
223
+ "label": "Version Guard (Automated Releases)",
224
+ "stack": {
225
+ "exampleConfigFiles": [
226
+ "scripts/check-version-unchanged.sh",
227
+ ".github/workflows/ci.yml",
228
+ "azure-pipelines.yml"
229
+ ],
230
+ "exampleTools": [
231
+ "semantic-release",
232
+ "git"
233
+ ],
234
+ "notes": "Block manual edits to version fields in pyproject.toml or setup.cfg when automated release tooling computes versions from commit history.",
235
+ "optionalFiles": [
236
+ "setup.cfg",
237
+ "setup.py",
238
+ "VERSION"
239
+ ],
240
+ "requiredFiles": [
241
+ "pyproject.toml"
242
+ ],
243
+ "verification": "Run the guard and confirm it fails when version lines change in pyproject.toml or setup.cfg."
244
+ }
245
+ },
246
+ {
247
+ "ciHints": {
248
+ "azure-devops": {
249
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts.",
250
+ "stage": "quality"
251
+ }
252
+ },
253
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
254
+ "id": "release-artifact-exclusion",
255
+ "label": "Release Artifact Formatter Exclusion",
256
+ "stack": {
257
+ "exampleConfigFiles": [
258
+ "pyproject.toml"
259
+ ],
260
+ "exampleTools": [
261
+ "black",
262
+ "ruff",
263
+ "bumpversion"
264
+ ],
265
+ "notes": "In pyproject.toml [tool.black] or [tool.ruff], add extend-exclude patterns for auto-generated files like CHANGELOG.md. Some versioning tools generate or modify files that should not be reformatted.",
266
+ "verification": "Run 'black --check .' or 'ruff format --check' and confirm generated files are excluded."
267
+ }
268
+ },
214
269
  {
215
270
  "ciHints": {
216
271
  "azure-devops": {
@@ -1232,5 +1287,5 @@
1232
1287
  },
1233
1288
  "stack": "python",
1234
1289
  "stackLabel": "Python",
1235
- "version": 4
1290
+ "version": 5
1236
1291
  }
@@ -211,6 +211,61 @@
211
211
  "verification": "Check that the canonical version in pyproject.toml or VERSION follows SemVer and verify that the configured tool (for example, setuptools_scm or bumpversion) computes or bumps the version and generates changelog entries from commit history or fragments."
212
212
  }
213
213
  },
214
+ {
215
+ "ciHints": {
216
+ "github-actions": {
217
+ "job": "ci",
218
+ "notes": "Run the version guard in PR workflows against the base ref."
219
+ }
220
+ },
221
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
222
+ "id": "version-guard",
223
+ "label": "Version Guard (Automated Releases)",
224
+ "stack": {
225
+ "exampleConfigFiles": [
226
+ "scripts/check-version-unchanged.sh",
227
+ ".github/workflows/ci.yml",
228
+ "azure-pipelines.yml"
229
+ ],
230
+ "exampleTools": [
231
+ "semantic-release",
232
+ "git"
233
+ ],
234
+ "notes": "Block manual edits to version fields in pyproject.toml or setup.cfg when automated release tooling computes versions from commit history.",
235
+ "optionalFiles": [
236
+ "setup.cfg",
237
+ "setup.py",
238
+ "VERSION"
239
+ ],
240
+ "requiredFiles": [
241
+ "pyproject.toml"
242
+ ],
243
+ "verification": "Run the guard and confirm it fails when version lines change in pyproject.toml or setup.cfg."
244
+ }
245
+ },
246
+ {
247
+ "ciHints": {
248
+ "github-actions": {
249
+ "job": "ci",
250
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts."
251
+ }
252
+ },
253
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
254
+ "id": "release-artifact-exclusion",
255
+ "label": "Release Artifact Formatter Exclusion",
256
+ "stack": {
257
+ "exampleConfigFiles": [
258
+ "pyproject.toml"
259
+ ],
260
+ "exampleTools": [
261
+ "black",
262
+ "ruff",
263
+ "bumpversion"
264
+ ],
265
+ "notes": "In pyproject.toml [tool.black] or [tool.ruff], add extend-exclude patterns for auto-generated files like CHANGELOG.md. Some versioning tools generate or modify files that should not be reformatted.",
266
+ "verification": "Run 'black --check .' or 'ruff format --check' and confirm generated files are excluded."
267
+ }
268
+ },
214
269
  {
215
270
  "ciHints": {
216
271
  "github-actions": {
@@ -1232,5 +1287,5 @@
1232
1287
  },
1233
1288
  "stack": "python",
1234
1289
  "stackLabel": "Python",
1235
- "version": 4
1290
+ "version": 5
1236
1291
  }
@@ -234,6 +234,69 @@
234
234
  "verification": "Check that the canonical version in pyproject.toml or VERSION follows SemVer and verify that the configured tool (for example, setuptools_scm or bumpversion) computes or bumps the version and generates changelog entries from commit history or fragments."
235
235
  }
236
236
  },
237
+ {
238
+ "ciHints": {
239
+ "azure-devops": {
240
+ "notes": "Run the version guard in PR validation jobs before merge.",
241
+ "stage": "quality"
242
+ },
243
+ "github-actions": {
244
+ "job": "ci",
245
+ "notes": "Run the version guard in PR workflows against the base ref."
246
+ }
247
+ },
248
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
249
+ "id": "version-guard",
250
+ "label": "Version Guard (Automated Releases)",
251
+ "stack": {
252
+ "exampleConfigFiles": [
253
+ "scripts/check-version-unchanged.sh",
254
+ ".github/workflows/ci.yml",
255
+ "azure-pipelines.yml"
256
+ ],
257
+ "exampleTools": [
258
+ "semantic-release",
259
+ "git"
260
+ ],
261
+ "notes": "Block manual edits to version fields in pyproject.toml or setup.cfg when automated release tooling computes versions from commit history.",
262
+ "optionalFiles": [
263
+ "setup.cfg",
264
+ "setup.py",
265
+ "VERSION"
266
+ ],
267
+ "requiredFiles": [
268
+ "pyproject.toml"
269
+ ],
270
+ "verification": "Run the guard and confirm it fails when version lines change in pyproject.toml or setup.cfg."
271
+ }
272
+ },
273
+ {
274
+ "ciHints": {
275
+ "azure-devops": {
276
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts.",
277
+ "stage": "quality"
278
+ },
279
+ "github-actions": {
280
+ "job": "ci",
281
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts."
282
+ }
283
+ },
284
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
285
+ "id": "release-artifact-exclusion",
286
+ "label": "Release Artifact Formatter Exclusion",
287
+ "stack": {
288
+ "exampleConfigFiles": [
289
+ "pyproject.toml"
290
+ ],
291
+ "exampleTools": [
292
+ "black",
293
+ "ruff",
294
+ "bumpversion"
295
+ ],
296
+ "notes": "In pyproject.toml [tool.black] or [tool.ruff], add extend-exclude patterns for auto-generated files like CHANGELOG.md. Some versioning tools generate or modify files that should not be reformatted.",
297
+ "verification": "Run 'black --check .' or 'ruff format --check' and confirm generated files are excluded."
298
+ }
299
+ },
237
300
  {
238
301
  "ciHints": {
239
302
  "azure-devops": {
@@ -1376,5 +1439,5 @@
1376
1439
  },
1377
1440
  "stack": "python",
1378
1441
  "stackLabel": "Python",
1379
- "version": 4
1442
+ "version": 5
1380
1443
  }
@@ -206,6 +206,56 @@
206
206
  "verification": "Check that Cargo.toml version follows SemVer and verify changelog generation from commit history."
207
207
  }
208
208
  },
209
+ {
210
+ "ciHints": {
211
+ "azure-devops": {
212
+ "notes": "Run the version guard in PR validation jobs before merge.",
213
+ "stage": "quality"
214
+ }
215
+ },
216
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
217
+ "id": "version-guard",
218
+ "label": "Version Guard (Automated Releases)",
219
+ "stack": {
220
+ "exampleConfigFiles": [
221
+ "scripts/check-version-unchanged.sh",
222
+ ".github/workflows/ci.yml",
223
+ "azure-pipelines.yml"
224
+ ],
225
+ "exampleTools": [
226
+ "cargo-release",
227
+ "semantic-release",
228
+ "git"
229
+ ],
230
+ "notes": "When using cargo-release or semantic-release-cargo, guard against manual edits to Cargo.toml version fields in PRs.",
231
+ "requiredFiles": [
232
+ "Cargo.toml"
233
+ ],
234
+ "verification": "Run the guard and confirm it fails when Cargo.toml version changes."
235
+ }
236
+ },
237
+ {
238
+ "ciHints": {
239
+ "azure-devops": {
240
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts.",
241
+ "stage": "quality"
242
+ }
243
+ },
244
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
245
+ "id": "release-artifact-exclusion",
246
+ "label": "Release Artifact Formatter Exclusion",
247
+ "stack": {
248
+ "exampleConfigFiles": [
249
+ "rustfmt.toml"
250
+ ],
251
+ "exampleTools": [
252
+ "rustfmt",
253
+ "cargo-release"
254
+ ],
255
+ "notes": "Rust rarely has auto-generated source files, but if using tools that generate Rust code, exclude those directories in rustfmt.toml. CHANGELOG.md isn't checked by rustfmt (it only checks .rs files).",
256
+ "verification": "Run 'cargo fmt --check' and confirm it passes after releases."
257
+ }
258
+ },
209
259
  {
210
260
  "ciHints": {
211
261
  "azure-devops": {
@@ -1196,5 +1246,5 @@
1196
1246
  },
1197
1247
  "stack": "rust",
1198
1248
  "stackLabel": "Rust",
1199
- "version": 4
1249
+ "version": 5
1200
1250
  }
@@ -206,6 +206,56 @@
206
206
  "verification": "Check that Cargo.toml version follows SemVer and verify changelog generation from commit history."
207
207
  }
208
208
  },
209
+ {
210
+ "ciHints": {
211
+ "github-actions": {
212
+ "job": "ci",
213
+ "notes": "Run the version guard in PR workflows against the base ref."
214
+ }
215
+ },
216
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
217
+ "id": "version-guard",
218
+ "label": "Version Guard (Automated Releases)",
219
+ "stack": {
220
+ "exampleConfigFiles": [
221
+ "scripts/check-version-unchanged.sh",
222
+ ".github/workflows/ci.yml",
223
+ "azure-pipelines.yml"
224
+ ],
225
+ "exampleTools": [
226
+ "cargo-release",
227
+ "semantic-release",
228
+ "git"
229
+ ],
230
+ "notes": "When using cargo-release or semantic-release-cargo, guard against manual edits to Cargo.toml version fields in PRs.",
231
+ "requiredFiles": [
232
+ "Cargo.toml"
233
+ ],
234
+ "verification": "Run the guard and confirm it fails when Cargo.toml version changes."
235
+ }
236
+ },
237
+ {
238
+ "ciHints": {
239
+ "github-actions": {
240
+ "job": "ci",
241
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts."
242
+ }
243
+ },
244
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
245
+ "id": "release-artifact-exclusion",
246
+ "label": "Release Artifact Formatter Exclusion",
247
+ "stack": {
248
+ "exampleConfigFiles": [
249
+ "rustfmt.toml"
250
+ ],
251
+ "exampleTools": [
252
+ "rustfmt",
253
+ "cargo-release"
254
+ ],
255
+ "notes": "Rust rarely has auto-generated source files, but if using tools that generate Rust code, exclude those directories in rustfmt.toml. CHANGELOG.md isn't checked by rustfmt (it only checks .rs files).",
256
+ "verification": "Run 'cargo fmt --check' and confirm it passes after releases."
257
+ }
258
+ },
209
259
  {
210
260
  "ciHints": {
211
261
  "github-actions": {
@@ -1196,5 +1246,5 @@
1196
1246
  },
1197
1247
  "stack": "rust",
1198
1248
  "stackLabel": "Rust",
1199
- "version": 4
1249
+ "version": 5
1200
1250
  }
@@ -229,6 +229,64 @@
229
229
  "verification": "Check that Cargo.toml version follows SemVer and verify changelog generation from commit history."
230
230
  }
231
231
  },
232
+ {
233
+ "ciHints": {
234
+ "azure-devops": {
235
+ "notes": "Run the version guard in PR validation jobs before merge.",
236
+ "stage": "quality"
237
+ },
238
+ "github-actions": {
239
+ "job": "ci",
240
+ "notes": "Run the version guard in PR workflows against the base ref."
241
+ }
242
+ },
243
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
244
+ "id": "version-guard",
245
+ "label": "Version Guard (Automated Releases)",
246
+ "stack": {
247
+ "exampleConfigFiles": [
248
+ "scripts/check-version-unchanged.sh",
249
+ ".github/workflows/ci.yml",
250
+ "azure-pipelines.yml"
251
+ ],
252
+ "exampleTools": [
253
+ "cargo-release",
254
+ "semantic-release",
255
+ "git"
256
+ ],
257
+ "notes": "When using cargo-release or semantic-release-cargo, guard against manual edits to Cargo.toml version fields in PRs.",
258
+ "requiredFiles": [
259
+ "Cargo.toml"
260
+ ],
261
+ "verification": "Run the guard and confirm it fails when Cargo.toml version changes."
262
+ }
263
+ },
264
+ {
265
+ "ciHints": {
266
+ "azure-devops": {
267
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts.",
268
+ "stage": "quality"
269
+ },
270
+ "github-actions": {
271
+ "job": "ci",
272
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts."
273
+ }
274
+ },
275
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
276
+ "id": "release-artifact-exclusion",
277
+ "label": "Release Artifact Formatter Exclusion",
278
+ "stack": {
279
+ "exampleConfigFiles": [
280
+ "rustfmt.toml"
281
+ ],
282
+ "exampleTools": [
283
+ "rustfmt",
284
+ "cargo-release"
285
+ ],
286
+ "notes": "Rust rarely has auto-generated source files, but if using tools that generate Rust code, exclude those directories in rustfmt.toml. CHANGELOG.md isn't checked by rustfmt (it only checks .rs files).",
287
+ "verification": "Run 'cargo fmt --check' and confirm it passes after releases."
288
+ }
289
+ },
232
290
  {
233
291
  "ciHints": {
234
292
  "azure-devops": {
@@ -1340,5 +1398,5 @@
1340
1398
  },
1341
1399
  "stack": "rust",
1342
1400
  "stackLabel": "Rust",
1343
- "version": 4
1401
+ "version": 5
1344
1402
  }
@@ -226,6 +226,62 @@
226
226
  "verification": "Check that the canonical version field follows SemVer, and trigger the configured release workflow (for example, a dry run of semantic-release or standard-version) to confirm it generates the expected next version, updates package.json or VERSION, and creates/updates CHANGELOG.md with commit-based entries."
227
227
  }
228
228
  },
229
+ {
230
+ "ciHints": {
231
+ "azure-devops": {
232
+ "notes": "Run the version guard in PR validation jobs before merge.",
233
+ "stage": "quality"
234
+ }
235
+ },
236
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
237
+ "id": "version-guard",
238
+ "label": "Version Guard (Automated Releases)",
239
+ "stack": {
240
+ "exampleConfigFiles": [
241
+ "scripts/check-version-unchanged.sh",
242
+ ".github/workflows/ci.yml",
243
+ "azure-pipelines.yml"
244
+ ],
245
+ "exampleTools": [
246
+ "semantic-release",
247
+ "git"
248
+ ],
249
+ "notes": "Add a CI step that runs scripts/check-version-unchanged.sh against the PR base ref. This blocks manual edits to package.json version when semantic-release owns versioning. Optionally wire the same script into a pre-push hook for fast feedback.",
250
+ "optionalFiles": [
251
+ "VERSION"
252
+ ],
253
+ "requiredFiles": [
254
+ "package.json"
255
+ ],
256
+ "verification": "Run the guard with the PR base ref (for example, origin/main) and confirm it fails when package.json version changes."
257
+ }
258
+ },
259
+ {
260
+ "ciHints": {
261
+ "azure-devops": {
262
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts.",
263
+ "stage": "quality"
264
+ }
265
+ },
266
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
267
+ "id": "release-artifact-exclusion",
268
+ "label": "Release Artifact Formatter Exclusion",
269
+ "stack": {
270
+ "exampleConfigFiles": [
271
+ ".prettierignore",
272
+ ".releaserc.json"
273
+ ],
274
+ "exampleTools": [
275
+ "prettier",
276
+ "semantic-release"
277
+ ],
278
+ "notes": "Add CHANGELOG.md and package-lock.json to .prettierignore. These files are auto-generated by semantic-release and npm respectively. Without this exclusion, format:check fails after releases because the generated format differs from Prettier's expected style. Document each exclusion with a comment explaining it's auto-generated.",
279
+ "requiredFiles": [
280
+ ".prettierignore"
281
+ ],
282
+ "verification": "Run 'npm run format:check' and confirm CHANGELOG.md is not checked. Review .prettierignore and confirm auto-generated files are listed with explanatory comments."
283
+ }
284
+ },
229
285
  {
230
286
  "ciHints": {
231
287
  "azure-devops": {
@@ -1250,5 +1306,5 @@
1250
1306
  },
1251
1307
  "stack": "typescript-js",
1252
1308
  "stackLabel": "TypeScript / JavaScript",
1253
- "version": 4
1309
+ "version": 5
1254
1310
  }
@@ -226,6 +226,62 @@
226
226
  "verification": "Check that the canonical version field follows SemVer, and trigger the configured release workflow (for example, a dry run of semantic-release or standard-version) to confirm it generates the expected next version, updates package.json or VERSION, and creates/updates CHANGELOG.md with commit-based entries."
227
227
  }
228
228
  },
229
+ {
230
+ "ciHints": {
231
+ "github-actions": {
232
+ "job": "ci",
233
+ "notes": "Run the version guard in PR workflows against the base ref."
234
+ }
235
+ },
236
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
237
+ "id": "version-guard",
238
+ "label": "Version Guard (Automated Releases)",
239
+ "stack": {
240
+ "exampleConfigFiles": [
241
+ "scripts/check-version-unchanged.sh",
242
+ ".github/workflows/ci.yml",
243
+ "azure-pipelines.yml"
244
+ ],
245
+ "exampleTools": [
246
+ "semantic-release",
247
+ "git"
248
+ ],
249
+ "notes": "Add a CI step that runs scripts/check-version-unchanged.sh against the PR base ref. This blocks manual edits to package.json version when semantic-release owns versioning. Optionally wire the same script into a pre-push hook for fast feedback.",
250
+ "optionalFiles": [
251
+ "VERSION"
252
+ ],
253
+ "requiredFiles": [
254
+ "package.json"
255
+ ],
256
+ "verification": "Run the guard with the PR base ref (for example, origin/main) and confirm it fails when package.json version changes."
257
+ }
258
+ },
259
+ {
260
+ "ciHints": {
261
+ "github-actions": {
262
+ "job": "ci",
263
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts."
264
+ }
265
+ },
266
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
267
+ "id": "release-artifact-exclusion",
268
+ "label": "Release Artifact Formatter Exclusion",
269
+ "stack": {
270
+ "exampleConfigFiles": [
271
+ ".prettierignore",
272
+ ".releaserc.json"
273
+ ],
274
+ "exampleTools": [
275
+ "prettier",
276
+ "semantic-release"
277
+ ],
278
+ "notes": "Add CHANGELOG.md and package-lock.json to .prettierignore. These files are auto-generated by semantic-release and npm respectively. Without this exclusion, format:check fails after releases because the generated format differs from Prettier's expected style. Document each exclusion with a comment explaining it's auto-generated.",
279
+ "requiredFiles": [
280
+ ".prettierignore"
281
+ ],
282
+ "verification": "Run 'npm run format:check' and confirm CHANGELOG.md is not checked. Review .prettierignore and confirm auto-generated files are listed with explanatory comments."
283
+ }
284
+ },
229
285
  {
230
286
  "ciHints": {
231
287
  "github-actions": {
@@ -1250,5 +1306,5 @@
1250
1306
  },
1251
1307
  "stack": "typescript-js",
1252
1308
  "stackLabel": "TypeScript / JavaScript",
1253
- "version": 4
1309
+ "version": 5
1254
1310
  }
@@ -249,6 +249,70 @@
249
249
  "verification": "Check that the canonical version field follows SemVer, and trigger the configured release workflow (for example, a dry run of semantic-release or standard-version) to confirm it generates the expected next version, updates package.json or VERSION, and creates/updates CHANGELOG.md with commit-based entries."
250
250
  }
251
251
  },
252
+ {
253
+ "ciHints": {
254
+ "azure-devops": {
255
+ "notes": "Run the version guard in PR validation jobs before merge.",
256
+ "stage": "quality"
257
+ },
258
+ "github-actions": {
259
+ "job": "ci",
260
+ "notes": "Run the version guard in PR workflows against the base ref."
261
+ }
262
+ },
263
+ "description": "If semantic-release or automated versioning is enabled, block manual edits to canonical version fields in pull requests. Enforce a CI guard (and optional pre-push hook) that fails when version lines change outside the release workflow.",
264
+ "id": "version-guard",
265
+ "label": "Version Guard (Automated Releases)",
266
+ "stack": {
267
+ "exampleConfigFiles": [
268
+ "scripts/check-version-unchanged.sh",
269
+ ".github/workflows/ci.yml",
270
+ "azure-pipelines.yml"
271
+ ],
272
+ "exampleTools": [
273
+ "semantic-release",
274
+ "git"
275
+ ],
276
+ "notes": "Add a CI step that runs scripts/check-version-unchanged.sh against the PR base ref. This blocks manual edits to package.json version when semantic-release owns versioning. Optionally wire the same script into a pre-push hook for fast feedback.",
277
+ "optionalFiles": [
278
+ "VERSION"
279
+ ],
280
+ "requiredFiles": [
281
+ "package.json"
282
+ ],
283
+ "verification": "Run the guard with the PR base ref (for example, origin/main) and confirm it fails when package.json version changes."
284
+ }
285
+ },
286
+ {
287
+ "ciHints": {
288
+ "azure-devops": {
289
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts.",
290
+ "stage": "quality"
291
+ },
292
+ "github-actions": {
293
+ "job": "ci",
294
+ "notes": "Ensure format:check step uses ignore file that excludes release artifacts."
295
+ }
296
+ },
297
+ "description": "Exclude auto-generated release artifacts (CHANGELOG.md, package-lock.json, etc.) from code formatters to prevent CI failures. Release automation tools generate files that may not conform to your formatter's style, causing format checks to fail on subsequent CI runs.",
298
+ "id": "release-artifact-exclusion",
299
+ "label": "Release Artifact Formatter Exclusion",
300
+ "stack": {
301
+ "exampleConfigFiles": [
302
+ ".prettierignore",
303
+ ".releaserc.json"
304
+ ],
305
+ "exampleTools": [
306
+ "prettier",
307
+ "semantic-release"
308
+ ],
309
+ "notes": "Add CHANGELOG.md and package-lock.json to .prettierignore. These files are auto-generated by semantic-release and npm respectively. Without this exclusion, format:check fails after releases because the generated format differs from Prettier's expected style. Document each exclusion with a comment explaining it's auto-generated.",
310
+ "requiredFiles": [
311
+ ".prettierignore"
312
+ ],
313
+ "verification": "Run 'npm run format:check' and confirm CHANGELOG.md is not checked. Review .prettierignore and confirm auto-generated files are listed with explanatory comments."
314
+ }
315
+ },
252
316
  {
253
317
  "ciHints": {
254
318
  "azure-devops": {
@@ -1394,5 +1458,5 @@
1394
1458
  },
1395
1459
  "stack": "typescript-js",
1396
1460
  "stackLabel": "TypeScript / JavaScript",
1397
- "version": 4
1461
+ "version": 5
1398
1462
  }
package/dist/index.cjs CHANGED
@@ -41,8 +41,8 @@ var import_node_fs = require("fs");
41
41
  var import_node_path = require("path");
42
42
 
43
43
  // src/version.ts
44
- var STANDARDS_VERSION = "4.4.0";
45
- var STANDARDS_SCHEMA_VERSION = 4;
44
+ var STANDARDS_VERSION = "5.1.0";
45
+ var STANDARDS_SCHEMA_VERSION = 5;
46
46
 
47
47
  // src/index.ts
48
48
  var __filename2 = (0, import_node_url.fileURLToPath)(importMetaUrl);