CLAUDE.md says to run npm run typecheck after touching hooks. It resolved a config whose exclude list dropped every test file, while CI resolved a different one that kept them. Toggle what a branch contains and watch the two commands disagree.
Injecting the same TS7006 shape that escaped in #3759 into a hook test, before and after this change:
tsconfig.test.json extends tsconfig.json and only widens the excludes, so pointing the command at it is a strict superset, not a different set of rules. Three of the four typecheck invocations in the repo used the narrow config; only CI used the wide one.