El ciclo de un agente de código
Las skills enseñan la plataforma
El repositorio platform-skills da a todo agente de código que lo carga los patrones de la plataforma: dónde va un cambio, el catálogo, las raíces de un producto y los módulos de golden-path, los nombres, y las reglas del paquete de políticas con sus mensajes. Cuatro de las cinco skills traen ejemplos que el paquete de políticas, terraform validate o el lint del catálogo deben aceptar o rechazar como dice la skill, y en la visión general de la plataforma se verifican las rutas que nombra. Estas verificaciones se ejecutan en cada cambio a las skills, contra el paquete de políticas de la versión de la plataforma que las skills fijan, y otra vez cuando una versión nueva se verifica antes de permitirse.
Validar localmente, como lo hace el merge request
airframe validate ejecuta la validación del merge request en la computadora portátil, sin credenciales ni estado: el formato, terraform validate, el validate de OpenTofu y tflint donde están instalados, y el paquete de políticas sobre las raíces de Terraform, el archivo de pipeline y los Dockerfiles declarados. Lo que necesita la plataforma queda en el pipeline: las verificaciones de la compuerta de aprobación, la detección de secretos, el análisis de dependencias y el análisis estático de GitLab, la compilación y las pruebas de la aplicación, el plan, la revisión del plan por el paquete y su precio.
Leer el mensaje, corregir, validar otra vez
Una regla que falla nombra el recurso y qué está mal en él, y muchas también dicen qué hacer en su lugar, así que el ciclo es corto: escribir, validar, leer el mensaje, corregir, validar otra vez y luego abrir el merge request. Una advertencia no hace fallar la ejecución; las skills le indican a un agente de código que la corrija o que dé su razón en el merge request.
Los mismos controles que todos
El merge request ejecuta los mismos jobs inyectados y las mismas reglas sin importar quién lo escribió; nada en ellos depende del autor. Por la convención que enseñan las instrucciones de la plataforma para un agente de código y sus skills, los commits de un agente de código llevan un trailer Generated-by que nombra al agente y al modelo, y sus merge requests llevan la etiqueta agent. Todavía nada verifica ninguno de los dos.
Aprueba una persona con nombre
La política de aprobación de GitLab cuenta solo la aprobación de una persona que el catálogo nombra y que no escribió el cambio ni hizo commits en él, y la compuerta de aprobación aprueba solo cuando lo aprobaron los responsables actuales del cambio. Un agente de código con una cuenta propia no está nombrado en ninguna parte, así que su aprobación nunca cuenta. Uno que trabaja con la cuenta de una persona es esa persona para GitLab: no puede dar la aprobación que cuenta en un cambio que escribió con ella, y nada lo distingue de la persona.