NovoO enforcement já está disponível — o plugin e a CLI estão no ar

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

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

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 Code · branch task/CC-42-add-an-org-index
$ cycle start "add an org index" --goal "index org lookups" --non-goals "no data backfill" --criteria "the query plan uses it"  board  https://dash.commitcycle.com · pow/commitcycleCC-42 is In Progress on task/CC-42-add-an-org-index  open   no protected zones — everything unprotected is yours already  record .zones/tasks/CC-42.md● Edit apps/api/migrations/0007_add_org_index.sql✗ Denied by CC  zone     schema · risk high  owner    paulo@commitcycle.com  task     CC-42 declared no protected zones  reason   path is in a zone the task never asked for$ cycle request-access --zone schema --mode write --reason "the index needs a migration" --alternative "hand the DDL to the owner"REQ-7 sent to paulo@commitcycle.com  Approving opens schema for this task only, for as long as you say.  Answer it in the console, or with cycle requests.

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. Um gate que se vende demais é desinstalado na segunda semana.

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 provaPaths 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 provaVinte comandos que nós mesmos escolhemos, não vinte tasks reais. 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 provaUma máquina, ociosa. O p99 chegou a 102 ms contra um orçamento de 100 ms.

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

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 gera o contexto do agente a partir do zones.yml — task ativa, zones abertas, non-goals — entre marcadores no AGENTS.md, sem tocar em nada fora deles. O mesmo arquivo para cada pessoa e cada agente, revisado como código.

O bloco de contexto

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 agente; não arbitra entre eles.

Grants e access requests

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, um risk level e uma política deny — assim 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 exatamente um está publicado. 25 de 25 vetores de escape contidos, num corpus que nós mesmos escolhemos.

Zones, e o que não declarar

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 emite um grant, aprova acesso ou decide uma transição: mover uma task é decisão do gate, tomada pelas mesmas regras seja qual for o cliente que pergunte.

O servidor MCP

Três camadas, e só duas delas impõem alguma coisa

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

Decide cada tool call contra o grant em disco: allow, ask, deny. 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 um está publicado hoje.

bloqueante

Camada 3

Required status check

GitHub Action

Roda de novo o mesmo matching de zones contra o pull request, com a mesma implementação. A rede determinística por baixo de tudo o que o notebook deixou passar.

bloqueante

O que o CommitCycle não vai fazer

Decisões permanentes da spec, não um roadmap disfarçado. O jeito mais rápido de perder a confiança de um desenvolvedor é ser vago aqui e específico depois.

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.

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, então um webhook conecta o que você usa hoje.

Impor qualquer coisa via MCP

O servidor MCP está publicado, e registra, redige e reporta. Ele não emite grant nenhum. 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. 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 quatro passos do 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.

Qual agente você mais usa?
Quantas pessoas fazem commit no repo?

Duas perguntas porque as respostas decidem o que é construído em seguida e quem conseguimos atender bem hoje — não porque um CRM quer. Sem pixels de rastreamento, sem aluguel de lista, e só escrevemos sobre o que você pediu.