O ciclo de um agente de código
As skills ensinam a plataforma
O repositório platform-skills dá a todo agente de código que o carrega os padrões da plataforma: onde fica uma mudança, o catálogo, as raízes de um produto e os módulos do golden-path, os nomes, e as regras do pacote de políticas com as suas mensagens. Quatro das cinco skills trazem exemplos que o pacote de políticas, o terraform validate ou o lint do catálogo devem aceitar ou recusar como a skill diz, e na visão geral da plataforma são verificados os caminhos que ela nomeia. Essas verificações rodam a cada mudança nas skills, contra o pacote de políticas da versão da plataforma que as skills fixam, e de novo quando uma versão nova é verificada antes de ser permitida.
Validar localmente, como o merge request faz
O airframe validate executa a validação do merge request no notebook, sem credenciais nem estado: a formatação, o terraform validate, o validate do OpenTofu e o tflint onde estão instalados, e o pacote de políticas sobre as raízes do Terraform, o arquivo de pipeline e os Dockerfiles declarados. O que precisa da plataforma fica no pipeline: as verificações do controle de aprovação, a detecção de segredos, a análise de dependências e a análise estática do GitLab, o build e os testes da aplicação, o plano, a verificação do plano pelo pacote e o seu preço.
Ler a mensagem, corrigir, validar de novo
Uma regra que falha nomeia o recurso e o que está errado nele, e muitas também dizem o que fazer no lugar, então o ciclo é curto: escrever, validar, ler a mensagem, corrigir, validar de novo e depois abrir o merge request. Um aviso não faz a execução falhar; as skills dizem a um agente de código que o corrija ou que dê o seu motivo no merge request.
As mesmas verificações que todos
O merge request executa os mesmos jobs injetados e as mesmas regras seja quem for que o escreveu; nada neles depende do autor. Pela convenção que as instruções da plataforma para um agente de código e as suas skills ensinam, os commits de um agente de código levam um trailer Generated-by que nomeia o agente e o modelo, e os seus merge requests levam o rótulo agent. Nada verifica nenhum dos dois ainda.
Uma pessoa com nome aprova
A política de aprovação do GitLab conta só a aprovação de uma pessoa que o catálogo nomeia e que não escreveu a mudança nem fez commits nela, e o controle de aprovação aprova só quando os responsáveis atuais da mudança aprovaram. Um agente de código com uma conta própria não é nomeado em lugar nenhum, então a sua aprovação nunca conta. Um que trabalha com a conta de uma pessoa é essa pessoa para o GitLab: não pode dar a aprovação que conta numa mudança que escreveu com ela, e nada o distingue da pessoa.