Node
O Node neste repositório é estreito, mas crucial: o git hook do markdownlint executa
npx --no-install markdownlint-cli2, resolvendo a devDependency markdownlint-cli2
fixada em package.json / package-lock.json. Se o node errado estiver no
PATH, esse hook quebra e bloqueia commits.
A armadilha do shell não interativo no WSL (a que pega)
Um shell de login carrega seu profile, que carrega o gerenciador de versão (nvm) e
coloca o node do repositório no PATH. Um shell não interativo — um script, um
job em segundo plano, um git hook lançado por um agente headless — não carrega
esse profile, então npx/node pode resolver para uma instalação do node Windows
alcançada via interoperabilidade WSL em vez da versão Linux. Então markdownlint (e
qualquer hook baseado em node) executa sob o node errado, ou falha totalmente,
apenas a partir de scripts e jobs em segundo plano — nunca quando você faz commit
manualmente no seu terminal.
Correção: coloque o node do repositório no PATH antes de commitar ou enviar a
partir de um script ou job em segundo plano. A receita exata está em
references/wsl-node-path.md.
Higiene do npm
npm ci(nãonpm install) para uma instalação reproduzível a partir depackage-lock.json; commite o lockfile com qualquer mudança de dependência.npx --no-install <ferramenta>executa a devDependency local fixada e se recusa a buscar silenciosamente uma versão diferente da rede — mantenha o--no-install.- Mantenha a pegada do node mínima: este repositório envia uma devDependency de propósito. Adicionar uma dependência é uma mudança sujeita a confirmação, não um reflexo.