← ClaudeAtlas

dotnet-quality-scanlisted

Varre código C#/.NET em busca do que o compilador e os analisadores Roslyn não reprovam — `async void`, `.Result`/`.Wait()` bloqueante, `new HttpClient()`, `#region`, nomes genéricos (Manager, Helper, Utils), parâmetro booleano de modo, `catch` vazio, `DateTime.Now`, SQL interpolado, estado estático mutável 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 C# ("revisar minhas mudanças", "code review", "olhar a qualidade deste serviço"), no `dotnet-reviewer` e no `/forge:verify` de change que toca `.cs`. Não use para bug de correção, falha de segurança de infraestrutura, ou para stack que não seja .NET.
vellus-tech/forge-harness · ★ 0 · AI & Automation · score 66
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