Skip to content

ADR-0001: Pre-built Configs over Runtime Composition

ADR-0001: Pre-built Configs over Runtime Composition

Status: Accepted Date: 2026-03-02

Context

ESLint Flat Config is typically composed at runtime — plugins are imported, rules are merged, overrides are stacked. This makes the result dependent on installed versions and execution order.

Decision

16 ESLint permutations (combinations of react, node, oxlint, ai) are generated at build time and shipped as static config objects. The consumer selects the matching permutation via an options hash, which is loaded at runtime.

Additionally, 8 OxLint config permutations (combinations of react, node, aioxlint is irrelevant here) are generated alongside them for split-linting setups.

Consequences

  • Determinism: same options → identical config, regardless of environment
  • Snapshot testability: every permutation is pinned as a snapshot and regression-tested
  • No plugin loading at runtime: all plugin references are already resolved
  • Trade-off: new permutations require a build step before release