IA en Laravel: Laravel Boost, OpenCode y MCP desde Cero

Video thumbnail

Índice de contenido

Antes de comenzar, quiero hacer una aclaración necesaria sobre esta sección. Introducir la IA en cursos o libros siempre es un reto debido a su naturaleza ambigua. A diferencia de la programación tradicional, donde una entrada (input) genera siempre la misma salida siguiendo una lógica lineal, la IA funciona como una caja negra. Puedes darle la misma instrucción mil veces y obtendrás mil variantes distintas.

Por eso, te pido que modules tus expectativas: lo que verás aquí no es una ciencia exacta, sino un camino posible entre muchos otros.

Mi Enfoque: Flujo de Trabajo y no "Teoría de Modelos"

No pretendo que esta sección sea una "Introducción a la IA". No voy a explicar tipos de modelos, cómo ejecutarlos localmente o la arquitectura interna de las redes neuronales; para eso ya hay contenido infinito en internet. Mi objetivo es 100% práctico y enfocado en Laravel.

Te voy a mostrar mi flujo de trabajo personal. Utilizaré herramientas como Google Antigravity, pero eso no significa que sean las únicas. Si tú prefieres usar Windsurf, Cursor o la interfaz de línea de comandos de Gemini (Gemini CLI), puedes hacerlo perfectamente. Lo importante no es la herramienta específica, sino cómo integras la IA en tu día a día como desarrollador.

Laravel + IA: Laravel Boost y SDK

Laravel ya ofrece herramientas potentes que queremos aprovechar. Nos centraremos especialmente en cómo la IA se integra con el ecosistema moderno de Laravel. Intentaré ser conciso: no quiero que esta sección sea más grande que el resto del curso.

Si te interesan los detalles técnicos de cada herramienta (como OpenCode), te invito a investigar por tu cuenta. No me detendré a explicar cada comando desde cero porque eso nos desviaría del objetivo principal: programar mejor con Laravel.

Programación Solitaria vs. Equipos de Agentes

Hoy en día está muy de moda hablar de "enjambres de agentes" (analistas, refactorizadores, expertos en QA trabajando en paralelo). En mi experiencia como programador independiente, ese flujo suele ser innecesario para proyectos de tamaño pequeño o mediano.

Mi aplicación más grande, mi propia academia, ha evolucionado desde CodeIgniter 3 hasta Laravel, y aunque tiene una base de datos enorme y años de código, no necesito 5 agentes ejecutándose simultáneamente. Por eso, el flujo que te enseñaré es:

  • Sencillo: Fácil de implementar hoy mismo.
  • Práctico: Enfocado en los proyectos educativos que estamos construyendo.
  • Realista: Pensado para el desarrollador que trabaja solo o en equipos pequeños.

El reto de "Programar sin Programar"

Existe un riesgo en los cursos modernos: el prompt engineering extremo donde parece que la IA hace todo y el programador no hace nada. Ese no es mi estilo. No quiero que pienses que "ya no hace falta aprender a programar".

Usaremos la IA como un soporte para:

  • Perderle el miedo a nuevas implementaciones.
  • Mejorar la redacción de nuestros prompts en lenguaje natural.
  • Entender el contexto donde la IA realmente aporta valor sin sustituir nuestra lógica.

Espero que este punto de partida esté claro. Vamos a ver cómo potenciar tu flujo de trabajo sin perder el control de tu código.

Herramientas y Software: Mi Selección Pragmática

Vamos a detallar el software que utilizaremos. Si ya tienes tus propias herramientas, puedes usarlas, pero para seguir estas demostraciones te recomiendo las que mencionaré a continuación.

Esta sección es dinámica; a diferencia del resto del curso, donde sigo mis libros al pie de la letra, el mundo de la IA cambia a diario. Yo también sigo aprendiendo; nadie es un experto absoluto aquí porque la información nos desborda. Mi objetivo es trazarte un camino fácil para que lo que a mí me tomó semanas aprender, tú lo domines en minutos y tengas un punto de partida sólido.

OpenCode: El Motor de Codificación

Voy a utilizar OpenCode. ¿Por qué? Porque en este momento es uno de los pocos agentes de codificación que se integra perfectamente con Laravel Boost, que es el núcleo de lo que vamos a ver.

¿Por qué no otras opciones?

  • Claude: Es excelente, pero es de pago. Este curso está pensado para que no tengas que obligatoriamente pagar suscripciones extra. Además, en algunos países (como el mío) está bloqueado y usar VPN a nivel de sistema es un fastidio.
  • Gemini CLI: Aunque es de Google, siento que todavía está un poco por detrás de OpenCode en cuanto a la ejecución de agentes en paralelo y versatilidad profesional.

OpenCode es gratuito, accesible y potente. Si sabes usar esta herramienta, lo que aprendas tendrá un equivalente casi de 1 a 1 si decides mudarte a Claude o usar MCPs (Model Context Protocol) en el futuro.

