Ir al contenido principal
El método

El Método Forge.

Cinco reglas para que tus agentes de IA no improvisen y no te quemen plata.

FORGE·5 reglas · 1 acuerdo
El Método Forge
El concepto
forge — concepto.md

Una tarea no es un post-it.

Es un contrato.

Cuando le pedís algo a un agente de IA sin estructura, no estás dando una orden — estás apostando. El agente interpreta, asume, improvisa, y el resultado depende de cuánto contexto logró reconstruir por su cuenta.

El Método Forge nació de quemar $800 en tokens haciendo exactamente eso. Después de suficiente dolor, entendí que el problema nunca eran los agentes — era la forma en que les pedía las cosas.

Forge es el acuerdo entre vos y tus agentes: vos ponés estructura, ellos ejecutan con precisión. No teoría. No consultora. Lo que funciona en producción, destilado en cinco reglas que podés aplicar esta tarde.

$forge --learn

F·O·R·G·E

Una por una. Con criterio, ejemplos y el test que te dice si la cumplís.

Las 5 reglas
F

Focused Titles

Si el título es vago, la tarea es vaga.

criterio

8+ caracteres, 2+ palabras, sin placeholders genéricos. Tiene que incluir dominio, acción y alcance.

✗ rechazado

"Fix bug"

"Update auth"

"Do the thing"

✓ aceptado

Fix authentication timeout on Nginx reverse proxy

Update JWT expiry from 1h to 24h in src/auth/config.ts

el test

“Leélo sin contexto. ¿Sabés qué dominio, qué acción y qué alcance? Si no, reescribilo.”

cómo Lucy lo aplica

Bloquea la tarea si el título tiene menos de 8 caracteres o es una sola palabra.

O

Output Defined

Si no sabés qué es "listo", el agente tampoco.

criterio

El entregable tiene que ser concreto y validable antes de empezar. No es "que ande", es "el archivo X en el path Y con el comportamiento Z".

✗ rechazado

"Output: Done"

"Output: Fixed"

"Output: Implemented"

✓ aceptado

Output: PostgreSQL migration file

adding users table with indexes

at db/migrations/20250531_users.sql

el test

“¿Podés checkear el output sin correr el código? Si necesitás interpretarlo, no está bien definido.”

cómo Lucy lo aplica

Pide clarificación si el campo Output está vacío o es genérico antes de arrancar.

R

Requirements Declared

Sin contexto, el agente alucina.

criterio

Todos los inputs y dependencias se declaran antes de arrancar: archivos, links, APIs, restricciones, qué NO hacer.

✗ rechazado

"Input: None"

"Input: the usual stuff"

"Input: you know"

✓ aceptado

Input:

- Figma file: figma.com/file/abc123

- Auth middleware: src/middleware/auth.ts

- NO tocar src/routes/public.ts

el test

“¿El agente puede arrancar sin hacerte ninguna pregunta? Si no, falta contexto.”

cómo Lucy lo aplica

Lista los archivos mencionados y verifica que existan antes de crear subtasks.

G

Granular Decomposition

Ni 1 subtask, ni más de 5. En el medio está la claridad.

criterio

Entre 2 y 5 subtasks. Menos de 2 significa que la tarea es demasiado vaga. Más de 5 significa que son dos tareas distintas.

✗ rechazado

1. Do the auth

2. Test it

→ ¿Qué auth? ¿Qué test?

El agente va a adivinar.

✓ aceptado

1. Create JWT util at src/auth/jwt.ts

(sign + verify, RS256)

2. Add validation middleware

at src/middleware/auth.ts

3. Wire middleware to /api routes

4. Integration tests: valid/expired/invalid

el test

“¿Cada subtask tiene un output claro y es ejecutable de forma independiente? Si no, rompé o juntá.”

cómo Lucy lo aplica

Rechaza tareas con 1 subtask. Sugiere dividir si hay más de 5.

E

Errors Cataloged

Si un error pasa dos veces, la tercera ya tiene solución.

criterio

Cuando un error se repite, se documenta en NOTES.md: qué pasó, root cause, fix.

✗ rechazado

// task-004: output folder missing → fix

// task-009: same error again → fix again

// task-015: same error... fix again

→ Nadie lo documentó.

Se repite indefinidamente.

✓ aceptado

// NOTES.md

## output-folder-missing

Ocurrió en: task-004, task-009

Causa: path relativo en config

Fix: usar path.resolve(__dirname)

Estado: runbook activo desde task-010

el test

“¿Está en NOTES.md? Si el error pasó dos veces y no está documentado, está incumplida la E.”

cómo Lucy lo aplica

Chequea NOTES.md antes de arrancar cada tarea. Si hay un error catalogado que aplica, lo avisa.

Cómo usarlo

Anatomía de una tarea bien formada.

Así se ve una tarea que pasa el filtro FORGE. Copiala como plantilla y adaptala.

forge — tarea ejemplo
$forge new-task
title: Fix JWT expiry config in auth service
input:
- src/auth/config.ts (current expiry: 1h)
- src/middleware/auth.ts
- NO tocar src/routes/public.ts
output:
- src/auth/config.ts con expiry: 24h
- tests pasando en src/auth/config.test.ts
subtasks:
1. Actualizar expiry value en config.ts
2. Actualizar tests unitarios
3. Verificar que no rompa middleware
✓ FORGE score: 5/5 — task lista para ejecutar

checklist de 30 segundos

forge validate
$forge validate --quick
[ ] F: ¿El título tiene 2+ palabras y 8+ chars?
[ ] O: ¿Definiste el entregable exacto?
[ ] R: ¿Declaraste todos los inputs?
[ ] G: ¿Tenés entre 2 y 5 subtasks?
[ ] E: ¿Revisaste NOTES.md por errores conocidos?
Si todo está en ✓, largá. Si no, reescribí primero.

Antes de darle play a cualquier tarea, pasá por estas 5 preguntas. Si alguna es "no", corregís antes de gastar tokens.

Prueba

Esto no es teoría que vendo.

MC-Monkeys y MC-Taski corren sobre este método. No es un add-on — es la razón por la que andan bien.

Y después del método, viene la historia

Esto es el método.
La historia completa es otra cosa.

Cómo llegué hasta acá — la semana que lo cambió todo, los $800, las noches sin dormir, el momento en que dejé de tenerle miedo a los agentes y empecé a trabajar con ellos — lo estoy escribiendo como libro. No es el manual técnico que acabás de leer. Es la historia de cómo nació este manual.

El libro, en camino
Billy Monkey