cursos:sdd:11-kiro
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Próxima revisión | Revisión previa | ||
| cursos:sdd:11-kiro [2026/09/14 22:24] – Nueva pagina: comandos SDD de Kiro (cc-sdd) - instalacion en Claude Code y OpenCode, steering, spec-init, spec-requirements, spec-design, spec-tasks e impl claude | cursos:sdd:11-kiro [2026/09/14 23:22] (actual) – Diagrama del flujo con PlantUML en lugar de mermaid claude | ||
|---|---|---|---|
| Línea 3: | Línea 3: | ||
| [[https:// | [[https:// | ||
| - | Ese mismo flujo se puede usar desde la terminal, sin el IDE, con **cc-sdd**: un paquete npm que instala | + | Ese mismo flujo se puede usar desde la terminal, sin el IDE, con **cc-sdd**: un paquete npm que instala |
| - | **En este tema, «Kiro» significa cc-sdd.** | + | **En este tema, «Kiro» significa cc-sdd.** |
| - | * Proyecto: [[https:// | + | * Proyecto: [[https:// |
| - | * Paquete: [[https:// | + | |
| ---- | ---- | ||
| Línea 14: | Línea 13: | ||
| ===== 1. Instalación ===== | ===== 1. Instalación ===== | ||
| - | Requisitos: | + | 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 ==== | ==== 1.1. En Claude Code ==== | ||
| - | |||
| - | Es el destino por defecto, así que basta con: | ||
| <code bash> | <code bash> | ||
| cd mi-proyecto | cd mi-proyecto | ||
| - | npx cc-sdd@latest | + | npx cc-sdd@latest |
| </ | </ | ||
| - | Para elegir idioma y ser explícito con el agente: | + | < |
| - | + | mi-proyecto/ | |
| - | < | + | ├── .claude/ |
| - | npx cc-sdd@latest | + | │ |
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | ├── .kiro/ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | └── CLAUDE.md | ||
| </ | </ | ||
| - | |||
| - | Esto deja en el proyecto: | ||
| - | |||
| - | * '' | ||
| - | * '' | ||
| - | * '' | ||
| ==== 1.2. En OpenCode ==== | ==== 1.2. En OpenCode ==== | ||
| Línea 44: | Línea 45: | ||
| </ | </ | ||
| - | Esto deja en el proyecto: | + | < |
| + | mi-proyecto/ | ||
| + | ├── .opencode/ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | ├── .kiro/ | ||
| + | │ | ||
| + | │ | ||
| + | │ | ||
| + | └── AGENTS.md | ||
| + | </ | ||
| - | * '' | + | Cambia la carpeta de las // |
| - | * '' | + | |
| - | * '' | + | |
| - | < | + | ---- |
| - | ==== 1.3. Otros agentes y opciones | + | ===== 2. Comandos iniciales en el proyecto ===== |
| - | ^ Agente ^ Opción ^ Estado ^ | + | 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. |
| - | | Claude Code | '' | + | |
| - | | Codex | '' | + | |
| - | | Cursor | '' | + | |
| - | | GitHub Copilot | '' | + | |
| - | | Windsurf | '' | + | |
| - | | OpenCode | '' | + | |
| - | | Gemini CLI | '' | + | |
| - | | Antigravity | '' | + | |
| - | Opciones útiles: | + | < |
| + | start | ||
| + | :npx cc-sdd; | ||
| + | : | ||
| + | repeat | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | : | ||
| + | repeat while (otra funcionalidad? | ||
| + | stop | ||
| + | </ | ||
| - | <code bash> | + | 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 '' |
| - | npx cc-sdd@latest --lang es # idioma de los documentos (en, es, ja, zh-TW, pt, de, fr...) | + | |
| - | npx cc-sdd@latest | + | |
| - | npx cc-sdd@latest --kiro-dir docs # usar otro directorio en lugar de .kiro | + | |
| - | </ | + | |
| - | Conviene lanzar primero | + | ^ Paso ^ Comando ^ Resultado ^ |
| + | | Instalar | '' | ||
| + | | Crear la memoria del proyecto | ''/ | ||
| - | ==== 1.4. Estructura resultante | + | ==== 2.1. La memoria del proyecto |
| - | < | + | '' |
| - | mi-proyecto/ | + | |
| - | ├── .claude/ | + | |
| - | ├── .kiro/ | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | │ | + | |
| - | └── CLAUDE.md | + | |
| - | </code> | + | |
| - | ---- | + | ^ Fichero ^ Qué recoge ^ |
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| - | ===== 2. Los dos ciclos: qué se hace una vez y qué se repite ===== | + | Sin // |
| - | Antes de ver los comandos uno a uno conviene tener el mapa, porque cc-sdd tiene **dos ritmos distintos** y es fácil confundirlos. | + | Es lo primero que hay que ejecutar, y conviene |
| - | ==== 2.1. Pasos iniciales: una sola vez por proyecto ==== | + | ---- |
| - | + | ||
| - | ^ # ^ Paso ^ Comando ^ Deja en el proyecto ^ | + | |
| - | | 1 | Instalar las //skills// | '' | + | |
| - | | 2 | Crear la memoria del proyecto | ''/ | + | |
| - | | 3 | // | + | |
| - | Terminado esto, el proyecto ya «sabe de sí mismo»: cualquier comando posterior arranca leyendo ese // | + | ===== 3. Creación de una nueva especificación ===== |
| - | ==== 2.2. Pasos por cada nueva especificación ==== | + | Esto es lo que se repite **una vez por cada funcionalidad** que quieras construir. |
| - | 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 ^ |
| - | | 1 | // | + | | Inicializar | ''/ |
| - | | 2 | Inicializar | ''/ | + | | Requisitos (el QUÉ) | ''/ |
| - | | 3 | Requisitos (QUÉ) | ''/ | + | | Diseño (el CÓMO) | ''/ |
| - | | 4 | // | + | | Tareas | ''/ |
| - | | 5 | Diseño (CÓMO) | ''/ | + | | Implementación | ''/ |
| - | | 6 | // | + | |
| - | | 7 | Tareas | ''/ | + | |
| - | | 8 | Implementación | ''/ | + | |
| - | | 9 | // | + | |
| - | Los cuatro | + | Los documentos viven juntos, uno por funcionalidad: |
| < | < | ||
| .kiro/ | .kiro/ | ||
| ├── spec.json | ├── spec.json | ||
| - | ├── requirements.md | + | ├── requirements.md |
| - | ├── design.md | + | ├── design.md |
| - | ├── research.md | + | └── tasks.md |
| - | └── tasks.md | + | |
| </ | </ | ||
| - | ==== 2.3. Dónde | + | ==== 3.2. Entre fase y fase está el humano ==== |
| - | Entre fase y fase hay una **puerta de aprobación**. | + | '' |
| < | < | ||
| Línea 136: | Línea 135: | ||
| </ | </ | ||
| - | Aprobar consiste en **leer el documento | + | <note important> |
| - | < | + | ^ Comando ^ ¿Necesita '' |
| + | | '' | ||
| + | | '' | ||
| + | | ''/ | ||
| + | | ''/ | ||
| + | | '' | ||
| - | ==== 2.4. Mantenimiento ==== | + | Sin '' |
| - | * **'' | + | ==== 3.3. Una funcionalidad de principio a fin ==== |
| - | * Las especificaciones **no se borran** al terminar: quedan como documentación de por qué el código es como es, y '' | + | |
| + | < | ||
| + | /kiro-spec-init Álbumes | ||
| + | /kiro-spec-requirements photo-albums | ||
| + | /kiro-spec-design photo-albums -y | ||
| + | / | ||
| + | /kiro-impl photo-albums | ||
| + | </ | ||
| + | |||
| + | Leyendo y aprobando el documento de cada fase antes de lanzar la siguiente. | ||
| ---- | ---- | ||
| - | ===== 3. Inicializar el proyecto: / | + | ===== 4. Referencia de comandos |
| - | El //steering// es la **memoria persistente del proyecto**: lo que todos los demás comandos leen antes de hacer nada. Es el primer comando que hay que ejecutar, sobre todo en un proyecto que ya tiene código. | + | ==== 4.1. /kiro-steering |
| < | < | ||
| Línea 155: | Línea 168: | ||
| </ | </ | ||
| - | No lleva argumentos. | + | Crea o actualiza la memoria del proyecto. |
| - | ^ Fichero ^ Qué recoge ^ | + | **Produce** tres documentos en '' |
| - | | '' | + | |
| - | | '' | + | |
| - | | '' | + | |
| - | Funciona en dos modos, y decide solo cuál aplica mirando si ya existen los tres ficheros: | + | La primera vez los escribe desde cero leyendo README, dependencias |
| - | * **Bootstrap** (primera vez): lee README, '' | + | * **Captura patrones, no inventarios.** «Así se nombran los servicios aquí», no una lista de los 200 ficheros del proyecto. |
| - | * **Sync** (mantenimiento): | + | * **Relánzalo de vez en cuando** para que no se quede desfasado respecto al código |
| - | Reglas importantes: | + | ==== 4.2. / |
| - | + | ||
| - | * **Lo que edites a mano se respeta.** Las actualizaciones son aditivas: sync no pisa tus personalizaciones. | + | |
| - | * **Captura patrones, no inventarios.** El objetivo es «así se nombran los servicios aquí», no una lista de los 200 ficheros del proyecto. Lo específico de una funcionalidad va en su especificación, | + | |
| - | * **Revisa lo que genera antes de seguir.** El // | + | |
| - | * Conviene **re-ejecutarlo periódicamente** para que el contexto no se quede obsoleto. | + | |
| - | + | ||
| - | Para conocimiento de dominio más específico existe ''/ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 4. Empezar una especificación: | + | |
| - | + | ||
| - | Crea el esqueleto de la especificación de **una** funcionalidad. | + | |
| < | < | ||
| - | / | + | / |
| </ | </ | ||
| - | |||
| - | Ejemplo: | ||
| < | < | ||
| Línea 192: | Línea 187: | ||
| </ | </ | ||
| - | Qué hace, por pasos: | + | Crea el esqueleto de la especificación de **una** funcionalidad. |
| - | - Genera un **nombre de funcionalidad** único en '' | + | **Produce** '' |
| - | - Comprueba que la descripción contiene los tres elementos obligatorios: | + | |
| - | - Crea el directorio | + | |
| - | - Escribe dos ficheros a partir de las plantillas: | + | |
| - | Salida típica: | + | * 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. | |
| - | < | + | * Cuanto más concreta sea la descripción |
| - | ## Generated Feature Name | + | |
| - | `user-auth-oauth` | + | |
| - | + | ||
| - | ## Created Files | + | |
| - | - ✓ .kiro/ | + | |
| - | - ✓ .kiro/ | + | |
| - | + | ||
| - | ## Next Step | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | <note important>''/ | + | |
| - | + | ||
| - | Consejos: | + | |
| - | + | ||
| - | * Cuanto más **concreta** sea la descripción | + | |
| - | * Revisa '' | + | |
| - | * En un proyecto existente, ejecuta antes ''/ | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 5. Generar los requisitos: / | + | |
| - | + | ||
| - | Es el paso siguiente a ''/ | + | |
| - | + | ||
| - | < | + | |
| - | / | + | |
| - | </ | + | |
| - | El argumento es el nombre de la carpeta que creó '' | + | ==== 4.3. /kiro-spec-requirements ==== |
| < | < | ||
| Línea 237: | Línea 201: | ||
| </ | </ | ||
| - | ==== 5.1. Qué hace ==== | + | Convierte la descripción en un documento de requisitos **verificable**. El argumento es el nombre de la carpeta, no la descripción. |
| - | - **Carga el contexto**: '' | + | **Produce** '' |
| - | - **Investiga en paralelo**, delegando en subagentes para no ensuciar el contexto principal: qué hay ya implementado en el repositorio (en proyectos // | + | |
| - | - **Redacta un borrador** agrupando la funcionalidad en áreas lógicas, | + | |
| - | - **Pasa el borrador por una puerta de revisión** (//review gate//): cobertura, cumplimiento de EARS, ambigüedades y límites de alcance. Corrige y vuelve a revisar, con un máximo de dos pasadas. Si aparece una ambigüedad real, **se para y pregunta** en lugar de inventarse el requisito. | + | |
| - | - **Escribe '' | + | |
| - | ==== 5.2. 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 |
| < | < | ||
| - | WHEN < | + | WHEN < |
| - | IF < | + | IF < |
| - | WHERE < | + | |
| THE < | THE < | ||
| </ | </ | ||
| - | Un fragmento del '' | + | Un fragmento del documento |
| < | < | ||
| ### 1.1 Autenticación de usuarios | ### 1.1 Autenticación de usuarios | ||
| **FR-1.1.1**: | **FR-1.1.1**: | ||
| - | - WHEN el usuario pulsa " | + | - WHEN el usuario pulsa " |
| - WHEN se recibe el callback de OAuth THE sistema SHALL validar el código de autorización | - 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 | - IF la validación es correcta THEN THE sistema SHALL crear una sesión con token JWT | ||
| </ | </ | ||
| - | La gracia de EARS es que 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.3. Requisitos son el QUÉ, no el CÓMO ==== | + | === Requisitos son el QUÉ, no el CÓMO === |
| - | Es la regla que más cuesta respetar. El comando pregunta —y escribe— solo sobre comportamiento observable: | + | Es la regla que más cuesta respetar: |
| ^ Sí va en requisitos ^ No: eso es diseño ^ | ^ Sí va en requisitos ^ No: eso es diseño ^ | ||
| - | | Alcance | + | | 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 | + | | 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 | | | Reglas de negocio y casos límite | Diseño de la API, modelos de datos, componentes internos | | ||
| - | | Requisitos no funcionales perceptibles: | + | | Tiempos |
| - | **Prueba del algodón**: si el criterio | + | **Prueba del algodón**: si el criterio se puede escribir sin nombrar ninguna tecnología, |
| - | ==== 5.4. Consejos y problemas frecuentes ==== | + | Es un comando **iterativo**: |
| - | * Es un comando **iterativo**: | + | ==== 4.4. /kiro-spec-design |
| - | * **Revisa el documento antes de aprobarlo.** El diseño y las tareas se generan a partir de aquí, así que un requisito mal puesto se arrastra hasta el código. | + | |
| - | * Si los requisitos salen **genéricos**, | + | |
| - | * Si da «Spec not found», el nombre no coincide: mira qué carpetas hay en '' | + | |
| - | * Las reglas de formato están en '' | + | |
| - | + | ||
| - | ==== 5.5. Siguiente paso ==== | + | |
| - | + | ||
| - | Con los requisitos aprobados: | + | |
| < | < | ||
| - | / | + | / |
| - | / | + | |
| - | / | + | |
| </ | </ | ||
| - | La opción | + | Traduce el QUÉ al CÓMO. El '' |
| - | ---- | + | **Produce** '' |
| - | ===== 6. El diseño técnico: / | + | * **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. | ||
| - | Traduce el QUÉ de los requisitos al CÓMO: arquitectura, | + | Antes de escribir nada investiga: en funcionalidades nuevas busca patrones de arquitectura |
| - | + | ||
| - | < | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | ==== 6.1. Investigación antes de diseñar ==== | + | |
| - | + | ||
| - | Es el comando más caro de los cuatro, porque antes de escribir nada **clasifica la funcionalidad** y ajusta cuánto | + | |
| - | + | ||
| - | ^ Tipo de funcionalidad ^ Investigación ^ Qué hace ^ | + | |
| - | | Nueva, // | + | |
| - | | Extensión de algo existente | Ligera | Se centra | + | |
| - | | Añadido simple (CRUD, una pantalla) | Mínima | Comprobación rápida del patrón y a escribir | | + | |
| - | + | ||
| - | La investigación se reparte entre **subagentes en paralelo** (uno para el código existente, otro para la búsqueda web) que devuelven un resumen, no datos en bruto, para no ensuciar el contexto principal. Los hallazgos quedan escritos en '' | + | |
| - | + | ||
| - | ==== 6.2. Qué contiene design.md ==== | + | |
| - | + | ||
| - | * **La frontera, primero de todo** (// | + | |
| - | * **Componentes e interfaces**, | + | |
| - | * **Diagramas Mermaid** cuando la arquitectura lo pide. | + | |
| - | * **Plan de ficheros** (//File Structure Plan//): rutas concretas, cuáles se crean y cuáles se modifican, y una responsabilidad clara por fichero. No es decoración: | + | |
| - | * **Estrategia de pruebas** derivada de los criterios de aceptación concretos, no de plantillas genéricas. Nada de «probar que el login funciona»: qué se verifica y por qué importa. | + | |
| - | * **Trazabilidad**: | + | |
| - | + | ||
| - | Igual que los requisitos, el borrador pasa por una **puerta de revisión** (cobertura de requisitos, madurez de la arquitectura, | + | |
| - | + | ||
| - | Al terminar: '' | + | |
| - | + | ||
| - | ---- | + | |
| - | ===== 7. Descomponer | + | 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í. |
| - | Convierte el diseño en una lista de tareas ejecutables. | + | ==== 4.5. / |
| < | < | ||
| - | / | + | / |
| </ | </ | ||
| - | ==== 7.1. Cómo son las tareas ==== | + | Convierte el diseño en una lista de tareas ejecutables. El '' |
| - | | + | **Produce** '' |
| - | * **Numeradas jerárquicamente**: | + | |
| - | * **Con entregable verificable**: | + | |
| - | * **Anotadas**: | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| - | * **Sin prerrequisitos implícitos**: si una tarea necesita que exista un // | + | |
| - | * **Todas conectadas al sistema**: no se permiten tareas huérfanas cuyo resultado no se integre en ninguna parte. | + | |
| - | ==== 7.2. La doble revisión ==== | + | * **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 '' | + | Antes de escribir '' |
| - | - **Puerta | + | Es la última oportunidad de detectar un problema |
| - | - **Revisión independiente del grafo de tareas**: un subagente nuevo, | + | |
| - | Si sale '' | + | ==== 4.6. /kiro-impl ==== |
| - | + | ||
| - | Al final muestra un resumen (cuántas tareas, cuántos requisitos cubiertos, marcas de paralelismo) y **pregunta si apruebas**. Solo entonces marca '' | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 8. Implementar: | + | |
| - | + | ||
| - | Ejecuta las tareas aprobadas. Es donde por fin se escribe código. | + | |
| < | < | ||
| - | / | + | / |
| - | /kiro-impl < | + | |
| - | /kiro-impl < | + | |
| </ | </ | ||
| - | ==== 8.1. Antes de empezar ==== | + | Ejecuta las tareas aprobadas. Es donde por fin se escribe código. No necesita '' |
| - | | + | **Produce** código |
| - | | + | |
| - | | + | |
| - | ==== 8.2. El ciclo por tarea ==== | + | - 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 '' | ||
| - | **Una tarea por iteración**, nunca varias a la vez. En cada iteración vuelve a leer '' | + | Que sea una tarea por iteración |
| - | + | ||
| - | Cada tarea pasa por hasta tres papeles, cada uno en un **subagente con contexto limpio**: | + | |
| - | + | ||
| - | ^ Papel ^ Qué hace ^ | + | |
| - | | **Implementador** | Construye su propio //Task Brief// leyendo la especificación y programa con TDD: primero la prueba que falla (RED), luego el código que la pasa (GREEN), detrás de un //feature flag// si el cambio es de comportamiento. Devuelve '' | + | |
| - | | **Revisor** | Pasada independiente: | + | |
| - | | **Depurador** | Se lanza si el implementador está bloqueado o si el revisor rechaza dos veces. Recibe **solo el error, no el historial de intentos fallidos** —eso es lo que rompe los bucles de reintento infinito—, | + | |
| - | + | ||
| - | Con la tarea aprobada, antes de cantar victoria aplica '' | + | |
| - | + | ||
| - | ==== 8.3. Commits y aprendizajes ==== | + | |
| - | + | ||
| - | * El //commit// lo hace el proceso padre y es **selectivo**: | + | |
| - | * Formato del mensaje: '' | + | |
| - | * Si una tarea descubre algo transversal («esta librería necesita recompilarse para Electron»), | + | |
| - | * Si el depurador se rinde, la tarea queda marcada con '' | + | |
| <note important>''/ | <note important>''/ | ||
| - | |||
| - | Terminadas las tareas, ''/ | ||
| ---- | ---- | ||
| - | ===== 9. Resumen y comandos auxiliares ===== | + | ===== 5. Enlaces ===== |
| - | + | ||
| - | Una funcionalidad de principio a fin, sobre un proyecto ya inicializado: | + | |
| - | + | ||
| - | < | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | / | + | |
| - | /kiro-impl photo-albums | + | |
| - | / | + | |
| - | </ | + | |
| - | + | ||
| - | Si no sabes por dónde empezar, ''/ | + | |
| - | + | ||
| - | Comandos de apoyo: | + | |
| - | + | ||
| - | ^ Comando ^ Para qué ^ | + | |
| - | | ''/ | + | |
| - | | ''/ | + | |
| - | | ''/ | + | |
| - | | ''/ | + | |
| - | | ''/ | + | |
| - | | ''/ | + | |
| - | | ''/ | + | |
| - | + | ||
| - | Y tres //skills// que no se invocan a mano, pero que conviene conocer porque son las que dan las garantías: '' | + | |
| - | + | ||
| - | < | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | ===== 10. Enlaces ===== | + | |
| * [[https:// | * [[https:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
cursos/sdd/11-kiro.1789417443.txt.gz · Última modificación: por claude
