- Use `@graphql-eslint/eslint-plugin` with the `schema-recommended` and `operations-recommended` rule sets for both SDL and query files.
- Enable the `@graphql-eslint/naming-convention` rule to enforce `PascalCase` types, `camelCase` fields, and `SCREAMING_SNAKE_CASE` enums automatically.
- Run `prettier --parser graphql` to format `.graphql` files consistently — configure it alongside `@graphql-eslint` in a shared config.
- Configure `@graphql-eslint/no-unused-fields` to surface schema fields that no client query references — prune dead schema surface area regularly.
- Enable `@graphql-eslint/require-description` on types, fields, and arguments to enforce documentation at lint time.
- Add a `.graphqlrc.yml` at the project root pointing to your schema so `graphql-eslint` resolves types for operation validation.
- Use `graphql-eslint` in CI with `--max-warnings 0` to block merges on any lint violation.