https://opencode.ai/

Google IDE (Antigravity): Mi Nuevo IDE Favorito

La siguiente herramienta es Google IDX Antigravity es un IDE construido sobre VS Code, por lo que no tendrás problemas de adaptación.

Confío en esta herramienta porque es de Google y, aunque a veces cancelan proyectos, IDX parece haber llegado para quedarse. De hecho, lo he adoptado tanto que ya casi no abro mi VS Code local. Es multiplataforma, se instala en dos pasos y te permite un flujo de trabajo mucho más rico y sencillo.

Instalación y Configuración en Windows, Mac y Linux

La instalación de IDE y OpenCode no tiene misterio: descargas el ejecutable de su página oficial y sigues el asistente.

Para los usuarios de Linux, les sugiero tener precaución con las instalaciones globales de node (vía sudo), ya que los permisos pueden dar problemas. Si usas Mac, mi recomendación personal es instalar todo mediante Homebrew. Es el manejador de paquetes por excelencia (el "Chocolatey" de Windows) que siempre utilizo para instalar PHP, bases de datos o cualquier servicio antes de que existiera Laravel Herd.

$ curl -fsSL https://opencode.ai/install | bash

O

$ brew install anomalyco/tap/opencode

Extensiones Imprescindibles

Tanto en VS Code como en Google Antigravity, debes ir al apartado de extensiones y buscar OpenCode.

Aunque la extensión es cómoda para no tener mil ventanas flotando, a veces "choca" con los comandos de teclado nativos del editor (como Ctrl+P). Si sientes que se queda limitado, recuerda que siempre puedes ejecutar OpenCode directamente desde la terminal, donde tiene todo su potencial.

Instala la extensión en ambos editores:

https://marketplace.visualstudio.com/items?itemName=sst-dev.opencode

Así, si se agota tu plan en uno o prefieres cambiar de ambiente sin cerrar el proyecto, tendrás todo listo para continuar.

Laravel + IA: Entendiendo el Ecosistema (Boost vs. SDK)

La gente de Laravel no descansa cuando se trata de adoptar nuevas tecnologías, y con la Inteligencia Artificial no ha sido la excepción. Si buscas "Laravel AI" en Google, verás que han lanzado un ecosistema potente. Aunque parezca que hay muchos paquetes, todo se resume en dos herramientas principales: Laravel Boost y Laravel AI SDK.

¿Cómo usamos la IA hoy en día?

Básicamente, existen dos formas de interactuar con la IA en nuestro mundo de programadores:

  1. Como asistente de codificación: Herramientas que nos ayudan a escribir código (como Cursor, Copilot o Google IDX).
  2. Como parte de nuestra aplicación: Cuando queremos que nuestra web genere imágenes, traduzca textos o responda chats para nuestros usuarios finales.

Laravel Boost: Tu Asistente de Código de Alta Calidad

Seguramente te estarás preguntando: "Si ya uso Google IDX o extensiones en VS Code, ¿para qué quiero un paquete de Laravel para programar?".

La respuesta es sencilla: Contexto y Calidad. Las IA genéricas a veces se "lían". Por ejemplo, les pides una vista y te mezclan sintaxis vieja, o intentan instalar Tailwind v3 cuando ya estamos en la v4. Esto pasa porque son modelos generales que no entienden a fondo las particularidades de un proyecto Laravel (sus rutas, su estructura de carpetas, sus configuraciones de Vite, etc.).

Laravel Boost soluciona esto. Es un asistente especializado que:

  • Utiliza Skills (habilidades) y Guidelines (guías) específicas de Laravel.
  • Se conecta mediante MCP (Model Context Protocol) para entender mejor tu proyecto.
  • Su objetivo es uno solo: Generar código de calidad que sí funcione en el ecosistema actual de Laravel sin darte soluciones obsoletas.

Dato importante: Este paquete se instala como una dependencia de desarrollo (--dev), porque una vez que tu aplicación está terminada y en producción, el "asistente" ya hizo su trabajo y no necesita estar ahí.

$ composer require laravel/boost --dev

Laravel AI SDK: Integrando la IA en tu App

Por otro lado, tenemos el Laravel AI SDK. Esta herramienta no es para ayudarte a programar, sino para que tu aplicación sea inteligente.

Si quieres que tu usuario pueda:

  • Generar una imagen de una "dona espacial" desde un formulario.
  • Traducir un comentario automáticamente.
  • Interactuar con un chatbot que use modelos locales o externos.

Entonces usas el SDK. Es una librería que te permite lanzar prompts directamente desde tu código PHP. A diferencia de Boost, esta es una dependencia normal de la aplicación, ya que formará parte de las funcionalidades que tus usuarios finales van a disfrutar.

En Resumen

