Skip to content

Por qué funciona

LaraPack está pensado para trabajar con un agente —Claude Code, Codex u otro— sin que la arquitectura se degrade. El reparto es simple: el agente escribe el contrato y la lógica de negocio; el generador escribe la estructura; las herramientas comprueban el trabajo de los dos; una persona decide el dominio y revisa.

Esta sección explica por qué ese reparto funciona, cómo se prepara un proyecto, qué ciclo sigue el agente, cómo pedirle las cosas, qué revisa una persona y qué no se delega nunca.

El problema: la deriva

El problema de construir muchos modelos —a mano o con una IA— no es escribir código rápido. Es la deriva: cada modelo sale un poco distinto del anterior, y a los treinta modelos la aplicación ya no tiene una arquitectura, tiene treinta.

Un agente lo empeora sin querer. Escribe Laravel plausible y distinto cada vez: un controlador con la validación dentro, otro que delega en una request, una política que olvida una acción, una migración con otro criterio de nombres. Cada pieza parece correcta y el conjunto deja de ser coherente. Y como escribe rápido, la deriva llega antes.

La regla

La arquitectura se declara, no se escribe.

Si hay que crear un modelo, un endpoint, una request, una política, una migración, un recurso, un formulario o una vista, no se escribe: se declara en laraimport.json y se genera. Escribir a mano lo que el generador produce es exactamente la deriva que LaraPack existe para impedir.

Lo que sí se escribe a mano es la lógica de negocio, y sólo dentro de los huecos que el generador deja para eso: Operations, la política, ManagedFilter::canView, las reglas, los listeners y el resto de extensiones.

Un generador determinista invierte la dinámica: el agente escribe un JSON pequeño y verificable, y las ~58 piezas de cada modelo salen idénticas siempre, las escriba quien las escriba.

El reparto del trabajo

QuéQuién lo decide o lo escribeDónde
La forma del dominio: modelos, columnas, relaciones, qué acciones tiene cada tablaUna persona, o una IA con revisión de una personalaraimport.json
La estructura: las ~58 piezas de cada modeloEl generadorTodo lo generado
La lógica de negocio, la autorización, la visibilidadUna persona o una IALos huecos
Que todo siga cuadrandoLas herramientas y la CIvalidate, verify, audit, tests
Qué se publica y cuándoUna personaVERSION y CHANGELOG.md

Por qué un agente puede iterar solo

Un agente trabaja bien cuando puede comprobar su propio trabajo sin preguntar. LaraPack le da cuatro cosas para eso.

1. Un contrato que se descubre. larapack:schema imprime el JSON Schema completo de laraimport.json: qué se puede declarar, qué es obligatorio, qué valores admite cada campo y qué valor toma si se omite. El agente no deduce el formato de un ejemplo; los ejemplos envejecen y el esquema no.

2. Comprobaciones con código de salida.

ComandoQué comprueba
larapack:validateQue laraimport.json es válido y coherente, antes de generar nada.
larapack:verifyQue lo generado sigue diciendo lo mismo que el contrato.
larapack:auditQue el paquete cumple la línea base del ecosistema: versiones, tests y publicación.

Las tres salen con un código distinto de cero cuando algo falla. Un código distinto de cero quiere decir «aún no has terminado».

3. Salida para máquinas. Con --format=json la salida es un único documento JSON y nada más, también cuando algo falla: ok dice si salió bien y, si el comando ni siquiera pudo ejecutarse (un argumento que falta, una raíz que no existe), error dice por qué. El agente parsea la salida; no raspa texto.

Atención

Antes de LaraPack 7.10.3, larapack:import --format=json escribía líneas de progreso delante del informe, y la salida no se podía decodificar entera. Si el agente trabaja con una versión anterior, actualiza LaraPack.

4. Regenerar es seguro. El generador anota cada archivo que produce en .larapack/manifest.json, con su hash. Con --force regenera lo que nadie tocó y conserva lo editado, avisando. Ampliar el JSON y volver a importar es el flujo normal, no una excepción, así que el agente no tiene miedo de destruir trabajo.

Qué detecta cuando se sale del camino

larapack:verify convierte la deriva en errores concretos:

  • una ruta, un método, una request o una vista escritos a mano para una acción que el modelo no declara (route-not-declared);
  • un modelo immutable con un camino de escritura (immutable-write);
  • una columna secret que vuelve a salir por la API, la exportación o la tabla (secret-exposed);
  • un prefijo de rutas del front que ya no cuadra con el backend (route-prefix);
  • un archivo generado editado (customised), que puede ser un hueco legítimo o deriva.

El detalle de cada comprobación está en Verificar y auditar.

Qué gana la persona que revisa

El laraimport.json es la decisión de arquitectura. Si el JSON está bien, lo generado está bien por construcción. La revisión deja de ser leer cientos de líneas de controladores y migraciones parecidas, y pasa a ser leer un diff pequeño del contrato, la autorización y la lógica de los huecos. El orden está en Qué revisa una persona.

Por dónde seguir

  1. Preparar el proyecto: instalar las instrucciones para el agente y elegir punto de partida.
  2. El ciclo del agente: los comandos, sus códigos de salida y lo que el agente debe y no debe hacer.
  3. Cómo pedir las cosas: peticiones de dominio y qué cuenta como terminado.
  4. Qué revisa una persona.
  5. Lo que no se delega.