Saltar al contenido
Curso Claude Code en equipo: una sola forma de trabajar
27/29 Bloque opcional · Spec, plan y tareas como skills Implementar las tareas de la spec con la skill task y cerrar la feature con la skill cierre
Tu lectura Quedan 21 min
Lección 27 de 29 · Bloque opcional · Spec, plan y tareas como skills

Implementar las tareas de la spec con la skill task y cerrar la feature con la skill cierre

21 min de lectura Claude Code 2.1

Hola, bienvenido. Con esta lección termina el bloque de spec, plan y tareas. Vamos a enseñar a la skill task a trabajar con la ruta de una tarea, a implementar con ella la primera tarea de la asignación de tickets y a crear la última skill del bloque, cierre, que comprueba la feature contra su spec. Todo eso será la versión 1.9.0 del plugin, la última del curso.

En la lección anterior dejamos la spec de la asignación de tickets con su plan y 3 tareas. Falta implementarla, y ahí vuelven las diferencias del día a día. Si cada persona pide su tarea a Claude con sus palabras, cada tarea sale implementada de una forma: una con el test primero, otra sin pasar la QA, otra con un commit que no dice qué tarea cierra. Y al terminar la última tarea, nadie comprueba que la feature cumple la spec, criterio a criterio. Se da por hecha porque los tests pasan, aunque un criterio se haya quedado sin test.

Para que cada tarea se implemente siempre igual no hace falta una skill nueva. Una tarea de la spec es trabajo como el de la lección 25, con el plan ya hecho y revisado, así que la misma task puede hacerla con el mismo ciclo. Para comprobar al final que la feature cumple la spec, vamos a crear cierre.

La ruta de una tarea en task

Con una descripción libre, task decide si hace falta spec y propone un plan. Con la ruta de una tarea, las 2 cosas ya están resueltas: la spec existe y la tarea trae sus piezas, sus criterios de aceptación y su commit propuesto. Así que task lee la tarea, la spec y el plan, y pasa directamente a la implementación, la QA y el commit.

Queda una pregunta: cómo sabe task si la tarea ya está hecha. La tarea no tiene una casilla que marcar, y no la necesita, porque el estado de la feature ya está en git. Cada tarea tiene un commit propuesto que no se repite en la feature. Si ese commit está en git log, la tarea está hecha, y si no, está pendiente. Una casilla hay que acordarse de marcarla, y puede decir que una tarea está hecha aunque su código no haya llegado a la rama. Un commit, en cambio, solo está en el historial si el código está.

Vamos a crear la rama de esta versión, en la pestaña claude-plugins:

Terminal
git switch -c feat/task-from-spec

Vamos a cambiar claude-plugins/plugins/team/skills/task/SKILL.md:

claude-plugins/plugins/team/skills/task/SKILL.md Modificado +12 −3
1---
2name: task
−description: Resuelve una tarea del día a día, un fix o una feature acotada, con el ciclo del equipo. Antes de empezar decide si la tarea necesita spec.
−argument-hint: "[descripción del fix o de la feature]"
+description: Resuelve una tarea con el ciclo del equipo, un fix, una feature acotada o una tarea de una spec. Antes de empezar decide si la tarea necesita spec.
+argument-hint: "[descripción del fix o de la feature, o ruta de una tarea de una spec]"
+allowed-tools: Bash(git log *)
6disable-model-invocation: true
7---
8
18- Cambios sin commit: !`git status --short`
19- Últimos commits: !`git log --oneline -5`
20
+## Si la tarea es de una spec
+
+Si la tarea es la ruta de un archivo de `.claude/specs/*/tasks/`, el plan ya está hecho y revisado:
+
+1. Lee la tarea y, en la carpeta de su spec, `spec.md` y `plan.md`.
+2. Busca en el historial su commit propuesto con `git log --oneline --fixed-strings --grep "<commit propuesto>"`, como un comando aparte, sin `cd` ni otros comandos. Si sale, la tarea está hecha: dilo y para.
+3. Las piezas, los criterios de aceptación y el commit propuesto de la tarea son el plan. Sáltate el apartado siguiente y el paso 1 del ciclo, y empieza por la implementación. Si algo de la tarea no encaja con el código, para y explícalo antes de tocar nada.
+
29## Antes de empezar: ¿hace falta spec?
30
31Una tarea necesita spec cuando hay que decidir algo antes de programar. Estas son las señales:
471. **Plan.** Lee el código que toca la tarea y propón el plan en la conversación: los archivos que creas o cambias, con su comando `make:` si lo tienen, el test que reproduce el fallo o cubre lo nuevo y el mensaje de commit. Espera a que la persona lo confirme y no edites nada hasta entonces.
482. **Implementación.** Sigue el plan confirmado y las convenciones que carga `CLAUDE.md`. En un fix, escribe primero el test y comprueba que falla.
493. **QA.** Usa la skill `/team:qa` si está disponible y, si no, ejecuta `./vendor/bin/sail composer qa`. Si falla, corrige y vuelve a pasarla.
−4. **Commit.** Con la QA en verde, haz el commit con `/team:conventional-commits`.
+4. **Commit.** Con la QA en verde, haz el commit con `/team:conventional-commits`. En una tarea de una spec, con su commit propuesto.
51
52Si durante la implementación algo no encaja con el plan, para y explícalo antes de cambiarlo.
53

Son 4 cambios. La descripción y la pista del argumento dicen que la skill acepta también la ruta de una tarea. allowed-tools permite git log, con el que la skill busca en todo el historial el commit propuesto de la tarea, por antiguo que sea. Esa aprobación solo dura el turno en que invocas la skill, y basta, porque la búsqueda es lo primero que hace, antes de que confirmes nada. Y solo cubre un git log que vaya solo: si Claude lo combina con un cd o con otros comandos en la misma línea, te pedirá permiso. Por eso la skill le pide lanzar la búsqueda como un comando aparte. El apartado nuevo, "Si la tarea es de una spec", es el que cambia el recorrido: lee la tarea con su spec y su plan, comprueba en los commits si ya está hecha y se salta las señales de spec y el paso del plan. Y el commit, en una tarea de una spec, es el que propone la tarea.

Para un fix o una feature acotada no cambia nada: las señales de spec y el ciclo son los de la lección 25.

Lo que queda de esta lección
  1. 02La skill cierre
  2. 03Probar las skills con la primera tarea
  3. 04git log, el estado de la feature
  4. 05Cerrar la feature contra la spec
  5. 06Publicar la 1.9.0
  6. 07Lo que tiene el equipo con estas skills
Sigue leyendo con tu suscripción El curso completo, con su proyecto final, el certificado y el foro, está incluido en la suscripción. Ver los planes