HerramientaPropósitoEntorno
Laravel BoostAyudarte a TI a escribir mejor código Laravel.Desarrollo (--dev)
Laravel AI SDKAyudar a tu USUARIO a usar funciones de IA en la web.Producción

Aunque al final ambas consultan a un modelo de lenguaje, funcionalmente son mundos distintos. En esta sección nos vamos a centrar primero en Laravel Boost, porque antes de ofrecer IA a nuestros usuarios, ¡necesitamos que la IA nos ayude a nosotros a terminar el proyecto de forma eficiente!

Laravel Boost: Instalación y Configuración Inicial

¡Bienvenidos al mundo de los nombres épicos de Laravel! Entre el SDK, el Laravel AI Boost y demás terminología, parece que estamos armando un equipo de superhéroes. Para que no te líes con tanto nombre, he preparado una publicación detallada en mi blog donde puedes leer todo esto con calma si prefieres el texto al video.

Ya tenemos las herramientas básicas instaladas (como Google Antigravity o VS Code), así que ahora toca ensuciarse las manos con el paquete que nos provee el ecosistema de Laravel.

1. Instalación del Paquete

Vamos a trabajar sobre un proyecto "virgen". Lo primero es instalar Laravel Boost a través de Composer. Recuerda que este es un paquete exclusivo para la etapa de desarrollo, por lo que debemos usar el flag --dev:

$ composer require laravel/boost --dev
Bash
composer require laravel/ai-bus --dev

2. Configuración y Assets

Una vez instalado el paquete, necesitamos publicar sus archivos de configuración y assets en nuestro proyecto. Para ello, ejecutamos el comando de instalación propio del paquete:

$ php artisan boost:install  
Bash
php artisan bus:install

Nota: Si ves mensajes en rojo en la terminal, no te asustes. A veces Laravel usa colores llamativos para indicar pasos a seguir (como recordarte que ejecutes npm run dev), pero no siempre significa que algo haya fallado:

Please set up Boost with [php artisan boost:install] first.
Script @php artisan boost:update --ansi handling the post-update-cmd event returned with error code 1

  ██████╗   ██████╗   ██████╗  ███████╗ ████████╗
  ██╔══██╗ ██╔═══██╗ ██╔═══██╗ ██╔════╝ ╚══██╔══╝
  ██████╔╝ ██║   ██║ ██║   ██║ ███████╗    ██║   
  ██╔══██╗ ██║   ██║ ██║   ██║ ╚════██║    ██║   
  ██████╔╝ ╚██████╔╝ ╚██████╔╝ ███████║    ██║   
  ╚═════╝   ╚═════╝   ╚═════╝  ╚══════╝    ╚═╝   
   ✦ Laravel Boost :: Install :: We Must Ship ✦ 
  Let's give Laravel a Boost
 ┌ Which Boost features would you like to configure? ───────────┐
 │ AI Guidelines                                                │
 │ Agent Skills                                                 │
 │ Boost MCP Server Configuration                               │
 └──────────────────────────────────────────────────────────────┘
 ┌ Which third-party AI guidelines/skills would you like to install? ┐
 │ laravel/fortify (guidelines, skills)                              │
 │ spatie/laravel-permission (skills)                                │
 └───────────────────────────────────────────────────────────────────┘
 ┌ Which AI agents would you like to configure? ────────────────┐
 │ Gemini CLI                                                   │
 │ OpenCode                                                     │
 └──────────────────────────────────────────────────────────────┘
Adding 8 guidelines to your selected agents
 ┌───────────┬────────────┬───────────┬──────────────┬─────────────────┐
 │ boost     │ foundation │ herd      │ laravel/core │ laravel/fortify │
 ├───────────┼────────────┼───────────┼──────────────┼─────────────────┤
 │ pest/core │ php        │ pint/core │              │                 │
 └───────────┴────────────┴───────────┴──────────────┴─────────────────┘
  OpenCode  ... ✓
  Gemini CLI... ✓
Syncing 6 skills for skills-capable agents
 ┌────────────────────────────────┬─────────────────────┬─────────────────────────┐
 │ cashier-stripe-development     │ fortify-development │ laravel-best-practices  │
 ├────────────────────────────────┼─────────────────────┼─────────────────────────┤
 │ laravel-permission-development │ pest-testing        │ tailwindcss-development │
 └────────────────────────────────┴─────────────────────┴─────────────────────────┘
  OpenCode  ... ✓
  Gemini CLI... ✓
Installing MCP servers to your selected Agents
  OpenCode  ... ✓
  Gemini CLI... ✓

Personalizando el boost: Skills, Guidelines y MCP

Al ejecutar la instalación, el sistema te preguntará qué componentes deseas activar. Aquí es donde la experiencia varía según tu sistema operativo:

  • En macOS y Linux: Verás una lista interactiva donde puedes usar las flechas y la barra espaciadora para seleccionar.
  • En Windows: Es posible que no sea interactivo. En ese caso, deberás escribir manualmente los nombres separados por comas (ejemplo: guidelines, skills, mcp).

