CI check Só no nosso repositório · não instalável

O diff, conferido de novo no pull request

Três camadas, cada uma pegando a falha da anterior: o contexto aconselha, o hook local nega na hora, e esta recalcula o diff inteiro no pull request. Ela existe pela única falha que as outras duas não conseguem enxergar.

Pull request · commitcycleCommitCycle's own CI

CC-42: add an index on tasks.updated_at

task/CC-42-add-an-index-on-tasks-updated-at → main

  • ✓ static, test, evals, apps — typecheck, unit tests, evals, builds
  • ◌✓scope — Is this pull request inside what its task declared?

Advisory here: this repository’s plan cannot make a check required.

A camada 3 confere de novo o diff contra o que a task declarou. Hoje roda no próprio CI da CommitCycle, em modo consultivo; nada a instala no seu.

A falha para a qual ela existe

O hook local é o ponto de enforcement, e é honesto sobre o próprio teto: só consegue negar chamadas nas quais está presente. Alguém que nunca rodou cycle init, um agente num harness para o qual o CommitCycle não tem adaptador, uma máquina de onde o plugin foi removido — em todos esses casos o hook não está errado, ele simplesmente não está lá, e ausência é invisível por dentro.

Então a última camada roda no pull request, longe da máquina. Ela lê o mesmo zones.yml, recalcula quais zones o diff realmente tocou, e compara com o que a task declarou. Mesmo modelo, outro ponto de observação.

Os limites dela, na mesma frase. Ela confere o diff contra o que a task declarou, não contra o grant, então aprovações e expiração não são verificadas. Ela lê o mapa de zones do próprio checkout do pull request. Um board que não responde transforma o check num skip que passa mesmo assim. E num pull request de um branch do mesmo repositório, esse branch pode reescrever o workflow que o confere. Um modo de gate mais rígido e um check run do lado do board estão construídos; nenhum dos dois está ligado.

O que ela reporta

Status honesto

O check roda hoje neste repositório, e só aqui. Ele não está publicado no GitHub Marketplace — nenhum script ou workflow deste repositório o publica — e nada o instala no seu. Uma página que dissesse "instale a nossa Action" estaria vendendo algo que ninguém consegue instalar.

Mais um limite, na mesma frase: um check só impede um merge onde a proteção de branch o exige, e num plano pessoal privado gratuito a proteção de branch responde 403, então esta camada roda em modo aviso e diz isso em voz alta, em vez de reportar um enforcement que não executou.

Como as três camadas dividem o trabalho está na documentação (em inglês), e o mapa que as três leem é o mapa de zones.

Perguntas que esta página responde

O que o check de CI pega que o hook local não pega?

O caso que o hook não consegue ver: trabalho feito onde ele nunca foi instalado. O check recalcula o diff do pull request a partir do mapa de zones, então um branch produzido sem o hook é medido do mesmo jeito contra o que a sua task declarou. Hoje ele só roda no repositório do CommitCycle.