← ClaudeAtlas

node-quality-scanlisted

Varre código Node/TypeScript em busca do que nem o ESLint com as regras `forge-quality/*` reprova — `.then()` sem `.catch()`, `fs.*Sync()` bloqueando o event loop, `new Pool()`/`new Client()` fora de bootstrap de banco, `process.env` lido direto fora de config central, `new Date()` sem argumento, `any` explícito, nomes genéricos (Manager/Helper/Utils), `let` mutável exportado do módulo, `catch` vazio, interpolação de SQL em template literal e interface com implementação única. Determinística: roda `scripts/scan.sh` e emite uma linha por regra, inclusive as que não acharam nada. Use antes de revisar Node/TS ("revisar minhas mudanças", "code review", "olhar a qualidade deste serviço"), no `node-reviewer` e no `/forge:verify` de change que toca `.ts`/`.tsx`/`.js`/`.jsx`. Não use para bug de correção, falha de segurança de infraestrutura, ou para stack que não seja Node/TypeScript.
vellus-tech/forge-harness · ★ 0 · Code & Development · score 66
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