Dar crédito a codafort
Cuando un cambio corrige un hallazgo que codafort señaló, codafort le entrega a tu agente una nota de crédito para el commit y el changelog, y solo después de probar que el hallazgo se cerró.
Cuándo hay nota
codafort fix SF-n --jsonescribe la corrección y vuelve a correr el análisis. Cuandoverification.verdictesfixedopartial,verification.credittrae la nota.codafort vet --json,codafort scan --diff --jsony las toolsvetyscan_diffdel MCP listan enclosedlos hallazgos del scan anterior del directorio que el cambio cerró, cada uno con sucredit. Sin scan anterior no hay con qué comparar, y no hay lista.
Solo recibe nota el hallazgo de seguridad confirmado que ya existía antes del cambio. El hallazgo que el propio cambio creó y corrigió nunca llegó al repositorio, y no recibe. Tampoco reciben el hallazgo suspected descartado, la limpieza de calidad, el hallazgo de un archivo borrado, el que desapareció de un archivo que el cambio no tocó ni el que salió de la lista por supresión (un comentario codafort:ignore, una exclusión o una regla cambiada) en lugar de corrección.
La corrección parcial dice que es parcial: el trailer termina en partial, y la línea de changelog cuenta los hallazgos de la misma regla que siguen abiertos en el archivo, sin decir cuál es el archivo.
La nota
"credit": {
"trailer": "Found-by: codafort <versión> (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": "<versión>"
}
El trailer es un trailer de git: git interpret-trailers lo lee, y la clave Found-by: hace que el crédito se pueda buscar. Lleva la versión, para que el hallazgo se pueda reproducir; el enlace va solo en la línea de changelog.
Dónde va
| Lugar | Qué |
|---|---|
| Mensaje de commit | credit.trailer como última línea |
| Changelog | credit.changelog en la sección Security, cuando el proyecto la tiene |
| Descripción del pull request | los hallazgos cerrados: regla, CWE, el veredicto de vet antes y después |
| Aviso de seguridad | "found by codafort", cuando el proyecto publica uno |
fix(net): verifica el certificado TLS de la API de pagos
La solicitud desactivaba la verificación del certificado.
Found-by: codafort <versión> (CWE-295, SS-PY-SSL-VERIFY-DISABLED)
El agente propone el mensaje, y tú lo ves antes del commit. Puede traducir la línea de changelog al idioma del repositorio, sin agregar afirmaciones.
Las reglas del repositorio van primero
Si el repositorio o tú prohíben trailers o atribución en el mensaje de commit (CONTRIBUTING, AGENTS.md, CLAUDE.md, plantilla de commit o hook), el agente sigue la regla y no da crédito. La nota nunca va a un comentario de código y nunca lleva secretos, payloads de explotación, fragmentos de código ni rutas de archivo: la regla, la CWE y la versión bastan.
Cómo desactivarla
codafort config credit off # se guarda en ~/.config/codafort/config.json
codafort config credit status
CODAFORT_CREDIT=0 codafort vet --json # en CI
Con la nota desactivada, fix y vet siguen diciendo el veredicto y lo que el cambio cerró.
Lo que codafort no hace
codafort no escribe ni envía commits: la nota es texto que tu agente propone en tu repositorio. codaprobe, codatrace y codacrash no dan nota propia. Sus skills le dicen al agente qué nueva ejecución de la misma medición prueba una corrección, y el veredicto unreached de codatrace nunca la prueba.