↑ ↓ para navegar
Una PoC para equipos que programan con IA

Porque

Construir dejando huella. Las decisiones no se documentan; se documentan sus conclusiones. Git recuerda qué cambió. Nadie recuerda por qué. Y ahora el por qué vive en un chat que se cierra a las seis de la tarde.

El problema, en dos días

Nadie hizo nada mal.

Martes · LuLu + su IA

"Armá el endpoint POST /payments. Que valide el body y que no cobre dos veces si reintentan."

Elijo zod y no yup: infiere los tipos TS del schema, lo vamos a necesitar para la config y para Stripe, y los errores son legibles.
amount en centavos como entero: los floats no representan decimales exactos.
Idempotency-Key en Redis con TTL 24h, la ventana que usa Stripe.
3f9a2c1feat(payments): POST /payments
×
nada de esto
viaja al jueves
Jueves · TomiTomi + su IA

"Hay un bug de validación en payments.ts, arreglalo."

Reescribe la validación con yup, que conoce mejor.
Acepta 1999.99 como float. "Los precios tienen decimales."
Saca el chequeo de idempotencia. "No estaba en los requerimientos."
b21e0f4refactor: switch validation to yup

Las dos IAs razonaron bien. La segunda nunca vio el razonamiento de la primera. El commit guardó el qué; el por qué murió con la pestaña.

Por qué ahora

Esto siempre pasó. Pero pasaba a ritmo humano.

Antes

Las decisiones técnicas se tomaban en reuniones, PRs largos y hilos de Slack. Pocas por semana. Alguien se acordaba, y con eso alcanzaba.

Ahora

Cada persona toma decenas de decisiones por día conversando con su asistente. Qué librería, qué patrón, qué se descartó. El razonamiento suele ser bueno. Y es privado.

El agravante

La IA de cada uno no conoce lo que decidió la IA de los demás. Así que se contradicen entre sí, con excelentes argumentos las dos.

El volumen de decisiones se multiplicó. La memoria del equipo siguió siendo la misma. Los ADR formales no escalan a este ritmo: nadie va a escribir treinta documentos por día. Hay que capturar donde la decisión nace: en la sesión.

La solución

Capturar el por qué donde nace y servírselo a la IA, no a la persona.

↓
porque_record
La segunda tool: el asistente deja escrita una decisión que acaba de tomar con vos. Cursor, Codex y cualquier cliente MCP también pueden.
porque check --ask
En el PR: qué decisiones toca el cambio y si las respeta o las contradice. Informa; bloquea solo con --strict.

CLAUDE.md queda con un aviso de tres líneas: "antes de tocar un archivo, llamá porque_why". Para humanos existe porque why <path>, pero el humano es el caso raro.

Sin base de datos, sin servicio, sin cuenta. Cero dependencias. Si borrás la herramienta, los archivos siguen ahí.

El jueves, con Porque

La IA de Tomi le pregunta al repo antes de tocar.

Sesión real de Claude Code, sin editar. Le pedimos que rompa la decisión del martes "sin vueltas". Nadie le dijo que consulte nada: tenía la tool y la usó.

No se negó a hacer el trabajo. Encontró el por qué original, propuso una salida que lo respeta, y dejó la reversión como una decisión explícita del equipo, que se registra, no como un accidente.

Este es el cambio de fondo: la interfaz de consulta no es un comando para personas. Es una tool para la IA de tu compañero.

Y si igual lo pushea

El PR tampoco pasa en silencio.

Segunda red. Salida real del check sobre un commit que sí rompe las tres decisiones. Aparecen en el PR con su razonamiento original y el veredicto del modelo.

La tool evita el error en el momento de escribir; el check lo atrapa si alguien lo escribió igual, con otra herramienta o sin la tool.

Contradecir una decisión a veces es correcto. Lo que no puede pasar es hacerlo sin saberlo. Por eso el check informa y solo bloquea con --strict.

Probalo

Sesenta segundos, un repo de prueba y una sesión grabada.

Cloná el repo y corré el demo. Crea un repo de prueba, reproduce la sesión del martes y pregunta porque why.

En tu propio repo: npx --yes porque-cli init. Crea decisions/, el .mcp.json con la tool, el aviso en CLAUDE.md y el hook de Claude Code. Después trabajás como siempre.

Sumá el workflow de GitHub Actions del repo para que cada PR muestre las decisiones que toca.

$ git clone https://github.com/MiguelOvejeroD/porque
$ cd porque && npm run demo
$ npx --yes porque-cli init
# Cursor / Codex: MCP server → npx --yes porque-cli mcp

Necesita Node 18+ y el CLI claude logueado (o una ANTHROPIC_API_KEY). La tool MCP funciona con Claude Code, Cursor, Codex o cualquier cliente MCP. La captura automática lee el transcript de Claude Code hoy.

Ver el repo en GitHub →