.codewarden.yml es un archivo opcional en la raíz de un repositorio. Indica cómo quiere ese repositorio que lo revisen: qué rutas omitir, qué reglas aplican en qué rutas, qué datos suele equivocar el modelo y qué pull requests no revisar en absoluto.
Sin archivo, un repositorio recibe todos los valores por defecto de esta página. Todas las claves son opcionales.
De dónde se lee
CodeWarden lee.codewarden.yml desde la base branch del pull request, en su punta actual. Nunca lee la copia que está en el pull request que se revisa, ni siquiera cuando el pull request es el que agrega o edita el archivo.
Esto es a propósito. Si se leyera la copia editada, cualquiera que pueda abrir un pull request podría reescribir las instrucciones del revisor, o desactivar la revisión, en el mismo commit que oculta un defecto. Un cambio en .codewarden.yml surte efecto en los pull requests hacia una base branch una vez que se hace merge en esa base branch.
Un archivo malo nunca hace fallar una revisión
Lo que estaba vigente en cada revisión, y cualquier cosa que se descartó, se muestra en la página de la revisión en la consola bajo Qué estaba vigente. La lista de verificación de configuración de la página de inicio de la consola también dice si el archivo se encontró y se pudo usar.
Un ejemplo completo
.codewarden.yml
Lo que CodeWarden escribe
language
string
predeterminado:"en"
El idioma del resumen y de los comentarios, como un código ISO tal como
en, es o pt-BR (de 2 a 8 caracteres).Con en o es (también es-CO, es-MX), las palabras que CodeWarden agrega alrededor de un hallazgo también salen en ese idioma: la etiqueta de gravedad, “Prompt para LLM”, el pie del comentario, el marco del resumen, el resultado del check y el aviso de que empezó a revisar. Con cualquier otro código el modelo sigue escribiendo en ese idioma, y esas palabras agregadas quedan en inglés. Los avisos de que falta un plan o de que se agotó el cupo, y la oferta de copiar una regla a este archivo, quedan en inglés.profile
quiet | balanced | strict
predeterminado:"balanced"
La mayor cantidad de comentarios que puede llevar una revisión:
quiet son 4, balanced son 8, strict son 15.Eso es todo lo que define. Los hallazgos se ordenan de peor a mejor, así que un tope menor conserva los más graves. No filtra por gravedad, y no existe un ajuste de confianza mínima: consulta Cómo funciona una revisión.tone
string
predeterminado:"none"
Una o dos frases sobre la voz de los comentarios, de hasta 200 caracteres. El texto más largo se descarta.
Lo que CodeWarden lee
ignore
list of globs
predeterminado:"[]"
Rutas que nunca se revisan, además de la lista incorporada.
unignore
list of globs
predeterminado:"[]"
Rutas que se revisan aunque la lista incorporada o
ignore las omitirían. unignore gana sobre ambas.No puede rescatar un archivo sin diff, ni uno con más de 1.500 líneas modificadas.Globs
Los globs coinciden con la ruta completa desde la raíz del repositorio, distinguiendo mayúsculas de minúsculas.** cruza los límites de directorio; * y ? no. lib/** coincide con archivos bajo lib/ y no con vendor/lib/x.ex. Un patrón que no coincide con nada no es un error.
Lo que CodeWarden sabe
instructions
list of { path, text }
predeterminado:"[]"
Reglas para rutas concretas. El texto se agrega a la revisión solo para los archivos cuya ruta coincide con
path, así que un controlador puede someterse a reglas que un módulo auxiliar no tiene.Úsalo para decir qué cuenta como defecto ahí: una regla que tu equipo decidió en un documento de diseño, en una especificación o en la cabeza de alguien, y que el revisor no puede ver de otro modo.Cada text está limitado a 2.000 caracteres; una entrada con path o text vacío, o que exceda el límite, se descarta. Las instrucciones que coinciden con los archivos de una revisión comparten 8.000 caracteres, para que un repositorio no desplace su propio código fuera de la revisión. Cuando no caben todas, van primero las que coinciden con más archivos.instructions no puede:
- hacer que CodeWarden comente en una línea que el pull request no agregó;
- activar comentarios sobre estilo, nombres, formato, orden de imports, pruebas faltantes, documentación faltante, ni nada formulado como “considera”;
- llegar a un archivo que el pull request no tocó, ni a uno que los filtros omitieron;
- reemplazar las reglas que recibe el revisor. Solo agrega a ellas.
errata
list of strings
predeterminado:"[]"
Datos sobre tus bibliotecas que el modelo se equivoca. Una frase cada uno, que diga lo que es verdad, de hasta 300 caracteres. Se conservan en el orden en que los escribes.Agrega uno el día en que CodeWarden publique una afirmación errónea con total seguridad sobre una biblioteca que usas.
Qué pull requests revisar
skip
mapping
Pull requests que CodeWarden no debe revisar. Un pull request omitido no cuesta ningún turno de IA, no publica nada y aparece en la consola con el estado
skipped y el motivo.Integraciones
jira
mapping
De qué proyectos de Jira puede un pull request enlazar un ticket. Sin esta clave, nunca se lee ningún ticket. Consulta Jira.
sentry
mapping
De qué proyectos de Sentry puede un pull request enlazar un issue. Sin esta clave, nunca se lee ningún issue. Consulta Sentry.
Hallazgos ya decididos
accepted
list of { path, code, problem, category, reason }
predeterminado:"[]"
Hallazgos que tu equipo revisó y decidió que aquí no son defectos. Un hallazgo que coincide con uno no se publica. Rara vez los escribes a mano: CodeWarden propone las líneas exactas cuando cede en una conversación. Consulta Hallazgos aceptados.
path y code son obligatorios, y code (hasta 2.000 caracteres) debe ser texto que realmente esté en el archivo. problem, category y reason son opcionales.Lo que el archivo deliberadamente no puede hacer
- Ejecutar herramientas. No hay una sección
toolspara linters ni analizadores estáticos. Ejecutarlos significa ejecutar código del repositorio, y la configuración de un linter es código. - Elegir el modelo ni su costo. Qué modelo revisa un pull request es responsabilidad de CodeWarden.
- Fijar una confianza mínima. Se midió, y no cambió lo que se publica.
- Desactivar la revisión incremental. Consulta Revisión incremental.
- Reemplazar el prompt de revisión. Todo lo del archivo se suma a las reglas; nada las reemplaza.