Esta habilidad toma el contexto de la conversación actual y el conocimiento del código base y produce una especificación. NO entrevistes al usuario; simplemente sintetiza lo que ya sabes.
El sistema de seguimiento de incidencias y el vocabulario de etiquetas de clasificación deberían haberte sido proporcionados. Si no es así, dile al usuario que ejecute /setup-matt-pocock-skills.
Proceso
-
Explora el repositorio para comprender el estado actual del código base, si aún no lo has hecho. Utiliza el vocabulario del glosario del dominio del proyecto en toda la especificación y respeta cualquier ADR en el área que estés tocando.
-
Esboza los puntos de prueba (seams) en los que vas a probar la funcionalidad. Se deben preferir los puntos existentes a los nuevos. Utiliza el punto de prueba más alto posible. Si se necesitan nuevos puntos, propónlos en el nivel más alto que puedas. Cuantos menos puntos de prueba haya en el código base, mejor; el número ideal es uno.
Verifica con el usuario que estos puntos de prueba coinciden con sus expectativas.
- Escribe la especificación utilizando la plantilla siguiente y luego publícala en el sistema de seguimiento de incidencias del proyecto. Aplica la etiqueta de clasificación
ready-for-agent; no es necesario realizar una clasificación adicional.
Declaración del Problema
El problema que enfrenta el usuario, desde la perspectiva del usuario.
Solución
La solución al problema, desde la perspectiva del usuario.
Historias de Usuario
Una lista NUMERADA y extensa de historias de usuario. Cada historia de usuario debe tener el formato:
- Como , quiero para
Esta lista de historias de usuario debe ser extremadamente amplia y cubrir todos los aspectos de la funcionalidad.
Decisiones de Implementación
Una lista de decisiones de implementación que se tomaron. Esto puede incluir:
- Los módulos que se construirán/modificarán
- Las interfaces de esos módulos que se modificarán
- Aclaraciones técnicas del desarrollador
- Decisiones arquitectónicas
- Cambios en el esquema
- Contratos de API
- Interacciones específicas
NO incluyas rutas de archivo específicas ni fragmentos de código. Podrían quedar obsoletos muy rápidamente.
Excepción: si un prototipo produjo un fragmento que codifica una decisión con mayor precisión que la prosa (máquina de estados, reducer, esquema, forma de tipo), intégralo dentro de la decisión correspondiente y menciona brevemente que proviene de un prototipo. Recorta solo las partes ricas en decisiones, no un demo funcional, solo los bits importantes.
Decisiones de Pruebas
Una lista de decisiones de pruebas que se tomaron. Incluye:
- Una descripción de lo que constituye una buena prueba (solo probar el comportamiento externo, no los detalles de implementación)
- Qué módulos se probarán
- Referencias previas para las pruebas (es decir, tipos similares de pruebas en el código base)
Fuera del Alcance
Una descripción de las cosas que están fuera del alcance de esta especificación.
Notas Adicionales
Cualquier nota adicional sobre la funcionalidad.