cursos:sdd:11-kiro
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| cursos:sdd:11-kiro [2026/09/14 22:59] – Quitar opciones poco frecuentes: seleccion de tareas en impl, --dry-run, marcador de paralelismo claude | cursos:sdd:11-kiro [2026/09/14 23:22] (actual) – Diagrama del flujo con PlantUML en lugar de mermaid claude | ||
|---|---|---|---|
| Línea 5: | Línea 5: | ||
| 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. | 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.** | + | **En este tema, «Kiro» significa cc-sdd.** |
| * Proyecto: [[https:// | * Proyecto: [[https:// | ||
| Línea 22: | Línea 22: | ||
| </ | </ | ||
| - | Deja en el proyecto | + | < |
| + | mi-proyecto/ | ||
| + | ├── | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | ├── | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | └── | ||
| + | </ | ||
| ==== 1.2. En OpenCode ==== | ==== 1.2. En OpenCode ==== | ||
| Línea 30: | Línea 44: | ||
| npx cc-sdd@latest --opencode-skills --lang es | npx cc-sdd@latest --opencode-skills --lang es | ||
| </ | </ | ||
| - | |||
| - | Deja '' | ||
| - | |||
| - | ==== 1.3. Estructura que se crea ==== | ||
| < | < | ||
| mi-proyecto/ | mi-proyecto/ | ||
| - | ├── .claude/ | + | ├── .opencode/ |
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| ├── .kiro/ | ├── .kiro/ | ||
| - | │ | + | │ |
| - | │ | + | │ |
| - | │ | + | │ |
| - | └── | + | └── AGENTS.md |
| </ | </ | ||
| - | ---- | + | Cambia la carpeta de las //skills// y el fichero de configuración del agente; el contenido de '' |
| - | ===== 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. Comandos iniciales en el proyecto ===== |
| - | graph TD | + | |
| - | I["npx cc-sdd@latest" | + | |
| - | S --> N["/ | + | |
| - | N --> R["/ | + | |
| - | R --> D["/ | + | |
| - | D --> T["/ | + | |
| - | T --> M["/ | + | |
| - | M --> N | + | |
| - | style I fill:# | + | Estos son los pasos que se dan **una sola vez**, al empezar con el proyecto. A partir de ahí, lo único que se repite es el ciclo de la sección siguiente. |
| - | style S fill:# | + | |
| - | </ | + | |
| - | En gris, lo que se hace una sola vez. El resto se repite por cada funcionalidad nueva, | + | < |
| + | start | ||
| + | :npx cc-sdd; | ||
| + | : | ||
| + | repeat | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | repeat while (otra funcionalidad? | ||
| + | stop | ||
| + | </ | ||
| - | ==== 2.1. Una sola vez por proyecto ==== | + | Los dos primeros pasos se dan una sola vez. El resto se repite |
| ^ Paso ^ Comando ^ Resultado ^ | ^ Paso ^ Comando ^ Resultado ^ | ||
| Línea 73: | Línea 89: | ||
| | Crear la memoria del proyecto | ''/ | | Crear la memoria del proyecto | ''/ | ||
| - | ==== 2.2. Una vez por cada funcionalidad ==== | + | ==== 2.1. La memoria del proyecto ==== |
| + | |||
| + | ''/ | ||
| + | |||
| + | ^ Fichero ^ Qué recoge ^ | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | Sin // | ||
| + | |||
| + | Es lo primero que hay que ejecutar, y conviene **revisar los tres documentos antes de seguir**: pasan a ser la fuente de verdad del agente, así que un error aquí se propaga a todas las especificaciones. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 3. Creación de una nueva especificación ===== | ||
| + | |||
| + | Esto es lo que se repite **una vez por cada funcionalidad** que quieras construir. | ||
| + | |||
| + | ==== 3.1. Las cinco fases ==== | ||
| ^ Fase ^ Comando ^ Documento que produce ^ | ^ Fase ^ Comando ^ Documento que produce ^ | ||
| | Inicializar | ''/ | | Inicializar | ''/ | ||
| | Requisitos (el QUÉ) | ''/ | | Requisitos (el QUÉ) | ''/ | ||
| - | | Diseño (el CÓMO) | ''/ | + | | Diseño (el CÓMO) | ''/ |
| - | | Tareas | ''/ | + | | Tareas | ''/ |
| | Implementación | ''/ | | Implementación | ''/ | ||
| Línea 92: | Línea 127: | ||
| </ | </ | ||
| - | ==== 2.3. Entre fase y fase está el humano ==== | + | ==== 3.2. Entre fase y fase está el humano ==== |
| '' | '' | ||
| Línea 110: | Línea 145: | ||
| Sin '' | Sin '' | ||
| + | |||
| + | ==== 3.3. Una funcionalidad de principio a fin ==== | ||
| + | |||
| + | < | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | /kiro-impl photo-albums | ||
| + | </ | ||
| + | |||
| + | Leyendo y aprobando el documento de cada fase antes de lanzar la siguiente. | ||
| ---- | ---- | ||
| - | ===== 3. / | + | ===== 4. Referencia de comandos |
| - | Crea la **memoria del proyecto**: lo que todos los demás comandos leen antes de hacer nada. Es lo primero que hay que ejecutar. | + | ==== 4.1. / |
| < | < | ||
| Línea 121: | Línea 168: | ||
| </ | </ | ||
| - | No lleva argumentos. | + | Crea o actualiza la memoria del proyecto. |
| - | ^ Fichero ^ Qué recoge ^ | + | **Produce** tres documentos en '' |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| 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. | 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. | * **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. | * **Relánzalo de vez en cuando** para que no se quede desfasado respecto al código ya escrito. | ||
| - | ---- | + | ==== 4.2. / |
| - | + | ||
| - | ===== 4. / | + | |
| - | + | ||
| - | Crea el esqueleto de la especificación de **una** funcionalidad. | + | |
| < | < | ||
| Línea 150: | Línea 187: | ||
| </ | </ | ||
| - | Qué hace: | + | Crea el esqueleto de la especificación de **una** funcionalidad. |
| - | - Genera un **nombre único en '' | + | **Produce** '' |
| - | - 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. | + | |
| - | - Crea '' | + | |
| - | No escribe requisitos, ni diseño, ni tareas: solo la estructura. Por eso es instantáneo. | + | * 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. |
| + | * 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, | ||
| - | Cuanto más concreta sea la descripción —stack, restricciones, | + | ==== 4.3. / |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 5. / | + | |
| - | + | ||
| - | Convierte la descripción en un documento de requisitos **verificable**. | + | |
| < | < | ||
| Línea 170: | Línea 201: | ||
| </ | </ | ||
| - | El argumento es el nombre de la carpeta, no la descripción. | + | Convierte la descripción en un documento de requisitos **verificable**. |
| + | |||
| + | **Produce** '' | ||
| - | ==== 5.1. Formato EARS ==== | + | === Formato EARS === |
| - | EARS (//Easy Approach to Requirements Syntax//) es una sintaxis acotada para escribir criterios | + | EARS (//Easy Approach to Requirements Syntax//) es una sintaxis acotada para escribir criterios que no admitan dos lecturas: |
| < | < | ||
| WHEN < | WHEN < | ||
| IF < | IF < | ||
| - | WHERE < | ||
| THE < | THE < | ||
| </ | </ | ||
| Línea 195: | Línea 227: | ||
| Cada línea es directamente un caso de prueba: hay un disparador, un sujeto y un resultado observable. | 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 ==== | + | === Requisitos son el QUÉ, no el CÓMO === |
| Es la regla que más cuesta respetar: | Es la regla que más cuesta respetar: | ||
| Línea 209: | Línea 241: | ||
| Es un comando **iterativo**: | Es un comando **iterativo**: | ||
| - | ---- | + | ==== 4.4. / |
| - | + | ||
| - | ===== 6. / | + | |
| - | + | ||
| - | Traduce el QUÉ al CÓMO. | + | |
| < | < | ||
| Línea 219: | Línea 247: | ||
| </ | </ | ||
| - | El '' | + | Traduce el QUÉ al CÓMO. |
| - | Antes de escribir nada investiga: en funcionalidades nuevas busca patrones de arquitectura y verifica versiones de dependencias; | + | **Produce** |
| - | + | ||
| - | '' | + | |
| * **La frontera, primero de todo**: qué posee esta especificación, | * **La frontera, primero de todo**: qué posee esta especificación, | ||
| Línea 230: | Línea 256: | ||
| * **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. | * **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. | * **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. | ||
| + | |||
| + | Antes de escribir nada investiga: en funcionalidades nuevas busca patrones de arquitectura y verifica versiones de dependencias; | ||
| 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í. | 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í. | ||
| - | ---- | + | ==== 4.5. / |
| - | + | ||
| - | ===== 7. / | + | |
| - | + | ||
| - | Convierte el diseño en una lista de tareas ejecutables. | + | |
| < | < | ||
| Línea 243: | Línea 267: | ||
| </ | </ | ||
| - | El '' | + | Convierte el diseño en una lista de tareas ejecutables. |
| - | Cómo son las tareas: | + | **Produce** '' |
| * **De 1 a 3 horas cada una.** Ni «implementar la autenticación» ni «crear el fichero». | * **De 1 a 3 horas cada una.** Ni «implementar la autenticación» ni «crear el fichero». | ||
| Línea 257: | Línea 281: | ||
| Es la última oportunidad de detectar un problema de diseño antes de que se convierta en código. | Es la última oportunidad de detectar un problema de diseño antes de que se convierta en código. | ||
| - | ---- | + | ==== 4.6. /kiro-impl ==== |
| - | + | ||
| - | ===== 8. /kiro-impl ===== | + | |
| - | + | ||
| - | Ejecuta las tareas aprobadas. Es donde por fin se escribe código. | + | |
| < | < | ||
| Línea 267: | Línea 287: | ||
| </ | </ | ||
| - | Antes de empezar descubre los **comandos de validación del repositorio** —tests, //build//, //smoke test//— mirando | + | Ejecuta las tareas aprobadas. Es donde por fin se escribe código. No necesita |
| - | Después trabaja | + | **Produce** código y // |
| - Programa con TDD: primero la prueba que falla, luego el código que la pasa. | - Programa con TDD: primero la prueba que falla, luego el código que la pasa. | ||
| Línea 281: | Línea 301: | ||
| ---- | ---- | ||
| - | ===== 9. Resumen ===== | + | ===== 5. Enlaces ===== |
| - | + | ||
| - | Una funcionalidad de principio a fin, sobre un proyecto ya inicializado con ''/ | + | |
| - | + | ||
| - | < | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | /kiro-impl photo-albums | + | |
| - | </ | + | |
| - | + | ||
| - | Leyendo y aprobando el documento de cada fase antes de lanzar la siguiente. | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 10. Enlaces ===== | + | |
| * [[https:// | * [[https:// | ||
cursos/sdd/11-kiro.1789419550.txt.gz · Última modificación: por claude
