12 Unidad 6: Kiro — Spec-Driven Development
13 🎯 Unidad 6: Kiro — Spec-Driven Development
13.1 “No programs. Se especifica. Kiro implementa.”
13.2 🎯 Objetivo
Al terminar esta unidad podrás:
- ✅ Instalar Kiro en tu sistema
- ✅ Escribir especificaciones estructuradas
- ✅ Usar Hooks para automatización
- ✅ Implementar usando SDD (Spec-Driven Development)
- ✅ Comparar con el workflow de OpenCode
13.3 🤖 ¿Qué es Kiro?
13.3.1 En una frase
Kiro es el IDE de Amazon que revoluciona el desarrollo con Spec-Driven Development. Diseñas especificaciones, Kiro implementa.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ KIRO — SPEC-DRIVEN IDE │
│ ═══════════════════════════ │
│ │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 1. ESCRIBÍS SPEC 2. KIRO IMPLEMENTA │ │
│ │ ──────────────── ──────────────── │ │
│ │ │ │
│ │ spec.yaml ┌─────────────────┐ │ │
│ │ ──────── │ Código │ │ │
│ │ name: auth │ Generated │ │ │
│ │ requirements: │ 100% │ │ │
│ │ - id: FR-001 │ Matched │ │ │
│ │ title: Login └─────────────────┘ │ │
│ │ desc: User auth... │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────┘ │
│ │
│ Hooks de Automatización │
│ Steerling (UI con IA) │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
13.3.2 ¿Por qué Kiro?
| Característica | Kiro | OpenCode | Claude Code |
|---|---|---|---|
| Paradigma | SDD nativo | Agéntico | Agéntico |
| Specs | ✅ Integradas | ❌ | ❌ |
| Hooks | ✅ Automatización | ❌ | ❌ |
| UI Design | ✅ Steerling | ❌ | ❌ |
| AWS Integration | ✅ Profunda | ❌ | ❌ |
| Precio | $20-200/mes | Gratis | $20-200/mes |
13.4 🔧 Instalación de Kiro
13.4.1 ⏱️ Timeline
| Paso | Descripción | Tiempo | ✓ |
|---|---|---|---|
| 1 | Descargar Kiro | 5 min | ⬜ |
| 2 | Instalar | 10 min | ⬜ |
| 3 | Configurar cuenta | 5 min | ⬜ |
| 4 | Primer proyecto | 10 min | ⬜ |
13.4.2 Paso 1: Descargar Kiro
- Ve a kiro.aws
- Click en Download
- Seleccioná tu SO (Windows/Mac/Linux)
- Descargá el installer
13.4.3 Paso 2: Instalar
13.4.3.1 macOS
- Abrí el
.dmg - Arrastrá Kiro a Applications
- Abrí Kiro desde Applications
13.4.3.2 Linux
# Con snap
sudo snap install kiro --classic
# O con .deb
sudo dpkg -i kiro.deb13.4.3.3 Windows
- Ejecutá el
.exe - Follow the wizard
- Abrí Kiro
13.4.4 Paso 3: Configurar Cuenta
- Abrí Kiro
- Creá cuenta o iniciá sesión
- Conectá tu API key de AWS (opcional)
13.5 📝 Specs: El Core de Kiro
13.5.1 ¿Qué es una Spec?
Una Spec es una especificación estructurada de lo que querés construir.
proyecto/
├── .kiro/
│ └── specs/
│ ├── auth/
│ │ ├── spec.yaml
│ │ └── requirements.md
│ └── api/
│ ├── spec.yaml
│ └── requirements.md
13.5.2 Estructura de spec.yaml
name: "Sistema de Autenticación"
description: "API REST para autenticación de usuarios"
requirements:
- id: FR-001
title: "Login de usuario"
description: |
El sistema debe permitir a los usuarios iniciar sesión
con email y contraseña.
acceptance_criteria:
- "Retorna JWT válido"
- "Maneja credenciales inválidas"
- "Bloquea después de 5 intentos fallidos"
priority: high
tags: ["auth", "security"]
- id: FR-002
title: "Registro de usuario"
description: |
El sistema debe permitir registrar nuevos usuarios.
acceptance_criteria:
- "Valida email único"
- "Hashea contraseñas"
- "Envía email de verificación"
priority: high
tags: ["auth", "registration"]
hooks:
- trigger: "on_save"
action: "run_tests"
- trigger: "on_commit"
action: "validate_specs"
technology:
language: "python"
framework: "fastapi"
database: "postgresql"13.5.3 Commands en Specs
Los commands son acciones que Kiro ejecuta automáticamente.
commands:
- name: "generate_models"
description: "Genera modelos SQLAlchemy desde specs"
trigger: "on_spec_change"
- name: "generate_tests"
description: "Genera tests desde acceptance criteria"
trigger: "on_save"
- name: "validate_coverage"
description: "Verifica que specs tengan tests"
trigger: "on_commit"13.6 🎣 Hooks: Automatización
13.6.1 ¿Qué son los Hooks?
Los Hooks son disparadores que ejecutan acciones cuando ocurren eventos.
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ HOOKS EN KIRO │
│ ═══════════════ │
│ │
│ EVENTO ACCIÓN │
│ ══════ ══════ │
│ │
│ on_save ──────────────▶ run_tests │
│ on_save ──────────────▶ lint_code │
│ on_commit ──────────────▶ validate_specs │
│ on_push ──────────────▶ deploy_staging │
│ on_spec_change ──────────▶ generate_code │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
13.6.2 Hooks Comunes
hooks:
- trigger: "on_save"
actions:
- "run_linter"
- "format_code"
- trigger: "on_commit"
actions:
- "validate_specs"
- "check_coverage"
- "run_tests"
- trigger: "on_spec_change"
actions:
- "regenerate_models"
- "update_tests"13.7 🎨 Steerling: UI con IA
13.7.1 ¿Qué es Steerling?
Steerling es la herramienta de diseño UI de Kiro. Describís la UI, Kiro la genera.
> Quiero un login form con:
> - Campo email
> - Campo contraseña
> - Botón de login
> - Link a registro
> - Estilo minimalista, azul y blanco
Steerling genera: - Componente React/Vue/HTML - Estilos CSS/Tailwind - Validación de inputs - Estados (loading, error, success)
13.8 🧪 Lab: Tu Primer Spec
13.8.1 Objetivo
Crear una spec completa con requirements y hooks.
13.8.2 ⏱️ Timeline
| Paso | Descripción | Tiempo | ✓ |
|---|---|---|---|
| 1 | Instalar Kiro | 10 min | ⬜ |
| 2 | Crear estructura | 5 min | ⬜ |
| 3 | Escribir spec | 15 min | ⬜ |
| 4 | Implementar | 15 min | ⬜ |
13.8.3 Escenario
Tony quiere un sistema de login. Pero esta vez, primero SPECIFICA, después implementa.
13.8.4 Paso 1: Crear proyecto
mkdir mi-proyecto-kiro
cd mi-proyecto-kiro
mkdir -p .kiro/specs/auth13.8.5 Paso 2: Crear spec.yaml
Archivo: .kiro/specs/auth/spec.yaml
name: "Sistema de Login"
description: "Autenticación simple con JWT"
requirements:
- id: AUTH-001
title: "Login con email y contraseña"
description: |
Los usuarios deben poder iniciar sesión
con email y contraseña válidos.
acceptance_criteria:
- "Retorna JWT de 1 hora"
- "Maneja errores 401 para credenciales inválidas"
- "Loguea intentos fallidos"
priority: critical
- id: AUTH-002
title: "Protección de endpoints"
description: |
Los endpoints protegidos deben verificar el JWT.
acceptance_criteria:
- "Rechaza requests sin Authorization header"
- "Rechaza tokens expirados"
- "Retorna 401 para tokens inválidos"
priority: critical
hooks:
- trigger: "on_save"
actions: ["run_tests", "lint_code"]13.8.6 Paso 3: Generar código
En Kiro, ejecutá:
> Generá el código para la spec auth/
13.9 📊 Comparación: Kiro vs Other Workflows
| Aspecto | Kiro (SDD) | OpenCode | Claude Code |
|---|---|---|---|
| Metodología | Specs → Code | Contexto → Code | Contexto → Code |
| Specs | ✅ Nativas | ❌ | ❌ |
| Traceabilidad | ✅ 100% | ❌ | ❌ |
| Automatización | ✅ Hooks | ❌ | ⚠️ Limitada |
| Curva aprendizaje | Alta | Baja | Media |
13.10 ✅ Checklist Final
| Habilidad | ✓ |
|---|---|
| Kiro instalado | ⬜ |
| Primera spec creada | ⬜ |
| Hooks configurados | ⬜ |
| Spec→Code workflow entendido | ⬜ |
13.11 🏆 Logro
“Architect” desbloqueado:
- +150 XP
- Capacidad de especificar antes de implementar
- Dominio de SDD
13.12 🔗 Siguiente
¿Listo para algo más ligero?
→ Unidad 7: Amp — Asistente Ligero
O volvé al overview: