Pluggable ESLint configuration for Node.js that extends ESNext with Node.js-specific safety checks and best practices
73
{
"context": "This criteria evaluates how well the engineer uses eslint-config-node and ESLint tooling to implement a Git pre-commit hook for automated code linting. The focus is on proper package usage, configuration, and integration with Git hooks.",
"type": "weighted_checklist",
"checklist": [
{
"name": "ESLint installation",
"description": "Properly installs ESLint as a dependency (eslint package) with appropriate version",
"max_score": 10
},
{
"name": "Config package usage",
"description": "Installs and references eslint-config-node package correctly in ESLint configuration",
"max_score": 15
},
{
"name": "ESLint configuration file",
"description": "Creates proper ESLint configuration file (.eslintrc.json, .eslintrc.js, or .eslintrc.yml) that extends eslint-config-node",
"max_score": 15
},
{
"name": "CLI invocation",
"description": "Uses ESLint CLI (eslint command) correctly in the pre-commit hook with appropriate flags",
"max_score": 15
},
{
"name": "Staged files detection",
"description": "Correctly identifies and lints only staged JavaScript files using git commands (git diff --cached --name-only --diff-filter=ACM)",
"max_score": 15
},
{
"name": "Exit code handling",
"description": "Properly handles ESLint exit codes to block (exit 1) or allow (exit 0) commits based on linting results",
"max_score": 15
},
{
"name": "Hook script setup",
"description": "Creates executable pre-commit hook script at .git/hooks/pre-commit with proper shebang (#!/bin/bash or #!/bin/sh)",
"max_score": 10
},
{
"name": "Error output",
"description": "Ensures linting errors are displayed to the user when commits are blocked",
"max_score": 5
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-eslint-config-nodedocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10