node-quality-scanlisted
Install: claude install-skill vellus-tech/forge-harness
# node-quality-scan
Duas camadas cobrem qualidade em Node/TypeScript, e elas não se substituem.
A **primeira** é o lint: três regras ESLint em AST — `forge-quality/no-direct-console`, `forge-quality/no-direct-data-access` e `forge-quality/max-lines` — vendorizadas de `soumatheusgomes/vibe-coding-toolkit` (MIT) e registradas pelo `eslint.config.mjs` que `.forge/scripts/node-baseline.sh` materializa. Elas pegam o que grep não pega porque leem a árvore sintática: alias de import (`db as database` continua sendo pego), import default vs namespace de um módulo de banco, e tamanho de arquivo medido por linha real de código-fonte (não comentário, config ou barrel). O que essa camada pega, ninguém precisa revisar à mão — o lint já reprovou. Ela é auditada por `bash .forge/scripts/node-baseline.sh --check` e materializada com `--apply`.
A **segunda** é esta skill: o que nenhuma regra AST vê porque depende de intenção ou de padrão que atravessa mais de uma expressão. Nenhuma regra dirá que `PedidoHelper` não nomeia nada, que `process.env.STRIPE_KEY` espalhado em dez arquivos é config sem validação central, ou que a interface criada "para poder mockar" tem uma implementação só e nenhum outro consumidor.
## Protocolo
Ordem fixa. A ordem é o que torna a revisão auditável — sem ela, o que foi verificado depende de quanto contexto sobrou.
1. **Escopo.** Defina os paths Node/TS afetados (diff da branch, ou o serviço em questão). Não varra o monorepo inteiro quando o change tocou um pac