Desenvolupament assistit per IA

Com utilitzar agents d'IA per desenvolupar amb Laravel: Laravel Boost, prompts efectius, fitxers de context i eines compatibles.

Per què Laravel funciona bé amb IA#

Laravel és un dels frameworks que millor s'adapta al desenvolupament assistit per IA. La seva estructura opinionada (convencions de noms, patrons com MVC, Eloquent ORM, migracions, Form Requests) fa que els agents d'IA generin codi idiomàtic i coherent amb l'ecosistema.

A més, Laravel compta amb una documentació extensa i consistent que forma part dels conjunts d'entrenament dels models d'IA. Això significa que els agents ja "coneixen" el framework i les seves convencions abans de començar a treballar amb el teu projecte.

Un factor clau és que els chatbots i agents d'IA utilitzen Markdown com a format natiu per comunicar-se. Les respostes, els prompts i els fitxers de context s'escriuen en Markdown, cosa que fa que dominar aquest format sigui essencial per treballar de manera efectiva amb IA.

Els principals chatbots d'IA utilitzen Markdown per formatar les seves respostes: ChatGPT, Claude, Gemini, Llama, DeepSeek, Qwen, Perplexity i altres. Pots aprendre més a la guia de chatbots d'IA i Markdown.

Laravel Boost#

Laravel Boost és el servidor MCP (Model Context Protocol) oficial de Laravel. Permet que els agents d'IA interactuïn directament amb el teu projecte Laravel, proporcionant-los context real sobre la base de dades, les rutes, els logs i molt més.

Instal·lació#

composer require laravel/boost --dev
php artisan boost:install

La comanda boost:install genera els fitxers de configuració necessaris per connectar l'agent amb el projecte.

Eines disponibles#

Boost exposa diverses eines que l'agent pot utilitzar automàticament:

  • Introspecció de base de dades: l'agent pot consultar l'esquema de taules, columnes i relacions.
  • Rutes: accés a totes les rutes registrades amb els seus controladors i middleware.
  • Logs: lectura dels logs de l'aplicació per diagnosticar errors.
  • Tinker: execució de codi PHP dins del context de l'aplicació.
  • Cerca de documentació: cerca directa a la documentació oficial de Laravel.

Fitxers generats#

Després de la instal·lació, Boost crea diversos fitxers a l'arrel del projecte:

  • .mcp.json: configuració del servidor MCP amb les eines habilitades.
  • CLAUDE.md: fitxer de context per a l'agent Claude (veure secció següent).
  • boost.json: configuració addicional de Boost amb directrius i preferències.

Directrius composables#

Boost permet activar directrius específiques segons les tecnologies del projecte:

php artisan boost:install --guidelines=livewire,tailwind,pest

Això genera instruccions adaptades perquè l'agent generi codi consistent amb el stack del projecte, per exemple utilitzant components Livewire en lloc de controladors tradicionals, o escrivint tests amb Pest en lloc de PHPUnit.

Agent Skills#

Boost carrega skills sota demanda que permeten a l'agent realitzar tasques especialitzades com crear models amb migracions, generar tests o configurar relacions d'Eloquent seguint les convencions del projecte.

Fitxers de context: CLAUDE.md#

El fitxer CLAUDE.md és un document Markdown que dóna context a l'agent d'IA sobre el teu projecte. Es col·loca a l'arrel del repositori i l'agent el llegeix automàticament abans de començar a treballar.

Què ha de contenir#

Un bon fitxer de context inclou:

  • Arquitectura del projecte: patrons utilitzats (DDD, repositoris, serveis, accions...).
  • Convencions de codi: estil de noms, estructura de carpetes, estàndards.
  • Dependències clau: paquets principals i les seves versions.
  • Comandes habituals: com executar tests, migracions, seeders.
  • Restriccions: coses que l'agent NO ha de fer (modificar fitxers de configuració de producció, canviar l'esquema d'autenticació...).

Exemple#

# Projecte: Botiga Online
 
## Stack
- Laravel 12 + PHP 8.4
- Livewire 3 + Tailwind CSS
- MySQL 8 + Redis
- Pest per a tests
 
## Arquitectura
- Accions per a lògica de negoci (app/Actions/)
- Form Requests per a validació
- Policies per a autorització
- Events + Listeners per a accions asíncrones
 
