CtrlK
BlogDocsLog inGet started
Tessl Logo

mcollina/linting-neostandard-eslint9

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.

96

1.25x
Quality

95%

Does it follow best practices?

Impact

97%

1.25x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-5/

{
  "context": "Tests whether the agent correctly sets up neostandard and ESLint v9 flat config for a TypeScript project, including correct package installation, flat config file, TypeScript support, and lint scripts in package.json.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "eslint devDependency",
      "description": "package.json devDependencies includes 'eslint' (version 9.x or as 'eslint@9' or just 'eslint')",
      "max_score": 8
    },
    {
      "name": "neostandard devDependency",
      "description": "package.json devDependencies includes 'neostandard'",
      "max_score": 8
    },
    {
      "name": "Flat config file",
      "description": "An eslint.config.js or eslint.config.mjs file is created (NOT .eslintrc.json, .eslintrc.js, or .eslintrc.yml)",
      "max_score": 10
    },
    {
      "name": "neostandard import in config",
      "description": "The flat config file imports from 'neostandard' and calls neostandard() as the config base",
      "max_score": 10
    },
    {
      "name": "TypeScript option enabled",
      "description": "The neostandard() call includes { ts: true } (or equivalent ts option) to enable TypeScript linting",
      "max_score": 12
    },
    {
      "name": "lint script",
      "description": "package.json scripts includes a 'lint' entry whose value is 'eslint .' (not 'neostandard' or any other command)",
      "max_score": 12
    },
    {
      "name": "lint:fix script",
      "description": "package.json scripts includes a 'lint:fix' entry whose value is 'eslint . --fix'",
      "max_score": 8
    },
    {
      "name": "No .eslintrc files",
      "description": "No .eslintrc.json, .eslintrc.js, .eslintrc.yml, or .eslintrc file is created",
      "max_score": 8
    },
    {
      "name": "TS rules scoped to TS files",
      "description": "If any TypeScript-specific rules are added manually (beyond neostandard's ts:true), they are scoped to *.ts/*.mts/*.cts files, not applied globally to all files",
      "max_score": 12
    },
    {
      "name": "Base rule disabled for TS variant",
      "description": "If a TypeScript extension rule (e.g. @typescript-eslint/no-unused-vars) is added, the base JS rule (e.g. no-unused-vars) is explicitly turned off",
      "max_score": 12
    }
  ]
}

evals

SKILL.md

tile.json