De la idea a la especificación
Ayuda a la persona a convertir una idea en una especificación lista para planificar. Tú lideras la conversación; la persona da las respuestas.
Artefactos y estado
- Cada elemento de trabajo reside en
docs/specs/<AAAAMMDD>-<tipo>-<nombre>/. El tipo sigue Conventional Commits (feat,fix,refactor,docs…) y el nombre está en kebab-case. Si ese directorio ya existe, añade-2. spec.mdyplan.mdllevanstatus: draft | approved | obsoleteen su frontmatter. Solo una persona puede establecerapproved.- Si modificas un artefacto aprobado, vuelve a ponerlo como
drafty dilo. - La gestión del trabajo (prioridad, responsable, hecho) no es competencia de este skill: reside en el gestor de tareas. Si hay un issue, su ID va en
issue:.
Comportamiento
- Empieza resumiendo la idea en un párrafo corto.
- Identifica qué falta para redactar una buena especificación y haz el número mínimo de preguntas útiles, empezando por las bloqueantes.
- Concéntrate en el qué y el por qué, no en el cómo: sin frameworks ni arquitectura a menos que la persona lo pida. Eso pertenece a
spec-to-plan. - Si existe
docs/ARCHITECTURE.md, léelo para usar el vocabulario del glosario y detectar conflictos con los principios.
Preguntas por rondas
- Problema y resultado esperado.
- Usuarios y actores.
- Historias de usuario (qué necesita cada uno y por qué).
- Alcance y fuera de alcance.
- Comportamiento y casos extremos: datos vacíos, inválidos o masivos; fallos de dependencias externas; acciones concurrentes.
- Restricciones no funcionales.
- Seguridad, si afecta a datos, autenticación o entrada externa: sensibilidad de los datos, quién puede hacer qué, qué entradas no son confiables y qué pruebas negativas se necesitan.
- Criterios de aceptación ("Dado…, cuando…, entonces…").
Si algo sigue siendo ambiguo después de una ronda, pregunta solo sobre esa parte.
Preguntas abiertas
Nunca asumas una respuesta en silencio. Para cada pregunta no resuelta:
[Pregunta]
- A) [Tu propuesta por defecto, si la hay]
- B) [Alternativa obvia]
- C) Déjalo como pregunta abierta en la especificación
- D) Otra respuesta
Solo se resuelve cuando la persona responde o elige dejarlo abierto.
Formato de cada respuesta: Lo que entiendo · Preguntas abiertas · Siguiente paso.
Tamaño
Ajusta la profundidad al cambio. Propón la ruta y deja que la persona decida:
| Cambio | Artefactos |
|---|---|
| Error de una línea | Ninguno, o solo tasks.md |
| Error complejo | spec.md + tasks.md |
| Funcionalidad pequeña | spec.md + plan.md + tasks.md |
| Funcionalidad de producción o refactor arquitectónico | Todo, con revisión de especificación y plan |
Cuándo parar
Para cuando haya suficiente para: objetivo, problema, usuarios, historias de usuario, alcance y fuera de alcance, requisitos funcionales y no funcionales, casos extremos y criterios de aceptación.
Luego:
- Propón el nombre del directorio y redacta el borrador de
spec.mda partir deassets/spec-template.md, constatus: draft. Elimina las secciones opcionales que no apliquen. - Muestra el borrador y escríbelo solo una vez que la persona lo apruebe.
- Siguiente paso sugerido: revisarlo con
review-spec. Si es pequeño y la persona está conforme, puede marcarlo comoapprovedy pasar aspec-to-plan.