---
title: "Um check de pull request para o trabalho dos agentes"
description: "A camada 3 recalcula o diff de um pull request contra o que a task declarou. Só roda no repo do CommitCycle; não há nada para instalar."
url: https://commitcycle.com/pt-br/ci/
language: pt-BR
---

# O diff, conferido de novo no pull request

> A camada 3 recalcula o diff de um pull request contra o que a task declarou. Só roda no repo do CommitCycle; não há nada para instalar.

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

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.

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

- **Declarado contra tocado** — as zones que a task nomeou, contra as que o diff prova que mudou
- **Trabalho que chegou sem task** — o caso que só a CI enxerga
- **Overrides, com nome** — um bypass aqui é legítimo, fica registrado, nunca é silencioso

## 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](https://commitcycle.com/docs/concepts/three-layers/) (em inglês), e o mapa que as três leem é [o mapa de zones](https://commitcycle.com/pt-br/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.