¿Qué estamos activando exactamente?

  • Guidelines: Reglas de estilo y mejores prácticas para que la IA no invente cosas raras.
  • Skills: Habilidades específicas para que el asistente sepa interactuar con funciones de Laravel.
  • MCP (Model Context Protocol): El "conector" que permite a la IA entender el contexto profundo de tu aplicación.

Mi recomendación: ¡Selecciónalo todo! Cuantas más herramientas tenga el asistente, mejor podrá ayudarte.

Integración con Paquetes de Terceros

Lo interesante de Laravel Boost es que no solo conoce Laravel "a secas", sino que detecta qué otros paquetes tienes instalados. Si en tu proyecto usas:

  • Laravel Permission (Spatie)
  • Laravel Fortify
  • Laravel Cashier

El asistente lo detectará y te ofrecerá skills y guías específicas para esas herramientas. Es decir, la IA no te dará una solución genérica, sino una adaptada a los paquetes que realmente estás usando.

 ┌ Which third-party AI guidelines/skills would you like to install? ┐
 │ laravel/fortify (guidelines, skills)                              │
 │ spatie/laravel-permission (skills)                                │
 └───────────────────────────────────────────────────────────────────┘

Selección del Agente (OpenCode vs. Gemini)

El último paso es decirle a Laravel qué "cerebro" vas a usar para procesar las peticiones. Verás una lista de agentes compatibles:

  1. OpenCode: Es mi opción recomendada para este curso porque es gratuito y muy potente para el flujo de trabajo que vamos a ver.
  2. Gemini CLI / Google IDX: También son excelentes opciones gratuitas.
  3. Claude / OpenAI: Son brutales, pero suelen ser de pago o tener limitaciones geográficas que requieren VPN.
Which Boost features would you like to configure? ───────────┐
 │ AI Guidelines                                                │
 │ Agent Skills                                                 │
 │ Boost MCP Server Configuration                               │
 └──────────────────────────────────────────────────────────────┘
 ┌ Which third-party AI guidelines/skills would you like to install? ┐
 │ laravel/fortify (guidelines, skills)                              │
 │ spatie/laravel-permission (skills)                                │
 └───────────────────────────────────────────────────────────────────┘
 ┌ Which AI agents would you like to configure? ────────────────┐
 │ › ◻ Amp                                                      │
 │   ◻ Claude Code                                              │
 │   ◻ Codex                                                    │
 │   ◻ Cursor                                                   │
 │   ◼ Gemini CLI                                               │
 │   ◻ GitHub Copilot                                           │
 │   ◻ Junie                                                    │
 │   ◼ OpenCode                                                 │
 └──────────────────────────────────────────────────────────────┘

Selecciona el que prefieras (en mi caso, OpenCode). Una vez que le das a Enter, ¡listo! Ya tienes el asistente configurado y listo para empezar a generar código de calidad.

Introducción a OpenCode: Tu Agente en la Terminal

En este punto puedes usar VS Code o su versión moderna, Google IDX (antes Anti Gravity). La diferencia fundamental es mínima, salvo por la barra lateral de IDX que facilita la interacción con los agentes. Pero hoy nos vamos a enfocar en OpenCode.

OpenCode es un agente basado en CLI (Command Line Interface). A diferencia de otras extensiones que a veces se "quedan pegadas" o dejan de responder (como me ha pasado recientemente con Gemini en Windows), OpenCode suele ser más estable y directo.

Comandos y Atajos

Una vez instalado, puedes abrirlo desde tu terminal simplemente escribiendo opencode.

  • Tip de navegación: Casi todo comienza con un slash (/). Si escribes / y usas las flechas o el tabulador, verás las opciones disponibles: agentes, conectores, editores y más.
  • Cuidado con los comandos: En algunos entornos, atajos como Ctrl + P pueden entrar en conflicto con las funciones del editor (como imprimir o buscar archivos). Estate atento a esto para no pisar funciones.

Entendiendo los MCPs y los Modelos

Si escribes /mcps, verás los conectores activos. Gracias a la locura de configuración que hicimos antes, Laravel Boost ya debería aparecer integrado perfectamente. Es similar a lo que pasa con Laravel Sail: el sistema se encarga de la complejidad por nosotros.

¿Qué modelo elegir?

Al usar /models, verás una lista de opciones. La gran ventaja de este servicio es que ofrece varios modelos gratuitos.

  • Mi recomendación: No te compliques. Si tienes dudas, pregúntale a la misma IA. Yo suelo usar Gemini 2.5 Flash; es rápido y, en mi experiencia, resuelve mejor problemas complejos (como las migraciones de Stripe o Cashier) que otros modelos gratuitos como Llama o Big Pickle, que a veces se lían con sintaxis obsoleta.

