Listado de tickets con filtro y formulario de alta en Laravel: el punto de partida del trabajo diario
Hola, bienvenido. Con esta lección empieza el bloque opcional de spec, plan y tareas como skills del plugin. En este bloque vamos a llevar al plugin team la forma en que el equipo resuelve su trabajo con Claude Code: una skill task para los fixes y las features acotadas, y las skills spec, plan y cierre para las features que hay que decidir antes de programar. En esta primera lección vamos a crear el código sobre el que van a trabajar esas skills: un listado de tickets en helpdesk, paginado y con filtro por estado, y su formulario de alta.
Este bloque es opcional. Si tu equipo no necesita una forma común de trabajar en el día a día, puedes saltártelo, porque el último bloque no depende de él. Y si te has saltado algún bloque anterior, puedes seguir aquí: cuando una lección cambie un archivo del plugin que no tengas al día, copia el archivo completo, y del CHANGELOG.md, solo la entrada nueva.
La skill task necesita código sobre el que trabajar, y helpdesk todavía no tiene ningún dominio: solo el modelo User, la página de bienvenida y la configuración del equipo. En un proyecto así no hay ningún fallo que corregir ni ningún formulario al que añadir un campo. Así que el proyecto va a empezar a ser lo que dice su nombre, una aplicación de soporte con tickets. En la siguiente lección, la skill task hará un fix y una feature acotada sobre este listado y su formulario, y más adelante la spec de la asignación de tickets partirá de él. Este código lo vas a escribir a mano, y no con Claude, para que tengas exactamente el mismo que la lección: con un listado distinto, lo que hace task en la siguiente lección no te saldría igual.
Vamos a crear cada archivo con su comando make: y después a escribir su contenido, en el orden en que dependen unos de otros. Cómo funciona cada pieza de Laravel ya lo conoces, así que solo nos vamos a detener en lo que es propio del proyecto: las convenciones que carga CLAUDE.md. Los comandos los ejecuta Marta, todos en la pestaña helpdesk.
Qué vamos a construir
El listado enseña los tickets de 15 en 15, del más reciente al más antiguo, con un desplegable para filtrar por estado. El formulario pide un título y una descripción, y cada ticket se crea en estado abierto. El código sigue los 2 flujos de las convenciones del equipo. La escritura pasa por un FormRequest que valida y construye un DTO, y por una Action que lo guarda. La lectura pasa por un ViewModel que entrega a la vista todo lo que necesita. Al terminar la lección, el proyecto tendrá estos archivos nuevos, además del cambio en routes/web.php:
Es el código de referencia del bloque. Si se lo pides a Claude en tu proyecto, con las mismas convenciones cargadas, te saldrá algo parecido, pero no igual. Las lecciones siguientes parten de este código, así que conviene que uses el de la lección.
- 02El estado y el modelo
- 03El alta: DTO, FormRequest y Action
- 04El listado: el ViewModel
- 05El controlador y las rutas
- 06Las vistas
- 07Los tests
- 08composer qa y el commit