Dar crédito à codafort
Quando uma mudança corrige um achado que a codafort apontou, a codafort entrega ao seu agente uma nota de crédito para o commit e o changelog, e só depois de provar que o achado fechou.
Quando há nota
- O
codafort fix SF-n --jsongrava a correção e roda a análise de novo. Quando overification.verdictéfixedoupartial, overification.credittraz a nota. - O
codafort vet --json, ocodafort scan --diff --jsone as toolsvetescan_diffdo MCP listam emclosedos achados do scan anterior do diretório que a mudança fechou, cada um com o seucredit. Sem scan anterior não há com o que comparar, e não há lista.
Só recebe nota o achado de segurança confirmado que já existia antes da mudança. O achado que a própria mudança criou e corrigiu nunca chegou ao repositório, e não recebe. Também não recebem o achado suspected descartado, a limpeza de qualidade, o achado de um arquivo apagado, o que sumiu de um arquivo que a mudança não tocou e o que saiu da lista por supressão (um comentário codafort:ignore, uma exclusão ou uma regra mudada) em vez de correção.
A correção parcial diz que é parcial: o trailer termina em partial, e a linha de changelog conta os achados da mesma regra que seguem abertos no arquivo, sem dizer qual é o arquivo.
A nota
"credit": {
"trailer": "Found-by: codafort <versão> (CWE-295, SS-PY-SSL-VERIFY-DISABLED)",
"changelog": "Fixed Improper Cert Validation (CWE-295), found by codafort (https://codafort.dev).",
"cwe": ["CWE-295"],
"rule_id": "SS-PY-SSL-VERIFY-DISABLED",
"version": "<versão>"
}
O trailer é um trailer do git: o git interpret-trailers o lê, e a chave Found-by: torna o crédito pesquisável. Ele leva a versão, para o achado poder ser reproduzido; o link vai só na linha de changelog.
Onde ela entra
| Lugar | O quê |
|---|---|
| Mensagem de commit | o credit.trailer como última linha |
| Changelog | o credit.changelog na seção Security, quando o projeto mantém uma |
| Descrição do pull request | os achados fechados: regra, CWE, o veredito do vet antes e depois |
| Aviso de segurança | "found by codafort", quando o projeto publica um |
fix(net): verifica o certificado TLS da API de pagamentos
A requisição desligava a verificação do certificado.
Found-by: codafort <versão> (CWE-295, SS-PY-SSL-VERIFY-DISABLED)
O agente propõe a mensagem, e você a vê antes do commit. Ele pode traduzir a linha de changelog para o idioma do repositório, sem acrescentar afirmação.
As regras do repositório vêm antes
Se o repositório ou você proíbem trailer ou atribuição na mensagem de commit (CONTRIBUTING, AGENTS.md, CLAUDE.md, template de commit ou hook), o agente segue a regra e não credita. A nota nunca vai para comentário de código e nunca leva segredo, payload de exploração, trecho de código nem caminho de arquivo: a regra, a CWE e a versão bastam.
Como desligar
codafort config credit off # guardado em ~/.config/codafort/config.json
codafort config credit status
CODAFORT_CREDIT=0 codafort vet --json # no CI
Com a nota desligada, o fix e o vet seguem dizendo o veredito e o que a mudança fechou.
O que a codafort não faz
A codafort não grava nem envia commit: a nota é texto que o seu agente propõe no seu repositório. O codaprobe, o codatrace e o codacrash não dão nota própria. As skills deles dizem ao agente qual reexecução da mesma medida prova uma correção, e o veredito unreached do codatrace nunca prova.