Modo Planning vs. Modo Building

Esta es una de las partes más importantes para tu flujo de trabajo:

  1. Modo Planning (Planificación): Úsalo para tareas grandes. La IA primero analiza, propone una estrategia y, si estás de acuerdo, ejecuta. Es ideal cuando no tienes claro el contexto o quieres iterar una idea desde cero (ej. "Hazme una web de ropa online").
  2. Modo Building (Construcción): Es el que yo uso el 90% del tiempo. Es para cambios puntuales: "Reemplaza este método en este controlador" o "Adapta esta vista a Tailwind v4". Es directo y va al grano.

Los Skills: El superpoder de Laravel Boost

Si escribes /skills, verás las "habilidades" activas. Lo emocionante es que, como este paquete es tan nuevo  que la lista crece constantemente.

  • Actualmente tenemos skills para Cashier, Fortify y Spatie.
  • Esto permite que la IA deje de recomendarte prácticas antiguas de Tailwind 3 y empiece a usar Tailwind 4 y estándares modernos de Laravel de forma automática.
/cashier-stripe-development
/fortify-development
/laravel-best-practices
/laravel-permission-development
/pest-testing
/tailwindcss-development

Al seleccionar un skill específico antes de pedir una tarea, le das a la IA el contexto exacto que necesita para no fallar, especialmente con los modelos gratuitos que a veces están un poco perdidos.

¿Qué son los Skills y los Guidelines?

Ya tenemos Laravel Boost instalado, pero ¿cómo funciona por dentro? Si exploras la carpeta del paquete (especialmente en OpenCode), verás una "parranda" de archivos. Estos archivos usan el formato Markdown (.md), el mismo que usamos para los README de GitHub. Laravel utiliza este formato porque es un lenguaje que tanto los humanos como las IA entienden perfectamente.

Aunque parezcan simples archivos de texto, son las instrucciones maestras para que la IA no alucine. Se dividen principalmente en dos conceptos:

1. Skills (Habilidades)

Imagina que un Skill es una capacidad específica para ejecutar una acción experta. Por ejemplo: ser un maestro en Tailwind CSS, un experto en Fortify o un especialista en Spatie Permissions.

  • ¿Cómo se activan? No tienes que estar invocándolos a cada rato manualmente. Estos archivos tienen un "activador" (trigger) en su descripción. Cuando tú le pides a la IA: "Crea un diseño con Tailwind", la IA detecta la palabra clave y activa automáticamente el skill de Tailwind.
  • ¿Para qué sirven? Para que la IA deje de usar patrones antiguos. Por ejemplo, el skill de Tailwind le ordena: "No uses Tailwind 3, usa la versión 4; no uses archivos JS de configuración, usa el nuevo sistema de temas". Son reglas de oro para que el código sea moderno y funcional.

2. Guidelines (Lineamientos o Pautas)

A diferencia de los skills, los Guidelines (que a veces verás en carpetas como rules o practices) son normas generales de convivencia en tu código.

  • Fundamentos: Son estándares de cómo debes programar. Por ejemplo: "Usa siempre CamelCase para las funciones", "Evita el problema de consultas N+1" o "No uses códigos de estado numéricos como 200, usa las constantes descriptivas de Laravel".
  • Ejemplos Reales: Lo mejor de los guidelines es que incluyen bloques de código de "Lo que está MAL" vs. "Lo que está BIEN". Esto es vital, porque un ejemplo vale más que mil palabras para una IA.

Tabla Comparativa: Guidelines vs. Skills

Para que no te líes, aquí tienes la diferencia clave:

CaracterísticaGuidelines (Pautas)Skills (Habilidades)
PropósitoEstándares y mejores prácticas.Tareas y herramientas específicas.
ActivaciónSe aplican siempre de fondo.Se activan "bajo demanda" según lo que pidas.
Ejemplo"Escribe código limpio y modular"."Configura una pasarela de pagos con Cashier".
AnalogíaEs tu entrenamiento base como ninja.Es un Jutsu específico (como el Rasengan).

Si tienes dudas sobre un archivo específico, ¡pregúntale a la IA! Copia el contenido del .md y dile: "Explícame este skill". Te lo explicará de forma amable y directa.

La idea es que te acostumbres a usar la IA para entender la IA. Yo no siempre estaré ahí para explicarte cada coma que se actualice mañana, pero tu "invocación" sí. Mantén conversaciones específicas en Gemini o ChatGPT para cada tema y verás cómo el contexto te ayuda a avanzar volando.

AGENTS.md

Para que todos estos agentes y habilidades funcionen, necesitan un punto de entrada, algo similar al main.js en proyectos de Flutter o al index.php en Laravel.