## Convencions
- Models en singular anglès (Order, Product)
- Controladors amb mètodes resource
- Tests amb Pest, un fitxer per feature
 
## Comandes
- `php artisan test` - executar tests
- `php artisan migrate:fresh --seed` - reiniciar BD
- `npm run build` - compilar assets

El fitxer CLAUDE.md s'escriu en Markdown. Si vols dominar la sintaxi per escriure fitxers de context clars i ben estructurats, consulta el Tutorial Markdown.

Agents i editors compatibles#

Existeixen diversos agents i editors amb capacitats d'IA que poden treballar amb projectes Laravel:

  • Claude Code: agent de terminal d'Anthropic. Llegeix CLAUDE.md automàticament i és compatible amb Laravel Boost via MCP. Més sobre prompting amb Claude.
  • Cursor: editor basat en VS Code amb IA integrada. Suporta fitxers de context (.cursorrules) i servidors MCP.
  • GitHub Copilot: assistent d'IA integrat a VS Code, JetBrains i altres editors. Ofereix completat de codi i chat amb context del projecte.
  • Codex: agent d'OpenAI per a desenvolupament de software, capaç d'executar tasques de manera autònoma. Més sobre prompting amb ChatGPT.
  • Gemini CLI: agent de terminal de Google que permet treballar amb projectes directament des de la línia de comandes. Més sobre prompting amb Gemini.
  • Junie: agent d'IA de JetBrains integrat a IntelliJ i PhpStorm, dissenyat per a tasques de desenvolupament.

Escriure prompts efectius#

La qualitat del codi generat per un agent depèn directament de la qualitat dels prompts que li proporciones. Comunicar-se de manera clara i estructurada amb l'agent fa una diferència significativa en els resultats.

Estructura dels prompts#

Utilitza Markdown per estructurar els teus prompts: headings per separar seccions, llistes per enumerar requisits i blocs de codi per mostrar exemples:

## Tasca
Crear un endpoint API per llistar productes amb filtratge.
 
## Requisits
- GET /api/products
- Filtres opcionals: category, price_min, price_max, search
- Paginació amb 20 elements per pàgina
- Incloure la relació category
 
## Exemple de resposta esperada
{
  "data": [
    {"id": 1, "name": "Producte", "price": 29.99, "category": {"id": 1, "name": "Electrònica"}}
  ],
  "meta": {"current_page": 1, "last_page": 5}
}

System prompts#

Els system prompts defineixen el comportament base de l'agent: quin rol ha d'adoptar, quines convencions ha de seguir i quines restriccions ha de respectar. Són el context permanent que guia totes les interaccions.

Enginyeria de prompts#

L'enginyeria de prompts (prompt engineering) és la disciplina d'escriure instruccions que maximitzin la qualitat de les respostes de l'agent. Algunes tècniques clau:

  • Ser específic: en lloc de "crea un model", escriu "crea un model Product amb els camps name, price (decimal 10,2), description (text nullable) i la relació belongsTo amb Category".
  • Donar context: explica per què necessites el codi, no només què necessites.
  • Un pas a la vegada: divideix tasques complexes en subtasques més petites i manejables.
  • Mostrar exemples: inclou exemples del codi o format que esperes obtenir.

Per aprofundir en com escriure millors prompts, consulta les guies de Markdown en prompts, system prompts i prompt engineering.

Consells pràctics#

Treballar amb agents d'IA és efectiu quan s'adopten bones pràctiques:

  • Revisa sempre el codi generat: els agents poden introduir errors subtils, vulnerabilitats de seguretat o patrons no idiomàtics. No facis merge sense revisar.
  • Treballa en scopes petits: en lloc de demanar "crea tot el CRUD d'usuaris", divideix-ho en passos: primer el model i la migració, després el controlador, després els tests.
  • Escriu tests: demana a l'agent que generi tests per al codi que crea. Això serveix com a doble validació i documentació.
  • Itera amb context: si el primer resultat no és perfecte, proporciona feedback específic sobre què cal canviar en lloc de repetir el prompt sencer.
  • Mantén el fitxer de context actualitzat: a mesura que el projecte evoluciona, actualitza el CLAUDE.md o fitxer de context equivalent perquè l'agent sempre treballi amb informació actual.
  • Fes servir control de versions: treballa sempre amb Git i fes commits freqüents. Així pots revertir fàcilment qualsevol canvi que no sigui satisfactori.