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
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."