The more autonomy I give coding agents, the more of a repository's expectations need to be executable. I do not want manual review to be the first place a predictable failure is discovered.

My projects now have more pre-commit hooks, tests, deterministic checks for project conventions, and small reviewable commits. The checks turn expectations into pass/fail results an agent can act on; the commits keep failures narrow enough to diagnose.

Linting is one of those guardrails. This story began when the React linting layer I relied on broke during an ESLint 10 upgrade.

I maintain several React applications and wanted to upgrade them to ESLint 10. The upgrade stopped at eslint-plugin-react.

ESLint 10 removed deprecated rule-context APIs. The current eslint-plugin-react@7.37.5 release declares support only through ESLint 9 and can crash under ESLint 10 with: