Code Linting
Run all appropriate linters according to repository guidelines.
When to Use This Skill
Use this skill:
- •Immediately after creating new source code files
- •Immediately after modifying existing code (functions, classes, imports, etc.)
- •Immediately after completing a feature, refactor, or bug fix
- •Before staging files for commit
- •When build/compilation succeeds but linting hasn't been checked
- •Proactively, whenever code changes are made
Don't use:
- •When you've already run linting and it passed
Linter Discovery
First look for linting commands in the following order:
- •Directives to AI agents (
CLAUDE.md,.cursorrules,.ai-rules,AGENTS.md,AGENT.md,GEMINI.md, and similar) - •Repository documentation (
README.md,docs/, etc.) - •Package configuration (
package.json,Makefile,pyproject.toml, etc.) - •Standard linter patterns for the project type
If no linting guidelines are found or they are unclear, ask the user for clarification.
Common Linter Commands
bash
# JavaScript/TypeScript npm run lint yarn run lint pnpm run lint npx eslint . # Python ruff check . pylint . flake8 . black --check . make lint # Shell shellcheck . # Multiple/Generic npm run format yarn run format pnpm run format
Linting Process
For each linter found:
- •If it has an auto-fix mode (e.g.,
prettier,eslint --fix,black,ruff check --fix), run that first - •Run the linter in check mode to see if there are any remaining issues
- •If issues can't be fixed automatically, report them clearly
Important Rules
CRITICAL: Do NOT ignore unfixed issues!
- •All linting issues MUST be resolved before considering the task complete
- •The only exception is if the user explicitly gives permission to defer resolution
- •Document any issues that couldn't be auto-fixed for the user to review
Output
Report results organized by:
- •Auto-fixed issues: What was automatically corrected
- •Remaining issues: Issues requiring manual attention (list each with file, line, and description)
- •Recommendation: What the developer should do next
If all linting passes, simply confirm: "All linters passed."