NextJS has its own special eslint configuration. It's run automatically on build. However, it is not run directly with eslint, the same way that .arclint and other JS repos run.
This was causing lint issues to be missed until CI ran npm run build, triggering the special next lint in CI.
arc lint was throwing a module not found error for the special nextjs dependencies. I corrected this by following a solution recommended here: https://github.com/vercel/next.js/issues/40687