📝 Place test-wide suppressions in the config
Drop the fixed no-floating-promises header exception from CONTRIBUTING.md and AGENTS.md; agents must not add a source disable or edit .oxlintrc.json. Record the split in tooling.md and testing.md: a one-site false positive is a source disable, a file-class one lives in the test override.
This commit is contained in:
1 parent
9b7dec96e0
commit
16904440cf
4 files changed
+29
-23
No files matched your search
+19
-11
@@ -106,26 +106,34 @@ Type-aware oxlint is enabled via `options.typeAware: true` in `.oxlintrc.json`
|
||||
|
||||
#### Decision (2026-09)
|
||||
|
||||
A type-aware rule that false-positives is silenced with a source-level
|
||||
`oxlint-disable` directive (see `src/primitive.ts`,
|
||||
`src/primitive.test.ts`), not by turning the rule off in `.oxlintrc.json`.
|
||||
A type-aware rule that false-positives **at one site** is silenced with a
|
||||
source-level `oxlint-disable` directive (see `src/primitive.ts`). A rule that is
|
||||
wrong for a whole **file class** is turned off in a `.oxlintrc.json` `overrides`
|
||||
entry instead — e.g. `typescript/no-floating-promises` (synchronous
|
||||
`expectTypeOf` reads as an unhandled promise) and `unicorn/no-null` (intentional
|
||||
`null` inputs) for `**/*.test.ts`. The same exemption is not repeated as a
|
||||
file-level header in every affected file.
|
||||
|
||||
#### Why
|
||||
|
||||
- The disable sits next to the code it silences, visible to anyone reading the
|
||||
source.
|
||||
- The rule stays on everywhere else, so only the mis-firing line is exempted.
|
||||
- A one-site disable sits next to the code it silences, visible to anyone
|
||||
reading the source, and the rule stays on everywhere else.
|
||||
- A file-class rule is a property of the file class, not of one line; the
|
||||
override states it once, where the rest of the file-class config lives.
|
||||
|
||||
#### Rejected
|
||||
|
||||
- A project-wide disable in `.oxlintrc.json` for a false positive: it hides the
|
||||
exemption from the reader of the affected code and switches the rule off
|
||||
repo-wide for a one-site problem.
|
||||
- A project-wide disable in `.oxlintrc.json` for a one-site false positive: it
|
||||
hides the exemption from the reader of the affected code and switches the rule
|
||||
off repo-wide for a one-site problem.
|
||||
- A repeated file-level `oxlint-disable` header for a file-class false positive:
|
||||
the copies drift and scatter one config decision across the tree.
|
||||
|
||||
#### Known issue
|
||||
|
||||
- A source-level disable is a _human_ last resort. AI agents must not add one;
|
||||
they fix the type at its root (see [AGENTS.md § Never do](../AGENTS.md#never-do)).
|
||||
- Both placements are _human_ last resorts. AI agents must neither add a source
|
||||
disable nor edit `.oxlintrc.json`; they fix the type at its root (see
|
||||
[AGENTS.md § Never do](../AGENTS.md#never-do)).
|
||||
|
||||
### Unwanted stylistic rules are turned off in the config
|
||||
|
||||
|
||||
Reference in new issue
Block a user