All free skills / Other majors

eslint 10.x

Verify flat lint configuration against ESLint 10 and preserve upgrade boundaries.

For
eslint@10.10.0
Verified
2026-10-10, 4 examples executed
Skill package
@modootoday/pmcp-eslint@10.0.0

Use this skill for free

No PMCP login or subscription is required. Download the original instructions, or install the content-only archive with your project's package manager.

Download SKILL.md · Download package archive

npm install --save-dev https://pmcp.build/skills/eslint/10/package.tgz

PMCP discovers the installed package's instructions. Connect your runtime after installation.

Archive integritysha512-IS8nDMpwOnhCOaHZTWxd4BuWzshGhyFTottxq7zr5b6c2WcNlyGmct+U68CulIJAO9OA7RRVxNHWAjjfEze+ZQ==

Complete instructions

ESLint 10 flat configuration

Read the installed versions and their engine/peer ranges. The fixture targets ESLint 10.10.0, typescript-eslint 8.70.0 and TypeScript 5.9.3. That ESLint version's Node range is ^20.19.0, ^22.13.0 or >=24; do not assume every newer odd-numbered Node release between those ranges is supported.

Account for major-specific lookup

ESLint 10 requires flat configuration and removes legacy eslintrc support. Configuration lookup starts from the linted file's directory rather than always from the process working directory. In a monorepo, inspect the config applying to each target file before moving config files or changing the invocation root.

import { defineConfig } from "eslint/config";

export default defineConfig(
  { ignores: ["generated/**"] },
  { files: ["src/**/*.js"], rules: { "no-unused-vars": "error" } },
);

Use explicit files globs and global ignore objects. --print-config on a real target and a narrowly scoped CLI invocation reveal configuration-selection issues more reliably than whether importing eslint succeeds.

Scope typed configuration

import { defineConfig } from "eslint/config";
import tseslint from "typescript-eslint";

export default defineConfig({
  files: ["src/**/*.ts"],
  extends: [tseslint.configs.recommendedTypeChecked],
  languageOptions: {
    parserOptions: {
      projectService: true,
      tsconfigRootDir: import.meta.dirname,
    },
  },
});

Check plugin compatibility with ESLint 10. Parsing TypeScript alone does not provide the project information required by typed rules. Keep the file within its intended tsconfig and avoid broad default-project fallbacks that increase memory or conceal an incorrect project boundary.

Custom plugins may depend on context or SourceCode methods removed in ESLint 10. Update the plugin's supported API rather than disabling unrelated diagnostics. The major also changes JSX reference tracking and recommended rules; inspect new diagnostics during an explicitly requested migration.

Run and verify

Use the installed CLI. Exit 0 means no failures under the configured thresholds, 1 means lint violations and 2 means configuration/execution failure. Inspect structured diagnostics and verify --fix output with another lint invocation. Preserve the project's formatter and typecheck boundaries.

The fixture performs actual flat-config and typed linting, a bounded JavaScript fix, and clean validation with malformed ignored input excluded. It does not establish compatibility with every third-party rule or legacy configuration.

Sources