Ensure CI/CD is deterministic and comprehensive: pin versions when dependencies/tooling have drifted, make the same checks run on PRs as on main, and test against the full supported toolchain/version range.
Apply it like this:
Example (dependency pinning in a changeset-style config):
{
"fixed": [
["@some/package", "@some/other-package"],
["@some/devtools"],
["@some/svelte", "@some/svelte-devtools"]
]
}
Example (CI parity idea): if a quality check (e.g., sherif) isn’t running on PRs, add it to the PR workflow (or add equivalent tasks like formatting/lint scanning) so the same gates apply before merge.
Example (TypeScript compatibility): add a CI job per supported TS version (TS 4.7, TS 5.x) to prevent breaks when developers or tooling target different TypeScript releases.