dotnet-quality-scanlisted
Install: claude install-skill vellus-tech/forge-harness
# dotnet-quality-scan
Duas camadas cobrem qualidade em .NET, e elas não se substituem.
A **primeira** é o build: `TreatWarningsAsErrors`, `AnalysisMode`, `EnforceCodeStyleInBuild` e a severidade por ID de regra no `.editorconfig` transformam convenção em erro de compilação. O que essa camada pega, ninguém precisa revisar — o build já reprovou. Ela é auditada por `bash .forge/scripts/dotnet-baseline.sh --check` e materializada com `--apply`.
A **segunda** é esta skill: o que nenhum analisador vê porque depende de intenção. Nenhuma regra Roslyn dirá que `PedidoHelper` não nomeia nada, que `Process(order, true)` esconde duas funções numa só, ou que a interface criada "para poder mockar" tem uma implementação 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 .NET afetados (diff da branch, ou o serviço em questão). Não varra o monorepo inteiro quando o change tocou um projeto.
2. **Baseline de build.** `bash .forge/scripts/dotnet-baseline.sh --root <path> --check`. Se ele reprovar, **diga isso primeiro**: revisar estilo à mão num repositório sem `TreatWarningsAsErrors` é gastar julgamento onde faltava um interruptor.
3. **Detecção.** `bash .forge/skills/dotnet-quality-scan/scripts/scan.sh --root <path> [--json /tmp/dotnet-scan.json]`. Saída: uma linha por regra. `OK` quer dizer verificado e limpo, não "não olhei".
4. **Julgamento.** Ca