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:
1 parent
57968904bf
commit
9571eb52d2
4 files changed
+48
-17
No files matched your search
@@ -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).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user