Generador de specs
Convierte una idea vaga en una especificación acordada. La spec es el
contrato: si algo no está aquí, no se implementa.
Proceso
- Lee el contexto.
docs/constitution.md si existe, y las specs previas
de specs/ para respetar convenciones y no contradecir lo ya acordado.
- Entrevista al usuario. Preguntas de UNA en UNA, máximo 6, esperando
respuesta antes de la siguiente. Céntrate en casos límite, comportamiento
ante errores y qué queda fuera. No propongas soluciones técnicas: si el
usuario pregunta "¿cómo lo harías?", redirige al QUÉ.
Prioriza preguntas cuya respuesta cambie lo que hay que construir; descarta
las que tengan una respuesta obvia por defecto.
- Elige el número. Mira
specs/ y usa el siguiente libre con tres
dígitos: specs/NNN-<nombre-en-kebab-case>/spec.md.
- Redacta usando
spec-template.md de esta skill, sin saltarte
secciones. Criterios de aceptación siempre en notación EARS, numerados
como RF-1, RF-2, … Cada requisito debe ser verificable: si no se te ocurre
cómo comprobarlo, está mal escrito.
- Marca lo que no sepas como
[NECESITA ACLARACIÓN: pregunta concreta].
Nunca rellenes un hueco inventando: un hueco visible es información,
una suposición silenciosa es deuda.
- Pide aprobación explícita al terminar. No pases al plan ni escribas
código hasta tenerla.
Reglas
- La spec describe QUÉ y POR QUÉ. Prohibido incluir stack, arquitectura,
nombres de archivos, esquemas de datos, algoritmos o firmas de funciones:
eso va en el plan.
- Incluye siempre la sección "Fuera de alcance". Es la que evita que la
funcionalidad crezca sola.
- Un requisito, una frase. Si necesitas un "y" para unir dos comportamientos,
son dos requisitos.
- Sin adjetivos no medibles: "rápido", "intuitivo", "robusto" no son
requisitos. Escribe el umbral o no lo escribas.
- Idioma: el de la constitución del proyecto. Si no la hay, el del usuario.
Notación EARS
Cinco patrones. Elige el que corresponda, no mezcles:
| Patrón |
Forma |
Cuándo |
| Ubicuo |
EL SISTEMA <hará> |
siempre cierto |
| Dirigido por evento |
CUANDO <disparador>, EL SISTEMA <hará> |
responde a algo |
| Estado |
MIENTRAS <estado>, EL SISTEMA <hará> |
durante una condición |
| Opcional |
DONDE <característica>, EL SISTEMA <hará> |
solo si está presente |
| No deseado |
SI <condición>, ENTONCES EL SISTEMA <hará> |
errores y casos límite |
Ejemplo bien escrito:
RF-4: SI el nombre ya existe (comparación ignorando mayúsculas y espacios
exteriores), ENTONCES EL SISTEMA no creará un duplicado e informará del
conflicto (salida 1).
Mal escrito, para contrastar:
RF-4: El sistema debe manejar bien los duplicados y ser rápido.
Sin patrón EARS, sin criterio verificable, dos ideas en una frase y un
adjetivo no medible.
Al revisar una spec existente
Si el usuario pide revisar en vez de crear, no reescribas: detecta y lista,
numerado, en cuatro bloques — (1) ambigüedades, (2) contradicciones entre
requisitos, (3) casos límite no cubiertos, (4) conflictos con la constitución.
No propongas soluciones hasta que te lo pidan.
1---2name: spec-generator3description: Usa esta skill cuando el usuario pida crear, redactar o revisar una especificación (spec) de una funcionalidad. Guía una entrevista de requisitos y produce un spec.md siguiendo la plantilla del equipo.4---56# Generador de specs78Convierte una idea vaga en una especificación acordada. La spec es el9contrato: si algo no está aquí, no se implementa.1011## Proceso12131. **Lee el contexto.** `docs/constitution.md` si existe, y las specs previas14 de `specs/` para respetar convenciones y no contradecir lo ya acordado.152. **Entrevista al usuario.** Preguntas de **UNA en UNA**, máximo 6, esperando16 respuesta antes de la siguiente. Céntrate en casos límite, comportamiento17 ante errores y qué queda fuera. No propongas soluciones técnicas: si el18 usuario pregunta "¿cómo lo harías?", redirige al QUÉ.19 Prioriza preguntas cuya respuesta cambie lo que hay que construir; descarta20 las que tengan una respuesta obvia por defecto.213. **Elige el número.** Mira `specs/` y usa el siguiente libre con tres22 dígitos: `specs/NNN-<nombre-en-kebab-case>/spec.md`.234. **Redacta** usando `spec-template.md` de esta skill, sin saltarte24 secciones. Criterios de aceptación **siempre en notación EARS**, numerados25 como RF-1, RF-2, … Cada requisito debe ser verificable: si no se te ocurre26 cómo comprobarlo, está mal escrito.275. **Marca lo que no sepas** como `[NECESITA ACLARACIÓN: pregunta concreta]`.28 Nunca rellenes un hueco inventando: un hueco visible es información,29 una suposición silenciosa es deuda.306. **Pide aprobación explícita** al terminar. No pases al plan ni escribas31 código hasta tenerla.3233## Reglas3435- La spec describe **QUÉ** y **POR QUÉ**. Prohibido incluir stack, arquitectura,36 nombres de archivos, esquemas de datos, algoritmos o firmas de funciones:37 eso va en el plan.38- Incluye **siempre** la sección "Fuera de alcance". Es la que evita que la39 funcionalidad crezca sola.40- Un requisito, una frase. Si necesitas un "y" para unir dos comportamientos,41 son dos requisitos.42- Sin adjetivos no medibles: "rápido", "intuitivo", "robusto" no son43 requisitos. Escribe el umbral o no lo escribas.44- Idioma: el de la constitución del proyecto. Si no la hay, el del usuario.4546## Notación EARS4748Cinco patrones. Elige el que corresponda, no mezcles:4950| Patrón | Forma | Cuándo |51|---|---|---|52| Ubicuo | EL SISTEMA \<hará\> | siempre cierto |53| Dirigido por evento | CUANDO \<disparador\>, EL SISTEMA \<hará\> | responde a algo |54| Estado | MIENTRAS \<estado\>, EL SISTEMA \<hará\> | durante una condición |55| Opcional | DONDE \<característica\>, EL SISTEMA \<hará\> | solo si está presente |56| No deseado | SI \<condición\>, ENTONCES EL SISTEMA \<hará\> | errores y casos límite |5758Ejemplo bien escrito:5960> RF-4: SI el nombre ya existe (comparación ignorando mayúsculas y espacios61> exteriores), ENTONCES EL SISTEMA no creará un duplicado e informará del62> conflicto (salida 1).6364Mal escrito, para contrastar:6566> ~~RF-4: El sistema debe manejar bien los duplicados y ser rápido.~~67> Sin patrón EARS, sin criterio verificable, dos ideas en una frase y un68> adjetivo no medible.6970## Al revisar una spec existente7172Si el usuario pide revisar en vez de crear, no reescribas: **detecta y lista**,73numerado, en cuatro bloques — (1) ambigüedades, (2) contradicciones entre74requisitos, (3) casos límite no cubiertos, (4) conflictos con la constitución.75No propongas soluciones hasta que te lo pidan.