Herramientas de usuario

Herramientas del sitio


cursos:sdd:11-kiro

¡Esta es una revisión vieja del documento!


Kiro: comandos SDD

Kiro es el IDE de AWS que popularizó un flujo de spec-driven development por fases: primero requisitos, luego diseño, luego tareas y solo al final código, con una aprobación humana en cada salto.

Ese mismo flujo se puede usar desde la terminal, sin el IDE, con cc-sdd: un paquete npm que instala las skills de Kiro dentro del agente que ya estés usando. Es un proyecto independiente de terceros, no un producto de AWS, pero reproduce las mismas fases y los mismos documentos.

En este tema, «Kiro» significa cc-sdd. Y de todos sus comandos vemos solo los seis que hacen falta para trabajar: el resto son atajos y validaciones opcionales.


1. Instalación

Hace falta Node.js y ejecutar el comando en la raíz del proyecto, porque instala ficheros dentro de él.

1.1. En Claude Code

cd mi-proyecto
npx cc-sdd@latest --claude-skills --lang es

Deja en el proyecto .claude/skills/ (las skills), .kiro/ (plantillas y documentos) y CLAUDE.md.

1.2. En OpenCode

cd mi-proyecto
npx cc-sdd@latest --opencode-skills --lang es

Deja .opencode/skills/, .kiro/ y AGENTS.md. Los comandos y las plantillas son exactamente los mismos que en Claude Code.

1.3. Estructura que se crea

mi-proyecto/
├── .claude/skills/          # (o .opencode/skills/) los comandos kiro-*
├── .kiro/
│   ├── settings/            # plantillas y reglas, personalizables
│   ├── steering/            # memoria del proyecto  <- la crea /kiro-steering
│   └── specs/               # una carpeta por funcionalidad <- la crea /kiro-spec-init
└── CLAUDE.md                # o AGENTS.md

Sobre un proyecto que ya tenga contenido conviene lanzar antes npx cc-sdd@latest –dry-run para ver qué ficheros tocaría.


2. Qué se hace una vez y qué se repite

Es la distinción que más confunde al principio: cc-sdd tiene dos ritmos.

2.1. Una sola vez por proyecto

Paso Comando Resultado
Instalar npx cc-sdd@latest –claude-skills –lang es .claude/skills/, .kiro/
Crear la memoria del proyecto /kiro-steering .kiro/steering/ con tres documentos

2.2. Una vez por cada funcionalidad

Fase Comando Documento que produce
Inicializar /kiro-spec-init <descripción> spec.json
Requisitos (el QUÉ) /kiro-spec-requirements <nombre> requirements.md
Diseño (el CÓMO) /kiro-spec-design <nombre> design.md
Tareas /kiro-spec-tasks <nombre> tasks.md
Implementación /kiro-impl <nombre> código y commits

Los documentos viven juntos, uno por funcionalidad:

.kiro/specs/user-auth-oauth/
├── spec.json          # metadatos y estado de aprobación de cada fase
├── requirements.md    # QUÉ
├── design.md          # CÓMO
└── tasks.md           # tareas

2.3. Entre fase y fase está el humano

spec.json guarda si cada fase está generada y si está aprobada. Un comando se niega a arrancar si la fase anterior no lo está:

Requirements not yet approved. Approval required before design generation.

Aprobar consiste en leer el documento y lanzar el comando siguiente. La opción -y aprueba la fase anterior automáticamente: es cómoda para prototipos, pero saltarse esa lectura es renunciar a lo único que distingue este método de pedirle a la IA «hazme el login».


3. /kiro-steering

Crea la memoria del proyecto: lo que todos los demás comandos leen antes de hacer nada. Es lo primero que hay que ejecutar.

/kiro-steering

No lleva argumentos. Analiza el repositorio y genera tres documentos en .kiro/steering/:

Fichero Qué recoge
product.md Para qué sirve el producto, qué valor aporta, capacidades principales
tech.md Stack tecnológico, frameworks, decisiones técnicas y restricciones
structure.md Organización de directorios, patrones de arquitectura, convenciones de nombres

La primera vez los escribe desde cero leyendo README, dependencias y árbol de directorios. Las siguientes veces compara con el código y reporta lo que se ha desviado, respetando lo que hayas editado a mano.

Tres reglas:

  • Captura patrones, no inventarios. «Así se nombran los servicios aquí», no una lista de los 200 ficheros del proyecto.
  • Revísalo antes de seguir. Pasa a ser la fuente de verdad del agente: un error aquí se propaga a todas las especificaciones.
  • Relánzalo de vez en cuando para que no se quede desfasado respecto al código ya escrito.

4. /kiro-spec-init

Crea el esqueleto de la especificación de una funcionalidad.

/kiro-spec-init <descripción de la funcionalidad>
/kiro-spec-init Autenticación de usuarios con OAuth 2.0 y tokens JWT para una aplicación Next.js

Qué hace:

  1. Genera un nombre único en kebab-case a partir de la descripción (aquí, user-auth-oauth). Si es ambigua, propone opciones y te deja elegir.
  2. Comprueba que la descripción dice quién tiene el problema, cuál es la situación actual y qué debería cambiar. Si falta algo, pregunta en lugar de suponerlo.
  3. Crea .kiro/specs/<nombre>/ con spec.json y un requirements.md vacío.

No escribe requisitos, ni diseño, ni tareas: solo la estructura. Por eso es instantáneo.

Cuanto más concreta sea la descripción —stack, restricciones, requisitos clave—, mejor arranca todo lo demás.


5. /kiro-spec-requirements

Convierte la descripción en un documento de requisitos verificable.

/kiro-spec-requirements user-auth-oauth

El argumento es el nombre de la carpeta, no la descripción.

5.1. Formato EARS

EARS (Easy Approach to Requirements Syntax) es una sintaxis acotada para escribir criterios de aceptación que no admitan dos lecturas:

WHEN  <disparador>   THE <sistema> SHALL <acción>
IF    <condición>    THEN THE <sistema> SHALL <acción>
WHERE <característica> THE <sistema> SHALL <acción>
THE <sistema> SHALL <acción>

Un fragmento del documento resultante:

### 1.1 Autenticación de usuarios
**FR-1.1.1**: Login con OAuth
- WHEN el usuario pulsa "Entrar con Google" THE sistema SHALL redirigir a la pantalla de consentimiento
- WHEN se recibe el callback de OAuth THE sistema SHALL validar el código de autorización
- IF la validación es correcta THEN THE sistema SHALL crear una sesión con token JWT

Cada línea es directamente un caso de prueba: hay un disparador, un sujeto y un resultado observable.

5.2. Requisitos son el QUÉ, no el CÓMO

Es la regla que más cuesta respetar:

Sí va en requisitos No: eso es diseño
Alcance: qué entra y qué queda fuera Elección de stack (base de datos, framework, lenguaje)
Comportamiento visible: «cuando pasa X, qué ve el usuario» Patrones de arquitectura
Reglas de negocio y casos límite Diseño de la API, modelos de datos, componentes internos
Tiempos de respuesta, disponibilidad, nivel de seguridad Cómo se consiguen: caché, escalado

Prueba del algodón: si el criterio se puede escribir sin nombrar ninguna tecnología, es un requisito. Si necesita nombrarla, es diseño.

Es un comando iterativo: puedes lanzarlo varias veces para refinar, y respeta lo que edites a mano. Si los requisitos salen genéricos, casi siempre falta steering.


6. /kiro-spec-design

Traduce el QUÉ al CÓMO.

/kiro-spec-design user-auth-oauth

Antes de escribir nada investiga: en funcionalidades nuevas busca patrones de arquitectura y verifica versiones de dependencias; en extensiones recorre el código existente buscando los patrones que ya se usan.

