Why this matters
Prevents silent regressions and enforces test coverage of changed behavior.
If files under src/ change behavior, the PR must include tests/ updates or a PR description line no-tests: <reason> explaining why tests are unaffected.
Prevents silent regressions and enforces test coverage of changed behavior.
Side-by-side examples engineers can pattern-match during review.
diff --git a/src/math.js b/src/math.js
+ export function divide(a,b){ return a/b }
# no tests changeddiff --git a/src/math.js b/src/math.js
+ export function divide(a,b){ if(b===0) throw new Error("\/0"); return a/b }
--- a/tests/math.test.js
+++ b/tests/math.test.js
+ it("divide throws on /0", ()=>{ expect(()=>divide(1,0)).toThrow() })PR_DESCRIPTION: no-tests: refactor-only (rename, no behavior change)files_changed:
- src/service.ts
# tests/ unchanged and no rationaleFrom the same buckets as this rule.
Reject PRs adding real PAN/CVV in fixtures, seeds, or mocks. Only use Luhn-valid test PANs from the gateway or opaque tokens (e.g., tok_) and never include CVV. Add a check to fail if a PAN regex is matched. (PCI DSS data minimization)