format-on-save.mjs
- Evento: PostToolUse
- Tipo: aviso: informa o recuerda, no bloquea
Qué hace
Sección titulada «Qué hace»Formatea el archivo guardado con la herramienta del stack (Pint/Prettier/ruff) si existe. Nunca bloquea.
Cómo funciona
Sección titulada «Cómo funciona»Hook PostToolUse (Edit|Write|MultiEdit; en Codex, apply_patch): formatea el archivo recién escrito con la herramienta del stack. Lee .claude/hooks/config.json -> formatters { “<ext>”: “<comando con {file}>” }. Nunca impone un estilo que el proyecto no tiene: 1) Prettier solo si el proyecto tiene su configuración (.prettierrc*, prettier.config.*, “prettier” en package.json) y Prettier instalado en node_modules; jamás con valores por defecto ni descargándolo (npx –no-install). Ruff solo con ruff.toml/.ruff.toml o [tool.ruff] en pyproject.toml. Pint solo si está en vendor/bin. 2) Si al formatear una EDICIÓN cambian muchas más líneas de las que tocó el agente, el archivo no sigue el estilo del formateador: se deshace el formateo, se avisa y ese formateador se apaga para esa extensión el resto de la sesión. No bloquea nunca. Avisa al agente por additionalContext (vuelve a leer el archivo antes de otra edición).