En el ecosistema de Laravel Boost, el archivo AGENTS.md actúa como el "agente superdotado" o de mayor nivel. Es el que controla al resto. Cuando tú haces una pregunta, el sistema no va directo a una habilidad al azar; primero lee este archivo principal que define qué agentes, habilidades y pautas (guidelines) están disponibles.

Configuración a medida

Si por alguna razón quieres desactivar los guidelines o remover un MCP específico, puedes hacerlo en los archivos de configuración (como opencode.js). Estos archivos son la "llave de paso" que conecta tu editor con las entrañas de Laravel. No hace falta que te atormentes con el código interno; solo entiende que son las reglas de juego para que la IA no se pierda.

Sin Laravel Boost vs. Con Laravel Boost

Hicimos una prueba real: preguntar por errores en los logs del proyecto (prompt: “Tengo errores log en el proyecto”). Mira la diferencia de calidad:

  1. IA Genérica (sin contexto): Empezó a hablar del modelo de Usuario, de seguridad y de migraciones sin sentido. No entendió el contexto y "alucinó" una respuesta estándar.
    1. Entiendo que estás teniendo errores en los logs de tu proyecto Laravel. Para poder ayudarte de manera precisa, necesitaría que compartas conmigo las últimas líneas del archivo de log, que normalmente se encuentra en:
      storage/logs/laravel.log
      Sin embargo, revisando el código de tu ProfileController.php y basándome en la estructura de Laravel 13 que mencionas en el README.md, aquí te detallo los puntos más comunes que suelen generar errores en esa funcionalidad específica y cómo podrías solucionarlos:
      1. Relación no definida en el Modelo
      En tu controlador haces uso de $user->profile. Para que esto funcione, debes asegurarte de que en tu modelo App\Models\User exista la relación definida.
      Error común: Property [profile] does not exist on this collection instance o Call to undefined method User::profile().
  2. Laravel Boost (con OpenCode): Al detectar la palabra "logs", se activó automáticamente la habilidad específica de lectura de errores.
    1. laravel-boost_read-log-entries [entries=20]
      Thinking: Tengo los logs de errores. Hay varios errores que necesito resumir:
      1. Error de createToken - UserController.php:25 - El modelo User no tiene el método createToken(). Esto significa que el modelo User no está usando el trait HasApiTokens de Laravel Sanctum.
      2. Error de mapInto - CategoryController.php:27 - Hay un problema con el uso de mapInto() en el CategoryController. Parece que se está usando una API Resource incorrectamente.

El resultado de Boost fue superior porque:

  • Analizó el archivo real: Leyó storage/logs/laravel.log directamente.
  • Resumió con precisión: Identificó errores reales (como el del API Token que mencionamos antes).
  • Ofreció soluciones: No solo dijo qué estaba mal, sino que presentó una tabla con las correcciones y nos ofreció el botón de Build para aplicar los cambios al instante.

Reflexión Ninja: La Piedra vs. El Kunai

Como decían en Naruto: un ninja habilidoso puede ganar una batalla usando una piedra contra un kunai.

Aquí pasa lo mismo. El modelo de Gemini 2.5 Flash (la piedra) con las instrucciones de Laravel Boost fue mucho más efectivo que un modelo supuestamente superior que no tenía el contexto del proyecto. Boost le da "superpoderes" a modelos para que trabajen con la precisión de un experto en Laravel.

Si tienes un error en producción, no pierdas tres horas leyendo logs interminables. Pídele a Boost que los analice, te dé el resumen y genere la corrección. Ahorras tiempo y evitas que te explote la cabeza.

MCP: El Sistema Nervioso de tu IA

Para entender qué es un MCP (Model Context Protocol), imagina un pendrive o un disco duro externo. Si tu computadora no tuviera puertos USB, ¿cómo sacas la información? Tendría que inventarse una forma de leer los archivos, darles energía y entender su estructura cada vez. Sería una pesadilla.

El MCP es ese "puerto USB". Es el conector que le permite a la IA (el cerebro) acceder a datos que están fuera de su entrenamiento, como:

  • Tu base de datos local (MySQL/PostgreSQL).
  • Los logs de errores en tiempo real.
  • ¡Incluso tu navegador!

Practica: El Error del Navegador vs. La IA "Adivina"

Hicimos una prueba de fuego provocando un error de JavaScript (alert mal escrito como alert) en una de las vistas:

resources/views/dashboard/post/index.blade.php

<script>
    aler
</script>

