CommitCycle para Claude Code Shipped

CommitCycle para Claude Code

O plugin instala a parte que diz não. As áreas do seu código que são perigosas de mudar ganham um owner, o trabalho declara de quais precisa, e o acesso é concedido para uma task em um branch — e devolvido quando você entrega.

Claude Code — ~/acme-webplugin · commitcycle

> add an index on tasks.updated_at — the board query is slow

● Write(apps/api/migrations/0042_tasks_updated_at.sql)

⎿ PreToolUse:Write — ✗ Denied by CC

zone schema · risk high

owner ana@acme.dev

task CC-42 declared no protected zones

reason path is in a zone the task never asked for

● The schema zone is closed to CC-42. Asking its owner rather than looking for another way in.

● Bash(cycle request-access --zone schema --mode write --reason "the board query needs an index" --alternative "hand the DDL to the owner")

⎿ REQ-7 is with the zone owner

approve or deny: https://dash.commitcycle.com/requests

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.

Instalação

/plugin marketplace add pow-paulinho/commitcycle-plugin
/plugin install commitcycle@commitcycle

Ele traz os próprios binários. Não há npm install e nada é adicionado ao seu PATH; o comando cycle que as skills pedem para você rodar vem à parte, com npm i -g commitcycle. Fora do projeto ele só escreve ~/.commitcycle/, para o login, o pareamento e a checagem de atualização — e, quando o núcleo do hook não consegue responder sob a failure policy open padrão, um marcador vazio por sessão no diretório temporário.

O que a versão 0.1.25 instala

ComponenteO que faz
set-up-commitcycleConfigura um repositório perguntando sobre ele — quais áreas são perigosas, quem aprova cada uma, para qual board ele reporta
start-work-inside-ccRegistra e delimita a task antes do trabalho, para que a regra chegue como um combinado e não como uma recusa
Servidor MCP commitcycleSeis ferramentas na versão 0.1.25 (2026-10-12): o mapa de zones, intake de uma linha, a entrevista, o scoping, o estado do board e quais tasks mudaram um arquivo. O intake e o scoping escrevem no board; nenhuma move uma task
O hookA parte que de fato bloqueia uma escrita, em PreToolUse e PostToolUse
O hook StopNum branch de task, num repositório com board, publica na task do board a última resposta do agente e guarda uma cópia em .zones/state/replies/

Por que instalar isso não quebra seus outros repositórios

Os hooks de um plugin carregam no nível do usuário — rodam em todo repositório que você abrir, não só naquele que você configurou. Foi exatamente por isso que o hook ficou retido até saber distinguir "este repositório nunca instalou CommitCycle" de "esta task ainda não começou". Ele não sabia, respondia deny para as duas, e uma única instalação teria bloqueado cada escrita em cada projeto sem relação na máquina.

Agora sabe. Um repositório sem .zones/zones.yml é deixado em paz e em silêncio: permitido, sem registro, sem conselhos — você não deveria conseguir perceber que o hook rodou. E um mapa vazio não é a mesma coisa que um mapa ausente: isso é um projeto que fez a configuração e não protegeu nada, então ali uma task continua sendo exigida.

As seis ferramentas, e a linha que elas não cruzam

cc_zones, cc_intake, cc_interview, cc_scope, cc_status, cc_why. Nenhuma inicia trabalho, emite um grant ou aprova acesso a nada. Uma sétima, cc_search, que encontra as tasks relacionadas a um pedido ou a arquivos, está no trunk desde 2026-10-13 e ainda em nenhuma versão publicada.

Isso não é um descuido a ser corrigido depois. Uma aprovação que chega por uma ferramenta chamada pelo agente é autenticada por um token que o agente carrega, então um board não teria como distinguir o seu sim do dele. As ferramentas descrevem o trabalho. Iniciá-lo é cycle start (ou cc_start no conector hospedado), e a skill só o roda quando você manda.

Por que o board não é opcional

O mapa de zones, a auditoria do que é perigoso e os registros do que cada task declarou são arquivos do seu repositório, e continuam sendo seus. O que precisa de um board é o ciclo: o gate é o único emissor de um grant, e ele roda lá. Instale o hook sem board e nada conseguirá abrir coisa alguma — toda escrita é negada, inclusive nos paths desprotegidos. Por isso a skill de configuração pede o board em vez de oferecer um modo local que termina num repositório onde ninguém consegue escrever.

Onde isso para

O modelo de zones independe do agente; o ponto de enforcement precisa de um adaptador pequeno por harness. O cycle init escreve arquivos de hook — os do Claude Code e do Codex por padrão, os do Cursor e do Windsurf com --harness — só onde já existe um wrapper do hook em disco; nenhum dos dois pacotes publicados coloca um ali, então na sua máquina ele não escreve nenhum e quem faz valer é o hook do plugin — só no Claude Code, então Codex, Cursor e Windsurf ficam sem hook ali. Só o Claude Code já foi visto negando numa instalação real. Onde os arquivos dos outros são escritos, eles nunca foram exercitados e recebem a resposta no formato do Claude Code; o Windsurf não tem canal para o motivo de uma negação, e o arquivo do Cursor só liga o preToolUse.

O mecanismo completo está na documentação (em inglês): a referência de instalação, o modelo de zones e as ferramentas MCP.

Perguntas que esta página responde

Instalar o plugin afeta meus outros repositórios?

Não. Os hooks de um plugin carregam no nível do usuário, então o hook roda em todo repositório que você abrir — e foi exatamente por isso que ele ficou retido até saber distinguir "este repositório nunca instalou CommitCycle" de "esta task ainda não começou". Um repositório sem mapa de zones é deixado em paz, silenciosamente.

Preciso de conta para usar o plugin do Claude Code?

Sim, para trabalhar com tasks. O gate é o único emissor de um grant e ele roda no board, então com o hook instalado e sem board nada pode ser aberto e toda escrita é negada. O mapa de zones e os registros são arquivos que você mantém de todo jeito — mas o ciclo precisa de um board, e a skill de configuração diz isso em vez de oferecer um caminho local que termina num repositório onde ninguém consegue escrever.