---
title: "Rode vários agentes de código em IA num repo — CommitCycle"
description: "Dê a cada agente uma task, num branch, com um acesso que expira. Os paths que doeriam ganham um owner, e mover um muro custa uma aprovação."
url: https://commitcycle.com/pt-br/
language: pt-BR
---

# Vários agentes de código em IA num repo. Um reverte o outro em silêncio.

> Dê a cada agente uma task, num branch, com um acesso que expira. Os paths que doeriam ganham um owner, e mover um muro custa uma aprovação.

[Instale O plugin, com o hook, instala sem convite](https://commitcycle.com/docs/start/install/)

O CommitCycle dá a esse trabalho um lugar para morar. Os paths que doeriam ganham um owner e um risk level; cada agente, no seu próprio checkout, recebe acesso para uma task num branch, e esse acesso expira sozinho. Mover um muro custa uma aprovação — com um motivo, e fica registrado.

[Peça um convite](https://commitcycle.com/pt-br/#start) [Veja como funciona](https://commitcycle.com/pt-br/zones/)

O CommitCycle é construído sob o CommitCycle, e funciona hoje — boards, o connector para agentes, a configuração de repositórios e o plugin que nega uma escrita antes que ela aconteça, que qualquer pessoa pode instalar. O que precisa de convite enquanto isto é novo é um board, e isso é uma fila, não uma página de "em breve".

**Claude:** Adicione a URL do connector do board e o Claude registra e delimita a task pelo chat — sem instalar nada. Ele não aprova acesso: quem decide são o gate e o owner da zone.

**Cursor:** O mesmo connector no Cursor: inicie a task, veja por que um arquivo mudou da última vez, entregue o trabalho. Só com o connector, nada na máquina bloqueia uma escrita.

**Console:** No console uma task passa pelo gate para In Progress, e o owner de uma zone responde a um access request — por uma hora, quatro, ou até a task fechar.

**Claude Code:** O hook recusa a escrita antes que ela aconteça, nomeia a zone e o owner, e o agente pede acesso em vez de procurar outro caminho. O Claude Code é onde esse bloqueio já foi visto funcionando.

**Terminal:** No terminal, o cycle faz cada passo com um comando: start traz o grant para a máquina, submit devolve.

## O que o CommitCycle faz

Quatro coisas, na ordem em que você as encontra: ele **captura** o trabalho, entrega ao agente o **contexto** com que este repo funciona, mantém o agente dentro dos **limites** que a task declarou, e deixa um **registro** do que de fato aconteceu.

- ### [Um board de cinco estados](https://commitcycle.com/docs/concepts/the-board/)
  [Uma linha chegou a Triage 4,0 s depois do clique, com a digitação automatizada — medido uma vez, em 2026-08-04. De Triage a Done, com duas transições que passam pelo gate: a entrada em In Progress e a entrada em Done.](https://commitcycle.com/docs/concepts/the-board/)
- ### [Um servidor MCP](https://commitcycle.com/docs/reference/mcp/)
  [Registre e delimite trabalho sem sair da sua sessão. Ele não aprova nada — começar o trabalho continua sendo decisão do gate.](https://commitcycle.com/docs/reference/mcp/)
- ### [Contexto que todo agente lê](https://commitcycle.com/docs/concepts/agents-md/)
  [O bloco do AGENTS.md é gerado a partir do mesmo mapa de zones — um arquivo, atualizado, sem redigitar a cada sessão.](https://commitcycle.com/docs/concepts/agents-md/)
- ### [Zones com owner](https://commitcycle.com/pt-br/zones/)
  [Path patterns, um risk level e uma default policy, num arquivo que você revisa como código. Um repositório começa sem nenhuma, no modo memory, até você escolher governance.](https://commitcycle.com/pt-br/zones/)
- ### [Grants just-in-time](https://commitcycle.com/pt-br/zones/)
  [Presos a uma task e a um branch. Expiram sozinhos, então ninguém precisa lembrar de fechá-los.](https://commitcycle.com/pt-br/zones/)
- ### [Uma aprovação para mover um muro](https://commitcycle.com/pt-br/zones/)
  [Uma zone protegida abre para a task uma vez, com um motivo, e fecha quando o grant expira. O hook só restringe — os avisos de permissão do seu harness continuam valendo. Uma decisão custou 68–83 ms no p95 numa máquina ociosa, medido em 2026-08-03; o CC-1377 mediu de novo em outubro de 2026 em duas VMs na nuvem e depende do host: 211–228 ms no p95 na mais lenta.](https://commitcycle.com/pt-br/zones/)
- ### [Bash contido, não adivinhado](https://commitcycle.com/pt-br/zones/)
  [As escritas de shell rodam contra um snapshot do git, e mudanças em paths protegidos que a task não tem abertos são revertidas, byte a byte — exceto arquivos ignorados pelo git, e o que um comando deixa rodando (uma execução em segundo plano, que o hook pergunta antes, um timeout, um cmd &) só é verificado no fechamento.](https://commitcycle.com/pt-br/zones/)
- ### [Um registro de governança por task](https://commitcycle.com/docs/operations/audit-record/)
  [Não é autoria por linha — declarado contra tocado, quem aprovou, o que passou por um override e por quê. Sobrevive à ferramenta.](https://commitcycle.com/docs/operations/audit-record/)

## Cada número aqui traz os seus limites impressos ao lado

Tirados de audit records deste repositório, não de um benchmark feito para ganhar.

CC-3

25 / 25

Vetores de escape de Bash contidos

`sed -i`, `python -c`, `tee`, redirecionamentos, `git checkout --` e um `npm run` cujo script de build escreve num path protegido. Executados contra um fixture repo e verificados byte a byte, não simulados.

**O que isso não prova** Medido em 2026-08-03. Paths ignorados pelo git dentro de uma zone não estão cobertos — e o `.env` é ignorado pelo git e é o segredo por excelência.

CC-3

0 / 20

falsos positivos em comandos comuns

O allowlist conservador barrou 24 de 24 ataques e bloqueou 8 de 20 comandos legítimos, `mkdir` e `cp` entre eles. Uma taxa de 40% de falsos positivos é a desinstalação da segunda semana chegando com o placar perfeito, então o design foi invertido.

**O que isso não prova** Vinte comandos que nós mesmos escolhemos, medidos em 2026-08-03 — não vinte tasks reais. No primeiro dia neste repositório ele recusou três comandos legítimos em cinco minutos. A fase 6 é o teste de verdade e ainda não rodou.

CC-1

68–83 ms

adicionados a uma tool call, p95

Em 120 inicializações de processo a frio — o hook é um processo novo a cada chamada, e tempos a quente o teriam favorecido.

**O que isso não prova** Uma máquina, ociosa, em 2026-08-03, com o primeiro build do hook. O p99 chegou a 102 ms contra um orçamento de 100 ms. O CC-1377 mediu de novo em outubro de 2026 em duas VMs na nuvem: na mais lenta, wrapper e núcleo chegaram a 211–228 ms no p95 (carga 0,74–1,04), e o custo do hook sobre um processo node lançado por shell foi de 84–111 ms lá contra 44–48 ms na mais rápida, com o mesmo código. Dois hosts, não um levantamento.

## Quatro coisas quebram quando um time aponta agentes para um mesmo repo.

Como compartilhar contexto entre agentes de código em IA num time?

### Contexto que mora num notebook

Um vault privado do Obsidian, um CLAUDE.md que ficou para trás há três sprints, um AGENTS.md em que ninguém confia. Manutenção por pessoa, respostas por pessoa.

`cycle sync` escreve o mapa de zones entre marcadores no `AGENTS.md`, sem tocar em nada fora deles — o mesmo arquivo para cada pessoa e cada agente, revisado como código. A task ativa, as zones abertas e os non-goals vão para um `CLAUDE.local.md` ignorado pelo git, que o Claude Code carrega.

[O bloco de contexto](https://commitcycle.com/docs/concepts/agents-md/)

Como rodar vários agentes de código em IA no mesmo repositório sem que um sobrescreva o outro?

### Dois agentes, um repo, nenhum árbitro

Os dois convencidos de que o mesmo módulo é deles. Um reverte o outro em silêncio, e a correção honesta é voltar a um agente por vez.

Um grant fica preso a uma task **e** a um branch, abre só as zones que essa task declarou e **expira sozinho** — então sair dele é recusado na hora, e não descoberto na revisão. Worktrees isolam; não decidem. O CC confina cada checkout — dois agentes no mesmo diretório compartilham a task e o grant dele — e não arbitra entre eles.

[Grants e access requests](https://commitcycle.com/docs/concepts/grants/)

Como impedir que um agente de código em IA edite arquivos que não deveria tocar?

### Um prompt não é uma permissão

O AGENTS.md pede ao agente que fique fora de migrations/. Pedir funciona até o momento em que não funciona, e nenhuma linha em nenhum log mostra que não funcionou.

Marque os paths irreversíveis como zones com um **owner** e um risk level — escrever em qualquer zone exige um grant, seja qual for a default policy dela (`deny` fecha também a leitura), e um grant abre só o que a task declarou, e só até expirar. O modelo de zones é agnóstico ao agente; o ponto de enforcement precisa de um adaptador pequeno por harness, e **hoje só o do Claude Code foi visto negando numa instalação real**. 25 de 25 vetores de escape contidos em 2026-08-03, num corpus que nós mesmos escolhemos.

[Zones, e o que não declarar](https://commitcycle.com/docs/concepts/zones/)

Dá para criar e delimitar tasks para um agente de código sem sair da sessão em que você está?

### Descrever o trabalho custa mais do que fazê-lo

A task mora numa aba do navegador em que você não está, então o trabalho começa sem descrição e o primeiro registro do seu escopo é o diff.

Um servidor MCP registra e delimita a task de dentro da sessão em que você já está — mapa de zones, quatro campos, salvo. Nenhuma ferramenta ali aprova acesso ou contorna o gate: o `cc_start` do connector hospedado pede a ele, e mover uma task é decisão do gate, tomada pelas mesmas regras seja qual for o cliente que pergunte.

[O servidor MCP](https://commitcycle.com/docs/reference/mcp/)

## Três camadas: uma aconselha, outra nega, outra confere de novo

Camada 1

### Contexto

AGENTS.md

Diz ao agente as regras numa linguagem que ele lê, e não impõe absolutamente nada. Esta camada é documentação, e preferimos chamá-la assim.

consultiva

Camada 2

### Policy enforcement

Hook anterior à tool call

Confere cada tool call contra o grant em disco e nega o que ele não cobre. Nunca responde allow, então os avisos de permissão do seu harness continuam valendo. Nunca toca a rede, então uma queda não abre uma zone. O modelo de zones é agnóstico ao agente — esta camada precisa de um adaptador pequeno por harness, e só o do Claude Code foi visto negando numa instalação real.

bloqueante

Camada 3

### Check do pull request

GitHub Action

Roda de novo o mesmo matching de zones contra o pull request, com a mesma implementação. Confere o que a task declarou, não o grant; passa quando o board não responde; e só segura um merge onde a proteção de branch o exige. Roda só neste repositório e não está publicado.

confere

Medimos, em 2026-08-03, o que o Claude Code faz quando o hook falha — travado além do timeout, com crash, devolvendo saída malformada, ou nunca instalado. **Nos quatro casos a escrita passou.**

Um hook é fail-open a menos que você construa a peça que o fecha, então nós a construímos: um wrapper que sempre responde, e responde _deny_ quando o núcleo não responde — se a failure policy do repositório estiver em closed. Isso cobre três dos quatro. Por padrão, a failure policy é open: as chamadas seguem sob as suas próprias permissões e a sessão é avisada. O quarto — uma sessão que rodou sem hook instalado — é invisível para a camada 2 por construção, e é por isso que a camada 3 confere o diff de novo no pull request — e isso só segura um merge onde o check é obrigatório.

## O que o CommitCycle não vai fazer

Decisões da spec, não um roadmap disfarçado.

### ~~Rodar o seu código~~

Nem os seus testes, nem as suas migrações, nem o seu deploy. O CC pede evidência e a confere. Qualquer coisa executada em seu nome é blast radius que estaríamos acrescentando — a única exceção são os comandos spike\_cleanup e spike\_verify que você mesmo configura, e que o cycle discard executa.

### ~~Hospedar ambientes de preview~~

Evidência visual é uma URL que você já tem, ou uma captura que você anexa. Hospedar previews é um produto, não o efeito colateral de um item de checklist.

### ~~Substituir o seu tracker~~

A primeira versão traz o próprio board — cinco estados fixos são o que permite ao gate significar alguma coisa. O intake é uma API — um POST com um título — então uma pequena ponte que você mesmo escreva pode alimentá-lo a partir do que você usa hoje.

### ~~Impor qualquer coisa via MCP~~

O servidor MCP registra, redige e reporta, e o connector hospedado pode pedir ao gate que inicie, entregue ou feche uma task. Nenhuma ferramenta aprova acesso, e nenhuma impõe nada. Um agente escolhe se chama uma ferramenta, e um limite que dá para escolher não chamar não é um limite.

### ~~Suportar Windows, por enquanto~~

Só macOS e Linux, e é a única recusa desta lista que não é para sempre: a D-25 deixa o Windows para depois do MVP, e nenhuma task do board está construindo isso. Dizer isso agora sai mais barato para os dois lados do que uma matriz de suporte que em silêncio não inclui você.

## Peça um convite

O cadastro está fechado enquanto isto é pequeno. Não porque não haja nada para usar — há, e os passos do [quickstart](https://commitcycle.com/docs/start/quickstart/) são os de verdade — mas porque quem usa cedo recebe resposta pessoalmente, e isso deixa de ser verdade a partir de um certo número.

Conte o que você colocaria atrás de um gate. Duas perguntas, e elas decidem o que é construído em seguida tanto quanto decidem a fila. Se o seu setup é um que conseguimos suportar bem hoje, você terá notícias rápido; se não for, preferimos dizer isso a deixar você descobrir.

- O seu endereço vai para o nosso próprio banco de dados e para nenhum outro lugar.
- Gratuito para todo mundo que entrar nesta fase, e você vai ouvir isso de nós antes que mude.

Já tem conta? [Entre](https://dash.commitcycle.com/).