design.md contiene:

  • La frontera, primero de todo: qué posee esta especificación, qué no posee y de qué dependencias puede tirar.
  • Componentes e interfaces con tipado explícito.
  • Diagramas cuando la arquitectura lo pide.
  • Plan de ficheros: rutas concretas, cuáles se crean y cuáles se modifican, una responsabilidad por fichero. De aquí salen las fronteras de las tareas del paso siguiente, así que un plan vago produce una implementación vaga.
  • Estrategia de pruebas derivada de los criterios de aceptación concretos. Nada de «probar que el login funciona»: qué se verifica y por qué importa.

Si al revisar el diseño aparece un hueco real en los requisitos, se para y te manda de vuelta en lugar de taparlo aquí.


7. /kiro-spec-tasks

Convierte el diseño en una lista de tareas ejecutables.

/kiro-spec-tasks user-auth-oauth

Cómo son las tareas:

  • De 1 a 3 horas cada una. Ni «implementar la autenticación» ni «crear el fichero».
  • Numeradas: 1., 2. son cabeceras de grupo; 1.1, 1.2 son lo que realmente se ejecuta.
  • Con entregable verificable: un fichero, un endpoint, un componente. Cada tarea dice cómo se ve que está hecha, en términos observables.
  • Anotadas con la parte del sistema a la que pertenecen (_Boundary:_), sus dependencias (_Depends:_) y si se pueden ejecutar en paralelo ((P)).
  • Sin prerrequisitos implícitos: si una tarea necesita un runtime o un fichero de configuración, montar eso es una tarea previa explícita.

Antes de escribir tasks.md comprueba que cada requisito está en alguna tarea y que cada componente del diseño está representado. Al terminar muestra un resumen y pregunta si apruebas.

Es la última oportunidad de detectar un problema de diseño antes de que se convierta en código.


8. /kiro-impl

Ejecuta las tareas aprobadas. Es donde por fin se escribe código.

/kiro-impl user-auth-oauth              # todas las tareas pendientes
/kiro-impl user-auth-oauth 1.1,1.2      # solo esas tareas

Antes de empezar descubre los comandos de validación del repositorio —tests, build, smoke test— mirando package.json, Makefile, los ficheros de CI y el README. Prefiere los que ya usa el proyecto antes que inventarse comandos.

Después trabaja una tarea por iteración:

  1. Programa con TDD: primero la prueba que falla, luego el código que la pasa.
  2. Revisa el resultado de forma independiente: ejecuta git diff, lanza las pruebas y comprueba que no se ha salido de la frontera de la tarea.
  3. Marca la tarea como hecha en tasks.md y hace commit solo de los ficheros de esa tarea —nunca git add -A— con el mensaje feat(<funcionalidad>): <tarea>.

Que sea una tarea por iteración es lo que hace que /kiro-impl sea seguro de relanzar si se interrumpe: al reanudar relee tasks.md y sigue por donde iba.

/kiro-impl escribe código y hace commits sin preguntar tarea a tarea. Lánzalo en una rama propia y con el árbol de trabajo limpio.

9. Resumen

Una funcionalidad de principio a fin, sobre un proyecto ya inicializado con /kiro-steering:

/kiro-spec-init Álbumes de fotos con subida, etiquetado y compartición
/kiro-spec-requirements photo-albums
/kiro-spec-design photo-albums
/kiro-spec-tasks photo-albums
/kiro-impl photo-albums

Leyendo y aprobando el documento de cada fase antes de lanzar la siguiente.

Guiones frente a dos puntos. En las versiones 1.x y 2.x los comandos se llamaban /kiro:steering y /kiro:spec-init, con dos puntos. Desde la 3.0 son /kiro-steering y /kiro-spec-init, con guion. Los antiguos siguen funcionando pero están obsoletos.

10. Enlaces

cursos/sdd/11-kiro.1789417954.txt.gz · Última modificación: por claude