agentic/code/frameworks/sdlc-complete/extensions/javascript/skills/eslint-checker/SKILL.md
Run ESLint for JavaScript/TypeScript code quality and style enforcement. Use for static analysis and auto-fixing.
npx skillsauth add jmagly/aiwg eslint-checkerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Single responsibility: Execute ESLint for static analysis, style enforcement, and auto-fixing of JavaScript/TypeScript code. (BP-4)
Before executing, VERIFY:
DO NOT run ESLint without confirming configuration.
ASK USER instead of guessing when:
NEVER auto-fix without user confirmation on production code.
| 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 |
# 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"
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
# 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
# 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
On error:
Parsing error → Check TypeScript config, syntaxRule not found → Install missing pluginConfig error → Validate eslint.config.jsNo files found → Check paths, ignore patternsState 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
| 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 |
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']
}
]
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.