Skip to main content
Effect-native diagnostics guide you toward the Effect ecosystem’s purpose-built APIs for common operations — HTTP requests, JSON parsing, schema validation, and more. All rules in this category are off by default (except preferSchemaOverJson which is a suggestion), so you opt in to the ones that fit your project’s strictness requirements.
All rules in this category are ➖ off by default or 💡 suggestion level. Enable them via diagnosticSeverity in your plugin config.

extendsNativeError

Severity: ➖ off by default  ·  V3/V4: ✓ / ✓ Warns when a class directly extends the native JavaScript Error class. Native Error subclasses are untagged and indistinguishable at the type level in Effect’s failure channel. Using Data.TaggedError instead gives your errors a _tag discriminant that enables precise Effect.catchTag handling.
To enable:

globalFetch

Severity: ➖ off by default  ·  V3/V4: ✓ / ✓ Warns when the global fetch function is used instead of the Effect HTTP client. The global fetch is a Promise-based API that throws on network errors and returns responses that require manual error checking. The Effect HTTP client integrates errors into the typed error channel.
To enable:

instanceOfSchema

Severity: ➖ off by default  ·  Fix: 🔧  ·  V3/V4: ✓ / ✓ Suggests using Schema.is instead of the instanceof operator for Effect Schema types. instanceof does not account for Schema’s structural validation and decoded representations, while Schema.is performs a proper type-guard check that respects the schema’s constraints.
The quick fix replaces the instanceof check with Schema.is(...) automatically. To enable:

nodeBuiltinImport

Severity: ➖ off by default  ·  V3/V4: ✓ / ✓ Warns when you import Node.js built-in modules (like fs, path, crypto) that have Effect-native counterparts in @effect/platform. The Effect platform modules provide the same functionality with typed errors and Effect integration.
To enable:

preferSchemaOverJson

Severity: 💡 suggestion  ·  V3/V4: ✓ / ✓ Suggests using Effect Schema for JSON operations instead of JSON.parse and JSON.stringify. JSON.parse throws on invalid input and returns any; Effect Schema provides type-safe parsing with proper error handling through the effect error channel.