NuevoEl enforcement ya está disponible — el plugin y la CLI están en vivo

Varios agentes de código en IA en un repo. Uno revierte al otro en silencio.

CommitCycle le da a ese trabajo un sitio donde vivir. Los paths que harían daño reciben un owner y un risk level; cada agente obtiene acceso a una task en una rama, y ese acceso caduca solo. Mover un muro cuesta una aprobación — con un motivo, y queda constancia.

CommitCycle se construye bajo CommitCycle, y funciona hoy — boards, el connector para agentes, la configuración de repositorios y el plugin que deniega una escritura antes de que ocurra, que puede instalar cualquiera. Lo que necesita invitación mientras esto es nuevo es un board, y eso es una cola, no una página de «próximamente».

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 cifra de aquí lleva sus límites impresos al lado

Salen de audit records de este repositorio, no de un benchmark diseñado para ganar. Un gate que se vende de más se desinstala en la segunda semana.

CC-3

25 / 25

Vectores de escape de Bash contenidos

sed -i, python -c, tee, redirecciones, git checkout -- y un npm run cuyo script de build escribe en un path protegido. Ejecutados contra un fixture repo y verificados byte a byte, no simulados.

Lo que no demuestraLos paths ignorados por git dentro de una zone no están cubiertos — y .env está ignorado por git y es el secreto por excelencia.

CC-3

0 / 20

falsos positivos en comandos corrientes

El allowlist conservador paró 24 de 24 ataques y bloqueó 8 de 20 comandos legítimos, mkdir y cp entre ellos. Un 40% de falsos positivos es la desinstalación de la segunda semana llegando con un marcador perfecto, así que el diseño se invirtió.

Lo que no demuestraVeinte comandos que elegimos nosotros, no veinte tasks reales. La fase 6 es la prueba de verdad y no ha corrido.

CC-1

68–83 ms

añadidos a una tool call, p95

Sobre 120 arranques de proceso en frío — el hook es un proceso nuevo en cada llamada, y los tiempos en caliente lo habrían favorecido.

Lo que no demuestraUna máquina, en reposo. El p99 llegó a 102 ms contra un presupuesto de 100 ms.

Cuatro cosas se rompen cuando un equipo apunta agentes a un mismo repo.

Contexto que vive en un portátil

Un vault de Obsidian privado, un CLAUDE.md que se quedó atrás hace tres sprints, un AGENTS.md del que nadie se fía. Mantenimiento por persona, respuestas por persona.

cycle sync genera el contexto del agente a partir de zones.yml — task activa, zones abiertas, non-goals — entre marcadores en AGENTS.md, sin tocar nada fuera de ellos. El mismo fichero para cada persona y cada agente, revisado como código.

El bloque de contexto

Dos agentes, un repo, ningún árbitro

Los dos convencidos de que el mismo módulo es suyo. Uno revierte al otro en silencio, y el arreglo honesto es volver a un agente cada vez.

Un grant está atado a una task y a una rama, abre sólo las zones que esa task declaró y caduca solo — así que salirse de él se rechaza en el momento, no se descubre en la revisión. Los worktrees aíslan; no deciden. CC confina a cada agente; no arbitra entre ellos.

Grants y access requests

Un prompt no es un permiso

AGENTS.md le pide al agente que no entre en migrations/. Pedirlo funciona justo hasta que deja de funcionar, y ninguna línea de ningún log muestra que dejó de hacerlo.

Marca los paths irreversibles como zones con un owner, un risk level y una política deny — así un grant abre sólo lo que la task declaró, y sólo hasta que caduca. El modelo de zones es agnóstico del agente; el punto de enforcement necesita un adaptador pequeño por harness, y hoy se publica exactamente uno. 25 de 25 vectores de escape contenidos, sobre un corpus que elegimos nosotros.

Las zones, y qué no declarar

Describir el trabajo cuesta más que hacerlo

La task vive en una pestaña del navegador en la que no estás, así que el trabajo empieza sin describir y el primer registro de su alcance es el diff.

Un servidor MCP registra y acota la task desde dentro de la sesión en la que ya estás — mapa de zones, cuatro campos, guardado. Ninguna herramienta de ahí emite un grant, aprueba acceso ni decide una transición: mover una task lo decide el gate, con las mismas reglas pregunte el cliente que pregunte.

El servidor MCP

Tres capas, y sólo dos de ellas imponen algo

Capa 1

Contexto

AGENTS.md

Le dice al agente las reglas en un lenguaje que lee, y no impone absolutamente nada. Esta capa es documentación, y preferimos llamarla así.

consultiva

Capa 2

Policy enforcement

Hook previo a la tool call

Decide cada tool call contra el grant en disco: allow, ask, deny. Nunca toca la red, así que una caída no puede abrir una zone. El modelo de zones es agnóstico del agente — esta capa necesita un adaptador pequeño por harness, y hoy se publica uno.

bloqueante

Capa 3

Required status check

GitHub Action

Vuelve a ejecutar el mismo matching de zones contra el pull request, con la misma implementación. La red determinista bajo lo que se le escapó al portátil.

bloqueante

Lo que CommitCycle no hará

Decisiones permanentes de la spec, no una hoja de ruta disfrazada. La forma más rápida de perder la confianza de un desarrollador es ser vago aquí y concreto después.

Ejecutar tu código

Ni tus tests, ni tus migraciones, ni tu deploy. CC pide evidencia y la comprueba. Cualquier cosa que se ejecute en tu nombre es blast radius que estaríamos añadiendo.

Alojar entornos de preview

La evidencia visual es una URL que ya tienes, o una captura que adjuntas. Alojar previews es un producto, no el efecto secundario de un punto de una checklist.

Sustituir tu tracker

La primera versión trae su propio board — cinco estados fijos son lo que permite que el gate signifique algo. El intake es una API, así que un webhook conecta lo que uses hoy.

Imponer nada a través de MCP

El servidor MCP está publicado, y registra, redacta e informa. No emite ningún grant. Un agente elige si llama a una herramienta, y un límite que se puede decidir no llamar no es un límite.

Soportar Windows, todavía

Sólo macOS y Linux. Decirlo ahora nos sale más barato a los dos que una matriz de soporte que en silencio no te incluye.

Pide una invitación

El registro está cerrado mientras esto es pequeño. No porque no haya nada que usar — lo hay, y los cuatro pasos del quickstart son los de verdad — sino porque a la gente que lo usa pronto se le responde en persona, y eso deja de ser cierto a partir de cierto número.

Cuéntanos qué pondrías detrás de un gate. Dos preguntas, y deciden lo que se construye después tanto como deciden la cola. Si tu configuración es una que podemos soportar bien hoy, tendrás noticias pronto; si no, preferimos decírtelo a que lo descubras tú.

  • Tu dirección va a nuestra propia base de datos y a ningún otro sitio.
  • Gratis para todo el que entre en esta fase, y te lo diremos nosotros antes de que eso cambie.

¿Ya tienes cuenta? Inicia sesión.

¿Qué agente usas más?
¿Cuántas personas hacen commit en el repo?

Dos preguntas porque las respuestas deciden qué se construye después y a quién podemos dar buen soporte hoy — no porque las quiera un CRM. Sin píxeles de seguimiento, sin alquilar listas, y sólo te escribimos sobre lo que pediste.