ESLint InterlaceESLint Interlace
Plugin: maintainability

Changelog

Release history and version updates for eslint-plugin-maintainability

Live from GitHub

This changelog is fetched directly from CHANGELOG.md on GitHub and cached for 2 hours.

3.0.1 (2026-02-02)

This was a version bump only for eslint-plugin-maintainability to align it with other projects, there were no code changes.

Changelog

All notable changes to @interlace/eslint-plugin-maintainability will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Documentation

  • 📘 Launched new documentation site: eslint.interlace.tools
  • 📝 Achieved 100% documentation parity (both .md and .mdx files)

[3.0.0] - 2026-02-02

This was a version bump only for eslint-plugin-maintainability to align it with other projects, there were no code changes.

[1.0.0] - 2026-01-26

Added

  • Initial stable release with 12 maintainability rules
  • LLM-optimized error messages for AI-assisted development
  • 100% test coverage across all rules
  • ESLint 9 flat config support
  • TypeScript type definitions for all rule options

Rules

Complexity Rules

RuleDescription
max-cognitive-complexityLimit cognitive complexity score
max-cyclomatic-complexityLimit cyclomatic complexity
max-depthLimit nesting depth
max-linesLimit file length
max-lines-per-functionLimit function length
max-paramsLimit function parameters

Code Smell Rules

RuleDescription
no-magic-numbersDisallow magic numbers
no-nested-ternaryDisallow nested ternary expressions
no-deep-callback-nestingDisallow deeply nested callbacks
no-long-parameter-listDisallow long parameter lists

Clean Code Rules

RuleDescription
prefer-early-returnPrefer early returns over nested conditions
no-duplicate-logicDetect duplicated logic blocks (DRY)

Presets

  • recommended - Balanced maintainability thresholds

SOLID Principles Mapping

Rules are annotated with SOLID principle alignment:

  • Single Responsibility: max-lines-per-function, max-lines
  • Open/Closed: prefer-early-return

On this page

No Headings