audit-money
/octopus:audit-money escaneia o branch atual (ou qualquer ref) em busca de
problemas de corretude em lógica monetária antes do merge. Ele produz um
relatório com severidade em sete famílias de inspeção, projetado pra colar
direto em um comentário de PR.
O que resolve
Bugs de dinheiro têm uma propriedade particular: são frequentemente invisíveis
em code review porque os revisores focam em lógica, não nos requisitos sutis de
corretude de computação financeira. Um float pra um campo monetário, um
Math.Round sem modo de arredondamento explícito, um novo endpoint de webhook
sem verificação de assinatura, ou uma mudança de taxa que nunca ganhou uma spec
de disclosure — nenhum desses parece errado à primeira vista. Parecem errados em
produção, de madrugada, quando a reconciliação contábil falha. audit-money
torna esses padrões explícitos e revisáveis antes do merge.
Como resolve
O skill resolve o diff, identifica arquivos relevantes a dinheiro via heurísticas de palavras-chave e executa sete famílias de inspeção:
- T1 types — sinaliza
float/doublepra campos monetários em C#; sinalizanumbersimples pra valores de moeda em TypeScript sem comentário de centavos. Severidade: warn. - T2 rounding — sinaliza
Math.Roundsem argumentoMidpointRoundingexplícito em C#; sinaliza.toFixed()em valores monetários em TypeScript. Também detecta modos de arredondamento inconsistentes entre arquivos no mesmo diff. Severidade: warn. - T3 tests — exige que arquivos de money modificados tenham mudanças em testes correspondentes, e que esses testes exercitem valores de centavos não redondos. Severidade: warn / info.
- T4 env — bloqueia quando uma nova env var
*_PERCENT/*_FEE/*_RATEexiste em um arquivo de ambiente mas não em outro (sandbox vs produção). Severidade: block. - T5 idempotency — avisa quando um POST externo pra URL de provedor de pagamento não carrega idempotency key ou referência externa. Severidade: warn.
- T6 webhook — bloqueia quando um novo endpoint de webhook é criado sem verificação de assinatura antes do processamento do payload. Severidade: block.
- T7 disclosure — avisa quando uma mudança de taxa ou fee no diff não tem menção correspondente a disclosure, consentimento ou aviso nos specs ou documentos de pesquisa tocados. Severidade: warn.
Uso & parâmetros
/octopus:audit-money [ref] [--base=main] [--write-report] [--only=<families>]ref— número de PR (#123), URL, nome do branch ou SHA do commit. Default:HEADatual vs seu upstream.--base=<branch>— branch base para o diff. Default:main.--write-report— persiste o relatório emdocs/reviews/YYYY-MM-DD-money-<slug>.md.--only=<lista>— subconjunto separado por vírgula detypes,rounding,tests,env,idempotency,webhook,disclosure. Executa apenas as famílias listadas.