fix(coding-dev): scoped suppressions, contribution-dependent precedence

- suppressions: prefer the narrowest scope that covers the problem (line,
  function, module) with a reason comment; a project-wide disable silences
  the rule in code nobody has written yet. Always name the specific rule.
  Propagated to rust (#[allow]), csharp (#pragma/SuppressMessage).
- precedence: a project's own rules win only when contributing upstream.
  For local/private work these rules win, adopting only the project's
  load-bearing conventions.
- type checking must pass with zero errors *or warnings*.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
BluscreamandClaude Opus 5 committed 2026-09-18 12:34:51 +02:00
1 parent 57968904bf
commit 9571eb52d2
4 files changed
+48 -17

No files matched your search

+5 -4
View File
@@ -43,13 +43,14 @@ into a project that has neither.
}
```
**`tsc --noEmit` must pass with 0 errors**, and it belongs in the build gate alongside lint
and tests — not as a thing someone runs occasionally in their editor.
**`tsc --noEmit` must pass with zero errors *and* zero warnings**, and it belongs in the build
gate alongside lint and tests — not as a thing someone runs occasionally in their editor.
> [!NOTE]
> Some established codebases deliberately relax `noImplicitAny` or `noUncheckedIndexedAccess`
> because their idioms depend on it. Respect the project's `tsconfig.json`; the table above is
> the default for **new** projects.
> because their idioms depend on it. When **contributing upstream**, respect the project's
> `tsconfig.json` as-is. In **our own repos and non-upstreamed forks**, the settings above are
> the target — tightening them is fair game (as its own change, not smuggled into a feature).
---