How to install linting-neostandard-eslint9
npx skills add https://github.com/mcollina/skills --skill linting-neostandard-eslint9Full instructions (SKILL.md)
Source of truth, from mcollina/skills.
name: linting-neostandard-eslint9
description: Configures ESLint v9 flat config and neostandard for JavaScript and TypeScript projects, including migrating from legacy .eslintrc* files or the standard package. Use when you need to set up or fix linting with eslint.config.js or eslint.config.mjs, troubleshoot lint errors, configure neostandard rules, migrate from .eslintrc to flat config, or integrate linting into CI pipelines and pre-commit hooks.
metadata:
tags: linting, neostandard, eslint, eslint9, flat-config, javascript, typescript
When to use
Use this skill when you need to:
- Set up linting in a JavaScript or TypeScript project
- Use
neostandardas a Standard-like ESLint v9 flat-config baseline - Configure
eslint@9with the flat config system (eslint.config.js/eslint.config.mjs) - Migrate from
standardtoneostandardor ESLint v9 - Migrate from legacy
.eslintrc*configuration to ESLint v9 - Run linting consistently in CI and local development
Quick start: basic neostandard setup
Install dependencies and create a minimal eslint.config.js:
npm install --save-dev eslint@9 neostandard
// eslint.config.js
import neostandard from 'neostandard'
export default neostandard()
Verify the config works:
npx eslint .
Common setup workflow (new project)
- Install
eslint@9andneostandard(see Quick start above) - Create
eslint.config.jswithneostandard()as the base - Add any project-specific rule overrides on top
- Run
npx eslint .to confirm no config errors - Add a lint script to
package.json:"lint": "eslint ." - Integrate into CI with a non-fix run; use
--fixonly in local workflows
How to use
Read individual rule files for implementation details and examples:
- rules/neostandard.md - Install, configure, and extend neostandard with ESLint
- rules/eslint-v9-flat-config.md - Build ESLint v9 flat config for JS/TS projects
- rules/migration-from-standard.md - Migrate from
standardtoneostandardor ESLint v9 - rules/migration-from-legacy-eslint.md - Migrate from
.eslintrc*to flat config safely - rules/ci-and-editor-integration.md - CI scripts, pre-commit, and editor setup
Core principles
- Prefer reproducible linting with pinned major versions
- Keep config minimal and explicit
- Use flat config for ESLint v9 projects
- Treat lint failures as quality gates in CI
- Enable auto-fix for local workflows, but validate with non-fix CI runs
Related skills
More from mcollina/skills and the wider catalog.
fastify-best-practices
Build fast, type-safe Node.js REST APIs with Fastify best practices and patterns.
node
Provides domain-specific best practices for Node.js development with TypeScript, covering type stripping, async patterns, error handling, streams, modules, testing, performance, caching, logging, and more. Use when setting up Node.js projects with native TypeScript support, configuring type stripping (--experimental-strip-types), writing Node 22+ TypeScript without a build step, or when the user mentions 'native TypeScript in Node', 'strip types', 'Node 22 TypeScript', '.ts files without compilation', 'ts-node alternative', or needs guidance on error handling, graceful shutdown, flaky tests, profiling, or environment configuration in Node.js. Helps configure tsconfig.json for type stripping, set up package.json scripts, handle module resolution and import extensions, and apply robust patterns across the full Node.js stack.
typescript-magician
Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded/opaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.
nodejs-core
Debugs native module crashes, optimizes V8 performance, configures node-gyp builds, writes N-API/node-addon-api bindings, and diagnoses libuv event loop issues in Node.js. Use when working with C++ addons, native modules, binding.gyp, node-gyp errors, segfaults, memory leaks in native code, V8 optimization/deoptimization, libuv thread pool tuning, N-API or NAN bindings, build system failures, or any Node.js internals below the JavaScript layer.
documentation
Creates, structures, and reviews technical documentation following the Diátaxis framework (tutorials, how-to guides, reference, and explanation pages). Use when a user needs to write or reorganize docs, structure a tutorial vs. a how-to guide, build reference docs or API documentation, create explanation pages, choose between Diátaxis documentation types, or improve existing documentation structure. Trigger terms include: documentation structure, Diátaxis, tutorials vs how-to guides, organize docs, user guide, reference docs, technical writing.
oauth
Implements OAuth 2.0/2.1 authorization flows in Fastify applications — configures authorization code with PKCE, client credentials, device flow, refresh token rotation, JWT validation, and token introspection/revocation endpoints. Use when setting up authentication, authorization, login flows, access tokens, API security, or securing Fastify routes with OAuth; also applies when troubleshooting token validation errors, mismatched redirect URIs, CSRF issues, scope problems, or RFC 6749/6750/7636/8252/8628 compliance questions.