cursos:sdd:19-kiro
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previa | |||
| cursos:sdd:19-kiro [2026/11/06 00:30] – Lorenzo | cursos:sdd:19-kiro [2026/11/06 08:37] (actual) – Renumerar el curso: Estructura de un skill pasa al 10 y los temas siguientes suben un número: movida a cursos:sdd:20-kiro claude | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| - | ====== 19. Kiro ====== | ||
| - | |||
| - | [[https:// | ||
| - | |||
| - | Ese mismo flujo se puede usar fuera de Kiro con **cc-sdd**. No es de AWS: es un proyecto de terceros, creado por un desarrollador independiente ([[https:// | ||
| - | |||
| - | ^ ^ Kiro ^ cc-sdd | ||
| - | ^ Qué es | Un agente completo de AWS: IDE (también CLI), orquestación de agentes, //skills//, //hooks// | Solo la metodología: | ||
| - | ^ Modelos | ||
| - | ^ Dónde se usa | Kiro IDE o Kiro CLI | En tu agente: OpenCode, Claude Code, Codex, Cursor... | ||
| - | |||
| - | **En este tema, «Kiro» significa cc-sdd.** | ||
| - | |||
| - | * Proyecto: [[https:// | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== 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 ==== | ||
| - | |||
| - | <code bash> | ||
| - | cd mi-proyecto | ||
| - | npx cc-sdd@latest --claude-skills --lang es | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | mi-proyecto/ | ||
| - | ├── .claude/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── .kiro/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | └── CLAUDE.md | ||
| - | </ | ||
| - | |||
| - | ==== 1.2. En OpenCode ==== | ||
| - | |||
| - | <code bash> | ||
| - | cd mi-proyecto | ||
| - | npx cc-sdd@latest --opencode-skills --lang es | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | mi-proyecto/ | ||
| - | ├── .opencode/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | ├── .kiro/ | ||
| - | │ | ||
| - | │ | ||
| - | │ | ||
| - | └── AGENTS.md | ||
| - | </ | ||
| - | |||
| - | Cambia la carpeta de las //skills// y el fichero de configuración del agente; el contenido de '' | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== 2. Comandos iniciales en el proyecto ===== | ||
| - | |||
| - | 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. | ||
| - | |||
| - | <uml> | ||
| - | start | ||
| - | :npx cc-sdd; | ||
| - | : | ||
| - | repeat | ||
| - | : | ||
| - | : | ||
| - | : | ||
| - | : | ||
| - | :kiro-impl; | ||
| - | repeat while (otra funcionalidad? | ||
| - | stop | ||
| - | </ | ||
| - | |||
| - | Los dos primeros pasos se dan una sola vez. El resto se repite por cada funcionalidad nueva, y de ahí la flecha de vuelta de '' | ||
| - | |||
| - | ^ Paso ^ Comando ^ Resultado ^ | ||
| - | | Instalar | '' | ||
| - | | Crear la memoria del proyecto | ''/ | ||
| - | |||
| - | ==== 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 ^ | ||
| - | | Inicializar | ''/ | ||
| - | | Requisitos (el QUÉ) | ''/ | ||
| - | | Diseño (el CÓMO) | ''/ | ||
| - | | Tareas | ''/ | ||
| - | | Implementación | ''/ | ||
| - | |||
| - | Los documentos viven juntos, uno por funcionalidad: | ||
| - | |||
| - | < | ||
| - | .kiro/ | ||
| - | ├── spec.json | ||
| - | ├── requirements.md | ||
| - | ├── design.md | ||
| - | └── tasks.md | ||
| - | </ | ||
| - | |||
| - | ==== 3.2. Entre fase y fase está el humano ==== | ||
| - | |||
| - | '' | ||
| - | |||
| - | < | ||
| - | Requirements not yet approved. Approval required before design generation. | ||
| - | </ | ||
| - | |||
| - | <note important> | ||
| - | |||
| - | ^ Comando ^ ¿Necesita '' | ||
| - | | ''/ | ||
| - | | ''/ | ||
| - | | ''/ | ||
| - | | ''/ | ||
| - | | ''/ | ||
| - | |||
| - | 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. | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== 4. Referencia de comandos ===== | ||
| - | |||
| - | ==== 4.1. / | ||
| - | |||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Crea o actualiza la memoria del proyecto. No lleva argumentos. | ||
| - | |||
| - | **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. | ||
| - | |||
| - | * **Captura patrones, no inventarios.** «Así se nombran los servicios aquí», no una lista de los 200 ficheros del proyecto. | ||
| - | * **Relánzalo de vez en cuando** para que no se quede desfasado respecto al código ya escrito. | ||
| - | |||
| - | ==== 4.2. / | ||
| - | |||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Crea el esqueleto de la especificación de **una** funcionalidad. | ||
| - | |||
| - | **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. | ||
| - | * 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, | ||
| - | |||
| - | ==== 4.3. / | ||
| - | |||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Convierte la descripción en un documento de requisitos **verificable**. El argumento es el nombre de la carpeta, no la descripción. | ||
| - | |||
| - | **Produce** '' | ||
| - | |||
| - | === Formato EARS === | ||
| - | |||
| - | EARS (//Easy Approach to Requirements Syntax//) es una sintaxis acotada para escribir criterios que no admitan dos lecturas: | ||
| - | |||
| - | < | ||
| - | WHEN < | ||
| - | IF < | ||
| - | THE < | ||
| - | </ | ||
| - | |||
| - | Un fragmento del documento resultante: | ||
| - | |||
| - | < | ||
| - | ### 1.1 Autenticación de usuarios | ||
| - | **FR-1.1.1**: | ||
| - | - WHEN el usuario pulsa " | ||
| - | - 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. | ||
| - | |||
| - | === 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, // | ||
| - | | 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, | ||
| - | |||
| - | **Prueba del algodón**: si el criterio se puede escribir sin nombrar ninguna tecnología, | ||
| - | |||
| - | Es un comando **iterativo**: | ||
| - | |||
| - | ==== 4.4. / | ||
| - | |||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Traduce el QUÉ al CÓMO. El '' | ||
| - | |||
| - | **Produce** '' | ||
| - | |||
| - | * **La frontera, primero de todo**: qué posee esta especificación, | ||
| - | * **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. | ||
| - | |||
| - | 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í. | ||
| - | |||
| - | ==== 4.5. / | ||
| - | |||
| - | < | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | Convierte el diseño en una lista de tareas ejecutables. El '' | ||
| - | |||
| - | **Produce** '' | ||
| - | |||
| - | * **De 1 a 3 horas cada una.** Ni «implementar la autenticación» ni «crear el fichero». | ||
| - | * **Numeradas**: | ||
| - | * **Con entregable verificable**: | ||
| - | * **Anotadas** con la parte del sistema a la que pertenecen y con sus dependencias. | ||
| - | * **Sin prerrequisitos implícitos**: | ||
| - | |||
| - | Antes de escribir '' | ||
| - | |||
| - | Es la última oportunidad de detectar un problema de diseño antes de que se convierta en código. | ||
| - | |||
| - | ==== 4.6. /kiro-impl ==== | ||
| - | |||
| - | < | ||
| - | /kiro-impl user-auth-oauth | ||
| - | </ | ||
| - | |||
| - | Ejecuta las tareas aprobadas. Es donde por fin se escribe código. No necesita '' | ||
| - | |||
| - | **Produce** código y // | ||
| - | |||
| - | - Programa con TDD: primero la prueba que falla, luego el código que la pasa. | ||
| - | - Revisa el resultado de forma independiente: | ||
| - | - Marca la tarea como hecha en '' | ||
| - | |||
| - | Que sea una tarea por iteración es lo que hace que ''/ | ||
| - | |||
| - | <note important>''/ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== 5. Enlaces ===== | ||
| - | |||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | |||
cursos/sdd/19-kiro.1793921435.txt.gz · Última modificación: por Lorenzo
