Este skill toma el contexto de la conversación actual y el entendimiento del código base y produce una especificación. NO entrevistes al usuario; simplemente sintetiza lo que ya sabes.
Se te debe haber proporcionado el gestor de incidencias y el vocabulario de etiquetas de clasificación. Si no es así, dile al usuario que ejecute /setup-matt-pocock-skills.
Proceso
-
Explora el repositorio para entender 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 integración (seams) en los que vas a probar la funcionalidad. Se deben preferir los puntos existentes a los nuevos. Utiliza el punto más alto posible. Si se necesitan nuevos puntos, propónelos en el nivel más alto que puedas. Cuantos menos puntos haya en el código base, mejor; el número ideal es uno.
Consulta con el usuario si estos puntos cumplen con sus expectativas.
- Escribe la especificación utilizando la plantilla a continuación y luego publícala en el gestor de incidencias del proyecto. Aplica la etiqueta de clasificación
ready-for-agent; no es necesario más triaje.
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 LARGA y numerada de historias de usuario. Cada historia de usuario debe tener el formato:
- Como , quiero , para
Esta lista de historias de usuario debe ser extremadamente extensa 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 o fragmentos de código. Pueden quedar desactualizados muy rápidamente.
Excepción: si un prototipo produjo un fragmento que codifica una decisión con mayor precisión que el texto (máquina de estados, reducer, esquema, forma de tipo), intégralo dentro de la decisión relevante y menciona brevemente que provino de un prototipo. Recorta solo las partes ricas en decisiones, no una demostración funcional, solo las partes importantes.
Decisiones de Pruebas
Una lista de decisiones de pruebas que se tomaron. Incluye:
- Una descripción de qué 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.