Y comparamos dos enfoques (prompt: tengo un error en el navegador, detéctalo y corrígelo):

  1. IA Genérica (Sin MCP): Se volvió loca. Empezó a decir que había errores en archivos que estaban perfectos y, lo peor de todo, intentó "corregir" código moderno de Laravel usando documentación vieja de 2024 o inicios de 2025. Como no puede ver el navegador, se inventa el problema para intentar cumplir.
  1. Hola. Al revisar el código de tu proyecto, he detectado que el error principal que seguramente estás viendo en el navegador (probablemente un MassAssignmentException o que los datos simplemente no se guardan) se debe al uso de Atributos de PHP para definir $fillable y $hidden en los modelos.
  2. Aunque PHP 8+ soporta atributos, el núcleo de Eloquent en Laravel sigue utilizando propiedades protegidas (protected $fillable) para gestionar la asignación masiva. Al usar atributos, Laravel ignora esas definiciones, bloqueando cualquier intento de guardar datos mediante updateOrCreate o create.
  3. Además, en el modelo User, tienes una duplicidad peligrosa: el método setPasswordAttribute junto con el cast 'password' => 'hashed'. Esto provocará que la contraseña se encriptre dos veces, haciendo imposible iniciar sesión.
  1. Laravel Boost + MCP de Navegador: Aquí es donde ocurre la magia. Al decirle "Usa Boost para leer los errores del navegador", la IA no adivina. Activa el conector, "mira" la consola de tu Chrome o Edge, detecta el alarmal exacto y te da la solución en 20 segundos.
  1. Thinking: The user wants me to check browser logs to find and fix an error.
    ⚙ laravel-boost_browser-logs [entries=20]
    Thinking: The error shows aler is not defined. This is a typo - it should be alert instead of aler. Let me find the blog view file and fix it.
    Error encontrado: aler is not defined - falta la letra t en alert. Busco el archivo:
    ✱ Grep "\baler\(" 
    Thinking: Let me search for aler in all files to find the typo.
    ✱ Grep "aler" (7 matches)
    Thinking: Found the typo in /Users/andrescruz/Herd/larafirststep/resources/views/components/blog/post/index.blade.php at line 37. It says aler instead of alert. Let me read that file to fix it.
    → Read resources/views/components/blog/post/index.blade.php [offset=30, limit=15]
    Thinking: I see - line 37 has aler which is incomplete. Let me check what it was supposed to be. It seems like the code was cut off. The user probably meant to write some alert functionality. Let me fix this by removing the incomplete code since it doesn't seem to be working properly anyway.
    ← Edit resources/views/components/blog/post/index.blade.php
       <div class="mt-12">
           {{ $posts->links() }}
       </div>
       <script>
           aler
       </script>
    </div>
    Thinking: Fixed! The incomplete aler script tag has been removed. The error was caused by a typo where alert was truncated to aler.
  2. Corregido. El error era un typo: aler en lugar de alert en la línea 37 del archivo index.blade.php. El código incompleto fue eliminado.

La Analogía de la Pizza: ¿Por qué usar MCP?

Imagínate que montas una pizzería porque la IA nos quitó el trabajo de programadores (es broma, ¡esperemos!).

  • Sin MCP: Cada vez que un cliente pide una pizza, tienes que ir a comprar la harina, ordeñar la vaca para el queso y sembrar los tomates. Tardas 3 horas por cliente.
  • Con MCP: Ya tienes los proveedores conectados. El cliente pide, tú activas el conector y ya tienes los ingredientes listos para armar la pizza rápido y con calidad.

En el código es igual: si la IA tiene que "construir" la conexión a la base de datos o leer miles de líneas de log manualmente, gasta el 90% de su energía (tokens) en eso y solo el 10% en darte la solución. Con MCP, el 90% de su potencia se enfoca en resolver tu problema (por decir un ejemplo que no tiene que estar aplicado en el mundo real).

Lo más importante que quiero que te lleves es que Laravel Boost no cambia tu forma de programar, la hace eficiente. No importa si usas el modelo de "marca blanca" más sencillo o el último Gemini; si le das las herramientas correctas (Skills y MCP), te va a dar respuestas de nivel senior.

Como vimos con Sasuke e Itachi: no es el arma, es cómo usas lo que tienes. Una IA conectada a tu flujo de trabajo real siempre le ganará a una IA superpotente que está "ciega" a lo que pasa en tu terminal o navegador.

Flujo de Trabajo: Git como tu Red de Seguridad

Antes de lanzar comandos a la IA, un consejo de conejo: Sincroniza siempre con Git.

Especialmente cuando trabajas con cambios puntuales o experimentales, haz un git commit. Si la IA "se vuelve loca" o el cambio no te gusta, un simple git checkout o un git reset --hard te devuelve a la vida en segundos. No dependas de tu memoria ni de deshacer cambios manualmente; deja que Git sea tu seguro de vida mientras la IA mete mano en el código.

Invocando Habilidades: Uso Implícito vs. Explícito

Ya conoces la ruta: hemos visto agentes, directrices (guidelines) y los conectores (MCP). Pero hay una diferencia clave en cómo pedir las cosas:

  1. Uso Implícito: Tú le pides algo general y la IA, basándose en el contexto y en lo que tiene instalado, decide qué usar.
  2. Uso Explícito: Es cuando tú le dices: "Usa esta habilidad específica". En OpenCode, puedes escribir /skills y seleccionar Laravel Best Practices.

