Claude Code Plugins

Community-maintained marketplace

Feedback
44
0

Run ESLint for JavaScript/TypeScript code quality and style enforcement. Use for static analysis and auto-fixing.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name eslint-checker
description Run ESLint for JavaScript/TypeScript code quality and style enforcement. Use for static analysis and auto-fixing.
tools Read, Write, Bash

ESLint Checker Skill

Purpose

Single responsibility: Execute ESLint for static analysis, style enforcement, and auto-fixing of JavaScript/TypeScript code. (BP-4)

Grounding Checkpoint (Archetype 1 Mitigation)

Before executing, VERIFY:

  • Node.js and npm available
  • ESLint installed (local or global)
  • Configuration file exists (eslint.config.js, .eslintrc.*)
  • Target files/directories exist

DO NOT run ESLint without confirming configuration.

Uncertainty Escalation (Archetype 2 Mitigation)

ASK USER instead of guessing when:

  • Multiple ESLint configs found
  • Auto-fix scope unclear (all vs specific rules)
  • Conflicting rules with Prettier
  • Custom rule configuration needed

NEVER auto-fix without user confirmation on production code.

Context Scope (Archetype 3 Mitigation)

Context Type Included Excluded
RELEVANT Source files, ESLint config, ignore patterns Test files (unless requested)
PERIPHERAL Prettier config, tsconfig Build outputs
DISTRACTOR node_modules Deployment configs

Workflow Steps

Step 1: Environment Check (Grounding)

# Verify ESLint installed
npx eslint --version || npm install -D eslint

# Check config exists
ls eslint.config.* .eslintrc.* 2>/dev/null || echo "No ESLint config found"

# List ignored patterns
cat .eslintignore 2>/dev/null || echo "No .eslintignore"

Step 2: Run Linting

Basic lint:

npx eslint src/

With specific extensions:

npx eslint . --ext .js,.ts,.tsx

JSON output for parsing:

npx eslint src/ --format json > eslint_results.json

With auto-fix:

npx eslint src/ --fix

Dry-run fix (preview):

npx eslint src/ --fix-dry-run

Step 3: Analyze Results

# Summary format
npx eslint src/ --format stylish

# Count by rule
npx eslint src/ --format json | jq '[.[].messages[].ruleId] | group_by(.) | map({rule: .[0], count: length}) | sort_by(.count) | reverse'

# Errors only (ignore warnings)
npx eslint src/ --quiet

Step 4: Generate Report

# HTML report
npx eslint src/ --format html -o eslint_report.html

# Markdown summary
echo "# ESLint Report"
echo "## Summary"
npx eslint src/ --format compact 2>&1 | tail -5

Recovery Protocol (Archetype 4 Mitigation)

On error:

  1. PAUSE - Don't auto-fix on error
  2. DIAGNOSE - Check error type:
    • Parsing error → Check TypeScript config, syntax
    • Rule not found → Install missing plugin
    • Config error → Validate eslint.config.js
    • No files found → Check paths, ignore patterns
  3. ADAPT - Adjust scope or configuration
  4. RETRY - With corrected settings (max 3 attempts)
  5. ESCALATE - Report config issues to user

Checkpoint Support

State saved to: .aiwg/working/checkpoints/eslint-checker/

checkpoints/eslint-checker/
├── lint_results.json        # Full results
├── error_summary.md         # Error counts by rule
├── fix_preview.diff         # Proposed fixes
└── config_validation.json   # Config check results

Common ESLint Options

Option Purpose
--fix Auto-fix fixable issues
--fix-dry-run Preview fixes
--quiet Errors only
--max-warnings N Fail if > N warnings
--cache Use cache for speed
--format json JSON output
--ext .ts,.tsx File extensions

Configuration Templates

eslint.config.js (flat config):

import js from '@eslint/js'
import typescript from '@typescript-eslint/eslint-plugin'
import tsParser from '@typescript-eslint/parser'

export default [
  js.configs.recommended,
  {
    files: ['**/*.ts', '**/*.tsx'],
    languageOptions: {
      parser: tsParser,
      parserOptions: {
        project: './tsconfig.json'
      }
    },
    plugins: {
      '@typescript-eslint': typescript
    },
    rules: {
      ...typescript.configs.recommended.rules,
      '@typescript-eslint/no-unused-vars': 'error'
    }
  },
  {
    ignores: ['node_modules/', 'dist/', '*.config.js']
  }
]

References