Por qué Git ya no alcanza cuando tenés varios agentes de código en paralelo
Foremerge 0.5.0 es un protocolo de coordinación open source (Apache 2.0) que vive por encima de Git y que acaba de aparecer en GitHub con 403 estrellas. Su promesa es directa: detectar conflictos de intención entre agentes de codificación paralelos antes de que se conviertan en conflictos de código. Es decir, antes de que Git siquiera tenga algo que decirte.
El contexto importa: hace apenas unos días, Anthropic rediseñó Claude Code Projects para coordinar múltiples threads en paralelo con un coordinador que reparte tareas (reportado por WersM el 17 de septiembre). Un día después, el 18 de septiembre, Anthropic sumó soporte nativo para el estándar AGENTS.md en Claude Code 2.1.277 (según CryptoBriefing), uniéndose a un formato ya presente en más de 60.000 repositorios. Y Cursor presentó Cursor 3, una interfaz "agent-first" pensada para correr varios agentes a la vez, según Wired.
Todo el ecosistema está migrando del modelo "un humano, un agente, una conversación" al de "un humano supervisando una flota". Foremerge entra en esa carrera con una propuesta concreta: avisos advisory, deterministas, sin locks, y compatibles con Claude Code, Codex y Cursor desde el primer minuto.
🤖 La IA no es solo para leer sobre ella
En la comunidad la aplicamos: automatización, agentes IA y herramientas reales para emprender, no solo para informarte.
👥 Aplicarla en la comunidadEl problema que Git no puede ver
El ejemplo del propio README lo deja claro. Imaginá dos agentes trabajando en paralelo sobre el mismo proyecto:
- Agente A: "Reemplazar
PaymentServiceporStripePaymentService". - Agente B: "Agregar soporte de PayPal al
PaymentServiceactual".
Ambos editan archivos distintos. Ninguna línea se superpone. Git fusiona los dos cambios sin quejarse y el trabajo de PayPal queda colgando sobre una clase que ya nadie llama. Es un bug silencioso: cada agente hizo lo correcto, pero el conjunto está roto.
Git compara texto, no intención. Foremerge invierte esa lógica: le pide a cada agente que declare qué scopes semánticos va a tocar (un símbolo, una API, un schema, una migración, un contrato) y con qué operación (replace, extend, delete, etc.). La detección es determinista: "Consolidar pagos en Stripe" y "Reemplazar PaymentService con Stripe" llegan al mismo veredicto porque ambos declaran la misma operación sobre el mismo scope.
Si dos planes colisionan, Foremerge nombra a los agentes, explica por qué chocan y sugiere cómo dividir el trabajo, por ejemplo introducir una abstracción estable como PaymentProvider. La decisión final sigue siendo tuya: el sistema nunca bloquea ni lockea archivos, porque un agente colgado no puede paralizar a toda la flota.
Cómo funciona Foremerge por dentro
Foremerge se instala con una línea y se inicializa en cinco minutos desde la raíz del repo:
curl -fsSL https://foremerge.com/install.sh | sh
foremerge init
foremerge setup all
El estado vive en un SQLite local dentro del directorio común de Git (<git-common-dir>/foremerge/state.sqlite3). Los worktrees de Git siguen siendo los archivos aislados de cada agente, pero la "conciencia compartida" se almacena en esa base común. Un daemon expone una API HTTP en 127.0.0.1:47811 con autenticación por bearer token, y un servidor MCP sobre stdio permite que cualquier cliente compatible lo invoque como herramienta nativa.
El flujo semántico es:
- Registrar agente y modelo con
foremerge agent register --name X --model MODEL(guarda provenance). - Publicar intent con
foremerge intent publish --scope symbol:PaymentService=replace. - Claim advisory del scope con
foremerge work claim(no es exclusivo, sirve como señal). - Trabajar en el worktree aislado y commitear.
- Publicar ChangeSet con archivos, símbolos, contratos y Git ref.
- Validar con un check registrado por nombre (ej.
cargo test --all-targets), ejecutado por Foremerge contra la fingerprint exacta del candidato. - Aceptar el ChangeSet solo si pasa validación, no hay conflictos
HIGHsin resolver y el worktree está limpio. - Registrar el commit de integración real cuando el PR o merge llega a
main.
Los scope kinds soportados incluyen symbol, api, schema, config, infra, test, migration, env, file, component, contract y domain. Los paths de archivo solos son demasiado finos: pierden colisiones cross-language y de configuración. Por eso Foremerge incentiva scopes semánticos.
Claims, ChangeSets y la puerta de verificación
La pieza que más vale para founders: la puerta de verificación es owned by Foremerge, no por el agente. Cuando un agente reporta "pasé los tests", eso es solo provenance. Para aceptar el cambio, Foremerge corre el comando exacto (cargo test --all-targets, pytest, npm run build, lo que definas) contra la fingerprint del candidato. Si el árbol cambió después, el intento queda marcado como no autoritativo, pero su output queda consultable para auditoría.
Esto encaja con una práctica de ingeniería seria: registrar un check rápido y honesto que detecte handoffs rotos (un build, un typecheck, un smoke test) en lugar de la suite completa de CI. Si no hay nada significativo para verificar, se puede declarar la policy como advisory y los cambios aceptados se marcan como UNVERIFIED con el motivo, así la auditoría nunca miente sobre qué corrió y qué no.
Para equipos que generan artefactos descartables (cobertura, reports), se pueden excluir paths exactos o por prefijo sin tocar archivos tracked. El digest de la policy normalizada entra en la fingerprint del candidato, lo que evita que la policy se use para evadir resultados.
MCP: cómo lo descubren Claude Code, Codex y Cursor
foremerge setup all instala el skill nativo y la entrada MCP en los clientes detectados. Funciona con Claude Code, Codex y Cursor. Si ya tenés un fmg en tu PATH, el instalador no lo pisa. La entry MCP queda en .codex/skills, .claude/skills, .cursor/skills o .agents/skills según corresponda, y trae 18 herramientas que cubren todo el ciclo: register_agent, publish_intent, claim_work, query_work, check_conflicts, publish_changeset, run_verification, accept_changeset, record_commit, discard_work, entre otras.
El MCP no requiere un daemon HTTP separado; corre sobre stdio y habla directo contra la misma base SQLite. Para inspección humana, el daemon loopback sirve rutas /v1/... autenticadas y un endpoint público /healthz y /readyz para liveness.
Qué significa esto para tu startup
Si en tu equipo ya lanzan varios agentes sobre el mismo repo (Claude Code, Codex, Cursor o lo que venga), Foremerge te da tres cosas concretas que hoy Git no te da:
- Visibilidad de intención antes del daño. En vez de enterarte del choque cuando el PR ya rompe producción, lo ves cuando los agentes declaran lo que van a tocar.
- Auditoría reproducible. La cadena de eventos semánticos tiene hash chaining, los Git refs reales se registran, y la verificación queda guardada con su comando exacto y su fingerprint.
- Cero vendor lock-in. Es open source Apache 2.0, en Rust, con CLI, JSON API, MCP y SQLite local. Lo podés correr en CI, en una VM o en tu laptop.
Dos acciones que podés tomar esta semana
- Probalo con un test controlado en tu repo más activo: instalá Foremerge con el snippet de la Quickstart, registrá dos agentes en worktrees distintos sobre el mismo módulo y publicales intents que se pisen a propósito (por ejemplo, uno
replacey otroextendsobre el mismosymbol:). Vas a ver el advisoryHIGHantes de que se escriba una línea. Cinco minutos desdeinithasta el primer conflicto detectado. - Definí un "trusted check" corto y honesto por repo: un
cargo test --all-targets, unpytest -x, unnpm run build && npm run typecheck. Ese check se vuelve la puerta de aceptación de cualquier ChangeSet aceptado por tus agentes. Si todavía no tenés suite, declaralo comoadvisoryy dejá el audit trail diciendoUNVERIFIED.
Lo que el MVP todavía no te garantiza
Conviene leer las limitaciones antes de adoptarlo como gate de integración. La detección de conflictos es determinista pero heurística: puede perder conceptos sinónimos o avisar de trabajos compatibles. Los claims son advisory, nunca exclusivos. La cadena de eventos detecta cambios internos, pero no es firma criptográfica ni attestation externa. El SQLite es local, no es consenso distribuido; si lo montás en red, no estás ganando durabilidad distribuida. Y Foremerge no reemplaza code review, CI, security scanning, ni las reglas del hosting de Git.
Dicho esto, en un momento donde Cursor 3 (Wired), Claude Code Projects (WersM) y el estándar AGENTS.md (CryptoBriefing) están empujando hacia workflows multi-agente, tener un protocolo que declare intención antes de tocar código deja de ser un capricho y empieza a ser infraestructura básica.
Fuentes
- GitHub - naw103/foremerge (fuente original)
- Wired - Cursor Launches a New AI Agent Experience to Take On Claude Code and Codex
- CryptoBriefing - Anthropic updates Claude Code to support AGENTS.md file
- WersM - Claude Code Is Turning AI Agents Into A Coordinated Team
- Foremerge - sitio oficial
🤖 La IA no es solo para leer sobre ella
En la comunidad la aplicamos: automatización, agentes IA y herramientas reales para emprender, no solo para informarte.
👥 Aplicarla en la comunidad














