FácilSkills

Hook Lint On Save — ESLint/Pylint/RuboCop automático post-edit (2,329 installs, top)

Hook con 2,329 installs — el #2 del catálogo entero. Corre lint automático después de cada file modification: ESLint para JS/TS, Pylint para Python, RuboCop para Ruby. La red de seguridad de calidad post-edit.

29 de mayo de 20262 min de lecturaclaude-codeeslintpylint

Qué es#

2,329 installs — el segundo hook más adoptado del catálogo aitmpl (solo detrás de Dependency Checker). Razón: cubre el caso #1 que querés cuando AI edita código — que respete las reglas de tu linter.

Después de cada modification, el hook detecta el lenguaje y corre el linter apropiado:

  • JS/TS → ESLint
  • Python → Pylint
  • Ruby → RuboCop

Hook event: PostToolUse.

Tabla resumen#

CampoValor
Categoría aitmpldevelopment-tools
Installs2,329 (#2 del catálogo)
Hook eventPostToolUse (Edit)
LintersESLint, Pylint, RuboCop

Cómo se instala#

bash
npx claude-code-templates@latest --hook development-tools/lint-on-save

Pre-requisito: el linter de tu lenguaje instalado (eslint, pylint, rubocop).

Para Claude:

bash
Instalé el hook development-tools/lint-on-save. Verificá que tengo
ESLint configurado. Después editá un archivo TS con un error obvio
(unused var) — debería aparecer el warning del lint.

Qué podés hacer con esto#

Catch issues que format no resuelve#

Format arregla whitespace. Lint catch unused imports, magic numbers, complexity issues, security smells.

Combo con format#

Format primero (Format JS o Format Python), lint después. Pipeline limpio.

Para teams con lint estricto#

Si tu CI rechaza PR con lint errors, este hook te avisa antes de commitear. Catch local vs catch en CI.

Para sesiones autónomas#

/goal largo: Claude no introduce lint errors sin que vos notes.

Cuándo NO conviene#

⚠️ Antes de instalar
  • Sin linter configurado: el hook necesita config válida (.eslintrc.*, .pylintrc, .rubocop.yml).
  • Si tu linter es lento: cada edit dispara lint. Para projects grandes con linter pesado, fricción notable.
  • Si tu workflow usa otros linters (Ruff para Python, Standard para Ruby): verificá compatibility.
  • Para archivos no-soportados: este hook cubre 3 lenguajes. Para Go, Rust, etc., otros hooks o ninguno.

Bajalo de la fuente#

Recursos relacionados#