¿Por qué hacer esto? Porque si le pides una revisión general, la IA usará su conocimiento base (que puede estar desactualizado). Pero si le obligas a usar el skill de mejores prácticas de Laravel, la estás forzando a leer las reglas de oro que definimos en los archivos Markdown del proyecto.

Caso de Estudio: Revisión Exhaustiva del Proyecto

Hicimos la prueba de fuego, seleccionamos la skill de Laravel Best Practices: “Haz una revisión de mi proyecto siguiendo las mejores prácticas”:

# Laravel Best Practices
Best practices for Laravel, prioritized by impact. Each rule teaches what to do and why. For exact API syntax, verify with `search-docs`.

La IA se puso en modo "ninja sensor" y empezó a escanear todo el codebase. Aunque me hizo quedar un poco mal (¡maldito seas, IA!), detectó cosas muy interesantes:

  • Hardcoding: Encontró rutas y valores escritos "a fuego" que deberían ser dinámicos.
  • Lógica de Controladores: Detectó que en el UserController estábamos usando un auth()->user() que no habíamos terminado de implementar correctamente.
  • Orden de Componentes: Sugirió invertir el orden de algunos títulos y condiciones para que el código sea más legible (aunque a veces nos cueste verlo así).

Hacer esta revisión de forma manual en un proyecto grande nos tomaría horas. La IA lo hizo en segundos. Vale, encontró errores de "alta prioridad" que casi me hacen borrar el vídeo, pero es precisamente para eso que instalamos Laravel Boost: para que el código generado sea de alta calidad y no solo "código que funciona".

Expandiendo Horizontes: Skills de Terceros y Personalizados

Para cerrar esta parte de los Skills con Laravel Boost, hay un punto vital: no estás limitado a los que vienen por defecto. Aunque ya tenemos implementados varios en archivos Markdown (y ya sabes que puedes editarlos o actualizarlos a tu gusto), el sistema es totalmente abierto.

Sabemos que la gente de Laravel es un poco como Apple: les gusta tener su propio ecosistema único y bien pulido. Por eso tiene sentido que Laravel Boost sea una herramienta independiente que hace sus propias "bifurcaciones". Pero fuera de ahí, existe un mundo de skills de terceros.

  • Explora y descarga: Hay repositorios y páginas (como skills.md y otras similares) donde la comunidad comparte sus propias configuraciones. No importa si están enfocados en Laravel o en programación general; puedes integrarlos a tu flujo.
  • Instalación: Generalmente, basta con usar un comando para agregarlos. Al ser archivos Markdown, la IA los procesa igual, ya sean provistos por Boost o por fuentes externas.

Crea tu propia "Especialidad"

Si no encuentras lo que buscas, puedes crear tu propio Skill. No hace falta reinventar la rueda, pero sí puedes generalizar tus flujos de trabajo.

  • ¿Cómo hacerlo? Puedes crear el archivo .md manualmente siguiendo la estructura que ya vimos, o mejor aún, ¡pídele a la IA que lo haga! Dile: "Genérame un skill para manejar integraciones específicas de Google en este proyecto".
  • Configuración automática: Al pedirle a la IA que instale o configure un skill, ella misma se encargará de referenciarlo en archivos como AGENTS.md para que el agente sepa que ahora tiene esa nueva "habilidad" disponible.

Conclusión

Al principio del libro hacíamos prompts generales para perder el miedo. Pero ahora que el proyecto ha arrancado y ya tiene una estructura, un estilo y unas dependencias claras, necesitas ser específico.

No le pidas "ayuda"; pídele que use el skill de Pest para las pruebas o el de Tailwind para los componentes. Cuanto más específica sea la herramienta que invoques, más profesional será el resultado.

Aunque, dependiendo de lo que quieras hacer NO significa que no puedes emplear un prompt genético, todo depende de lo que quieras hacer.

Los Skills no son solo una moda; son la forma en que vamos a interactuar con la IA de ahora en adelante. Ya sea usando los específicos del ecosistema Laravel, los de terceros o los tuyos propios, el objetivo es el mismo: precisión y calidad.

Con esto terminamos este apartado teórico-práctico de Laravel Boost. Prepárate, porque en la siguiente sección vamos a entrar al mundo de las Testing (Pruebas).

No vamos a invertir 7 horas de pruebas manualmente. Vamos a usar todo lo aprendido para que, en unos 40 minutos, la IA nos ayude a dejar el proyecto blindado. ¡Ahí sí que vamos a gozar!

Aprende a integrar IA en Laravel con OpenCode, Laravel Boost y MCP. Skills, Guidelines y flujo de trabajo real para programar mejor sin depender de la IA.

Acepto recibir anuncios de interes sobre este Blog.

Andrés Cruz

EN In english