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 --json escribe la corrección y vuelve a correr el análisis. Cuando verification.verdict es fixed o partial, verification.credit trae la nota.
  • codafort vet --json, codafort scan --diff --json y las tools vet y scan_diff del MCP listan en closed los hallazgos del scan anterior del directorio que el cambio cerró, cada uno con su credit. 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

LugarQué
Mensaje de commitcredit.trailer como última línea
Changelogcredit.changelog en la sección Security, cuando el proyecto la tiene
Descripción del pull requestlos 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.