19  Boss Fight 2: Mark I vs Mark II

Author

Diego Saavedra García

20 ⚔️ Boss Fight 2: Mark I vs Mark II

20.1 Prueba Final del Nivel 2


20.2 🎬 La Situación

“Necesito algo más que un prototipo. Necesito algo que funcione de verdad.” — Tony Stark

Tony tiene el Mark I, pero no es suficiente. Debe crear el Mark II: más fuerte, más resistente, más profesional. La diferencia entre prototipo y producto.

Tu misión: Transformar tu código de “funciona” a “profesional”.


20.3 🎯 Misión: Sistema de Gestión de Inventarios Mejorado

20.3.1 Contexto del Problema

Tu código del Mark I “funciona”, pero: - ❌ No tiene tests - ❌ No tiene documentación clara - ❌ No sigue estándares de código - ❌ No es mantenible

20.3.2 Tareas del Mark II

20.3.2.1 Tarea 1: AGENTS.md Profesional (30 min)

# AGENTS.md - Stark Industries Inventory v2.0

## Arquitectura
[Descripción de la arquitectura]

## Estándares de Código
- Python 3.10+ con type hints
- Funciones < 20 líneas
- Comentarios solo el "por qué"
- Tests para todo código público

## Convenciones
- Nombres: snake_case
- Tests: test_[función]_[escenario]
- Docs: Google Style

## Flujos de Trabajo
1. Escribir test primero
2. Implementar función
3. Refactorizar
4. Documentar

20.3.2.2 Tarea 2: Tests Completos (40 min)

# tests/test_inventario.py
import pytest
from src.inventario import Inventario

class TestInventario:
    def test_crear_producto_exitoso(self):
        """Test creación de producto válido"""
        inv = Inventario()
        producto = inv.crear_producto("Mark II", "Armadura", 1)
        assert producto.nombre == "Mark II"
        assert producto.categoria == "Armadura"
    
    def test_crear_producto_datos_invalidos(self):
        """Test creación con datos inválidos"""
        inv = Inventario()
        with pytest.raises(ValueError):
            inv.crear_producto("", "", -1)
    
    # Agregar mínimo 8 tests más

20.3.2.3 Tarea 3: Documentación Profesional (30 min)

# Stark Industries Inventory System v2.0

## Descripción
Sistema de gestión de inventarios para Stark Industries.

## Instalación
```bash
pip install -r requirements.txt

20.4 Uso

from src.inventario import Inventario

inv = Inventario()
inv.crear_producto("Mark III", "Armadura", 5)

20.5 Testing

pytest tests/ -v --cov=src

20.6 Arquitectura

[Diagrama de arquitectura]


---

## 🚀 **Métricas de Éxito**

### **Criterios de Aprobación**

| Métrica | Mark I | Mark II | Mejora |
|---------|--------|---------|--------|
| **Tests** | 0% | >80% | +80% |
| **Docs** | 0% | 100% | +100% |
| **Type Hints** | 0% | 100% | +100% |
| **Coverage** | 0% | >80% | +80% |

### **Checklist de Validación**
- [ ] Todos los tests pasan
- [ ] Coverage > 80%
- [ ] Type hints en todo código público
- [ ] Documentación completa
- [ ] AGENTS.md actualizado
- [ ] README con ejemplos

---

## 🏆 **Logro Desbloqueado: "Prototype to Product"**

### **Requisitos**
- [ ] Tests ejecutándose
- [ ] Coverage > 80%
- [ ] Documentación completa
- [ ] AGENTS.md profesional

### **Recompensa**
- **+200 XP**
- **Logro "Prototype to Product"**
- **Acceso a Nivel 3**

### **Siguiente Nivel**
> *"La verdadera sofisticación está en la simplicidad."* — Tony Stark

**[→ Nivel 3: El Mark III](../contenido/nivel3.qmd)**




:::{#quarto-navigation-envelope .hidden}
[Iron Man Evolution: De la Cueva al Nanotech]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyLXRpdGxl"}
[Iron Man Evolution: De la Cueva al Nanotech]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uYXZiYXItdGl0bGU="}
[<span class='chapter-number'>20</span>  <span class='chapter-title'>Nivel 3: El Mark III</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1uZXh0"}
[<span class='chapter-number'>18</span>  <span class='chapter-title'>Lab 2: El Mark I - Prototipo Funcional</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1wcmV2"}
[<span class='chapter-number'>1</span>  <span class='chapter-title'>Iron Man Evolution</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9wb3J0YWRhLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjE8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+SXJvbi1NYW4tRXZvbHV0aW9uPC9zcGFuPg=="}
[<span class='chapter-number'>2</span>  <span class='chapter-title'>Dedicatoria</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9kZWRpY2F0b3JpYS5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz4yPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkRlZGljYXRvcmlhPC9zcGFuPg=="}
[<span class='chapter-number'>3</span>  <span class='chapter-title'>Prefacio</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9wcmVmYWNpby5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz4zPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPlByZWZhY2lvPC9zcGFuPg=="}
[<span class='chapter-number'>4</span>  <span class='chapter-title'>Agradecimientos</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9hZ3JhZGVjaW1pZW50b3MuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+NDwvc3Bhbj4tLTxzcGFuLWNsYXNzPSdjaGFwdGVyLXRpdGxlJz5BZ3JhZGVjaW1pZW50b3M8L3NwYW4+"}
[<span class='chapter-number'>5</span>  <span class='chapter-title'>Iron Man Evolution: De la Cueva al Nanotech</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9pbmRleC5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz41PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPklyb24tTWFuLUV2b2x1dGlvbjotRGUtbGEtQ3VldmEtYWwtTmFub3RlY2g8L3NwYW4+"}
[<span class='chapter-number'>6</span>  <span class='chapter-title'>Antes de Empezar: Prerrequisitos y Warm-up</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vcHJlcnJlcXVpc2l0b3MuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+Njwvc3Bhbj4tLTxzcGFuLWNsYXNzPSdjaGFwdGVyLXRpdGxlJz5BbnRlcy1kZS1FbXBlemFyOi1QcmVycmVxdWlzaXRvcy15LVdhcm0tdXA8L3NwYW4+"}
[🛠️ Tu Arsenal: Herramientas de IA]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tMQ=="}
[<span class='chapter-number'>7</span>  <span class='chapter-title'>Resumen: Stack Completo de Herramientas IA</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vcmVzdW1lbi1oZXJyYW1pZW50YXMuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+Nzwvc3Bhbj4tLTxzcGFuLWNsYXNzPSdjaGFwdGVyLXRpdGxlJz5SZXN1bWVuOi1TdGFjay1Db21wbGV0by1kZS1IZXJyYW1pZW50YXMtSUE8L3NwYW4+"}
[<span class='chapter-number'>8</span>  <span class='chapter-title'>Unidad 2: OpenCode - Tu Primer Agente de IA</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vdW5pZGFkMi1vcGVuY29kZS5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz44PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPlVuaWRhZC0yOi1PcGVuQ29kZS0tLVR1LVByaW1lci1BZ2VudGUtZGUtSUE8L3NwYW4+"}
[<span class='chapter-number'>9</span>  <span class='chapter-title'>Unidad 3: Claude Code — Tu JARVIS Potente</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vdW5pZGFkMy1jbGF1ZGUtY29kZS5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz45PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPlVuaWRhZC0zOi1DbGF1ZGUtQ29kZS3igJQtVHUtSkFSVklTLVBvdGVudGU8L3NwYW4+"}
[<span class='chapter-number'>10</span>  <span class='chapter-title'>Unidad 4: Gemini CLI — Tu JARVIS Gratis</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vdW5pZGFkNC1nZW1pbmktY2xpLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjEwPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPlVuaWRhZC00Oi1HZW1pbmktQ0xJLeKAlC1UdS1KQVJWSVMtR3JhdGlzPC9zcGFuPg=="}
[<span class='chapter-number'>11</span>  <span class='chapter-title'>Unidad 5: KiloCode — Orquestación Multi-Agente</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vdW5pZGFkNS1raWxvY29kZS5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz4xMTwvc3Bhbj4tLTxzcGFuLWNsYXNzPSdjaGFwdGVyLXRpdGxlJz5VbmlkYWQtNTotS2lsb0NvZGUt4oCULU9ycXVlc3RhY2nDs24tTXVsdGktQWdlbnRlPC9zcGFuPg=="}
[<span class='chapter-number'>12</span>  <span class='chapter-title'>Unidad 6: Kiro — Spec-Driven Development</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vdW5pZGFkNi1raXJvLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjEyPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPlVuaWRhZC02Oi1LaXJvLeKAlC1TcGVjLURyaXZlbi1EZXZlbG9wbWVudDwvc3Bhbj4="}
[<span class='chapter-number'>13</span>  <span class='chapter-title'>Unidad 7: Amp — Asistente Ligero</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vdW5pZGFkNy1hbXAuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MTM8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+VW5pZGFkLTc6LUFtcC3igJQtQXNpc3RlbnRlLUxpZ2Vybzwvc3Bhbj4="}
[🏚️ Nivel 1: El Demo en la Cueva]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tMg=="}
[<span class='chapter-number'>14</span>  <span class='chapter-title'>Nivel 1: La Cueva</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vbml2ZWwxLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjE0PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPk5pdmVsLTE6LUxhLUN1ZXZhPC9zcGFuPg=="}
[<span class='chapter-number'>15</span>  <span class='chapter-title'>Lab 1: Conversación con JARVIS</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2xhYi1uaXZlbDEuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MTU8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TGFiLTE6LUNvbnZlcnNhY2nDs24tY29uLUpBUlZJUzwvc3Bhbj4="}
[<span class='chapter-number'>16</span>  <span class='chapter-title'>Boss Fight 1: Escape de la Cueva</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2Jvc3MtZmlnaHQxLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjE2PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkJvc3MtRmlnaHQtMTotRXNjYXBlLWRlLWxhLUN1ZXZhPC9zcGFuPg=="}
[⚙️ Nivel 2: El Mark I]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tMw=="}
[<span class='chapter-number'>17</span>  <span class='chapter-title'>Nivel 2: El Mark I</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vbml2ZWwyLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjE3PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPk5pdmVsLTI6LUVsLU1hcmstSTwvc3Bhbj4="}
[<span class='chapter-number'>18</span>  <span class='chapter-title'>Lab 2: El Mark I - Prototipo Funcional</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2xhYi1uaXZlbDIuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MTg8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TGFiLTI6LUVsLU1hcmstSS0tLVByb3RvdGlwby1GdW5jaW9uYWw8L3NwYW4+"}
[<span class='chapter-number'>19</span>  <span class='chapter-title'>Boss Fight 2: Mark I vs Mark II</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2Jvc3MtZmlnaHQyLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjE5PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkJvc3MtRmlnaHQtMjotTWFyay1JLXZzLU1hcmstSUk8L3NwYW4+"}
[🔧 Nivel 3: De la Chatarra al Artefacto]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNA=="}
[<span class='chapter-number'>20</span>  <span class='chapter-title'>Nivel 3: El Mark III</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vbml2ZWwzLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjIwPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPk5pdmVsLTM6LUVsLU1hcmstSUlJPC9zcGFuPg=="}
[<span class='chapter-number'>21</span>  <span class='chapter-title'>Lab 3: El Mark III - Tu Primera Armadura Real</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2xhYi1uaXZlbDMuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MjE8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TGFiLTM6LUVsLU1hcmstSUlJLS0tVHUtUHJpbWVyYS1Bcm1hZHVyYS1SZWFsPC9zcGFuPg=="}
[<span class='chapter-number'>22</span>  <span class='chapter-title'>Boss Fight 3: La Torre Stark</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2Jvc3MtZmlnaHQzLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjIyPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkJvc3MtRmlnaHQtMzotTGEtVG9ycmUtU3Rhcms8L3NwYW4+"}
[🧠 Nivel 4: El Jarvis Primordial]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNQ=="}
[<span class='chapter-number'>23</span>  <span class='chapter-title'>Nivel 4: JARVIS Avanzado</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vbml2ZWw0Lmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjIzPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPk5pdmVsLTQ6LUpBUlZJUy1BdmFuemFkbzwvc3Bhbj4="}
[<span class='chapter-number'>24</span>  <span class='chapter-title'>Lab 4: J.A.R.V.I.S. - Asistente Inteligente</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2xhYi1uaXZlbDQuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MjQ8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TGFiLTQ6LUouQS5SLlYuSS5TLi0tLUFzaXN0ZW50ZS1JbnRlbGlnZW50ZTwvc3Bhbj4="}
[<span class='chapter-number'>25</span>  <span class='chapter-title'>Boss Fight 4: El Jarvis Protocol</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2Jvc3MtZmlnaHQ0Lmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjI1PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkJvc3MtRmlnaHQtNDotRWwtSmFydmlzLVByb3RvY29sPC9zcGFuPg=="}
[🛡️ Nivel 5: De Agente a Arquitecto]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNg=="}
[<span class='chapter-number'>26</span>  <span class='chapter-title'>Nivel 5: Ultron</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vbml2ZWw1Lmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjI2PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPk5pdmVsLTU6LVVsdHJvbjwvc3Bhbj4="}
[<span class='chapter-number'>27</span>  <span class='chapter-title'>Lab 5: Ultron - SDD, Multi-Agente y Ética</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2xhYi1uaXZlbDUuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+Mjc8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TGFiLTU6LVVsdHJvbi0tLVNERCwtTXVsdGktQWdlbnRlLXktw4l0aWNhPC9zcGFuPg=="}
[<span class='chapter-number'>28</span>  <span class='chapter-title'>Boss Fight 5: El Escudo de Capitán América</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2Jvc3MtZmlnaHQ1Lmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjI4PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkJvc3MtRmlnaHQtNTotRWwtRXNjdWRvLWRlLUNhcGl0w6FuLUFtw6lyaWNhPC9zcGFuPg=="}
[🧬 Nivel 6: El Nanotech Viviente]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tNw=="}
[<span class='chapter-number'>29</span>  <span class='chapter-title'>Nivel 6: El Nanotech</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9jb250ZW5pZG8vbml2ZWw2Lmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjI5PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPk5pdmVsLTY6LUVsLU5hbm90ZWNoPC9zcGFuPg=="}
[<span class='chapter-number'>30</span>  <span class='chapter-title'>Lab 6: El Nanotech - Orquestación Avanzada</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2xhYi1uaXZlbDYuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MzA8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TGFiLTY6LUVsLU5hbm90ZWNoLS0tT3JxdWVzdGFjacOzbi1BdmFuemFkYTwvc3Bhbj4="}
[<span class='chapter-number'>31</span>  <span class='chapter-title'>Boss Fight 6: El Ecosistema Stark</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9sYWJzL2Jvc3MtZmlnaHQ2Lmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjMxPC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkJvc3MtRmlnaHQtNjotRWwtRWNvc2lzdGVtYS1TdGFyazwvc3Bhbj4="}
[📝 Quizzes y Evaluaciones]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tOA=="}
[<span class='chapter-number'>32</span>  <span class='chapter-title'>Quiz 1: El Despertar</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9xdWl6emVzL3VuaWRhZDEuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MzI8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UXVpei0xOi1FbC1EZXNwZXJ0YXI8L3NwYW4+"}
[<span class='chapter-number'>33</span>  <span class='chapter-title'>Quiz 2: Contexto es Rey</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9xdWl6emVzL3VuaWRhZDIuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MzM8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UXVpei0yOi1Db250ZXh0by1lcy1SZXk8L3NwYW4+"}
[<span class='chapter-number'>34</span>  <span class='chapter-title'>Quiz 3: El Piloto</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9xdWl6emVzL3VuaWRhZDMuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MzQ8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UXVpei0zOi1FbC1QaWxvdG88L3NwYW4+"}
[<span class='chapter-number'>35</span>  <span class='chapter-title'>Quiz 4: Refinamiento</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9xdWl6emVzL3VuaWRhZDQuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MzU8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UXVpei00Oi1SZWZpbmFtaWVudG88L3NwYW4+"}
[<span class='chapter-number'>36</span>  <span class='chapter-title'>Quiz 5: Límites</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9xdWl6emVzL3VuaWRhZDUuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MzY8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UXVpei01Oi1Mw61taXRlczwvc3Bhbj4="}
[<span class='chapter-number'>37</span>  <span class='chapter-title'>Quiz 6: Síntesis</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9xdWl6emVzL3VuaWRhZDYuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+Mzc8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UXVpei02Oi1Tw61udGVzaXM8L3NwYW4+"}
[📚 Referencias y Recursos]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tOQ=="}
[<span class='chapter-number'>38</span>  <span class='chapter-title'>PRD - Product Requirements Document</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9wcmQuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+Mzg8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+UFJELS0tUHJvZHVjdC1SZXF1aXJlbWVudHMtRG9jdW1lbnQ8L3NwYW4+"}
[<span class='chapter-number'>39</span>  <span class='chapter-title'>SDD - Spec-Driven Development</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9zZGQuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+Mzk8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+U0RELS0tU3BlYy1Ecml2ZW4tRGV2ZWxvcG1lbnQ8L3NwYW4+"}
[<span class='chapter-number'>40</span>  <span class='chapter-title'>Engram - Memoria Persistente</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9lbmdyYW0uaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+NDA8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+RW5ncmFtLS0tTWVtb3JpYS1QZXJzaXN0ZW50ZTwvc3Bhbj4="}
[<span class='chapter-number'>41</span>  <span class='chapter-title'>MCP - Model Context Protocol</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9tY3AuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+NDE8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+TUNQLS0tTW9kZWwtQ29udGV4dC1Qcm90b2NvbDwvc3Bhbj4="}
[<span class='chapter-number'>42</span>  <span class='chapter-title'>Skills - Habilidades Especializadas</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9za2lsbHMuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+NDI8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+U2tpbGxzLS0tSGFiaWxpZGFkZXMtRXNwZWNpYWxpemFkYXM8L3NwYW4+"}
[<span class='chapter-number'>43</span>  <span class='chapter-title'>Herramientas de Asistentes de IA para Desarrollo (2026)</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9oZXJyYW1pZW50YXMtaWEuaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+NDM8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+SGVycmFtaWVudGFzLWRlLUFzaXN0ZW50ZXMtZGUtSUEtcGFyYS1EZXNhcnJvbGxvLSgyMDI2KTwvc3Bhbj4="}
[<span class='chapter-number'>44</span>  <span class='chapter-title'>Gentle AI Stack</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9yZWN1cnNvcy9nZW50bGUtYWktc3RhY2suaHRtbDxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+NDQ8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+R2VudGxlLUFJLVN0YWNrPC9zcGFuPg=="}
[ℹ️ Información]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOnF1YXJ0by1zaWRlYmFyLXNlY3Rpb24tMTA="}
[<span class='chapter-number'>45</span>  <span class='chapter-title'>Acerca del Autor</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9hYm91dC5odG1sPHNwYW4tY2xhc3M9J2NoYXB0ZXItbnVtYmVyJz40NTwvc3Bhbj4tLTxzcGFuLWNsYXNzPSdjaGFwdGVyLXRpdGxlJz5BY2VyY2EtZGVsLUF1dG9yPC9zcGFuPg=="}
[<span class='chapter-number'>46</span>  <span class='chapter-title'>Licencia</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWludC1zaWRlYmFyOi9saWNlbnNlLmh0bWw8c3Bhbi1jbGFzcz0nY2hhcHRlci1udW1iZXInPjQ2PC9zcGFuPi0tPHNwYW4tY2xhc3M9J2NoYXB0ZXItdGl0bGUnPkxpY2VuY2lhPC9zcGFuPg=="}
[⚙️ Nivel 2: El Mark I]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWJyZWFkY3J1bWJzLeKame+4jy1OaXZlbC0yOi1FbC1NYXJrLUk="}
[<span class='chapter-number'>19</span>  <span class='chapter-title'>Boss Fight 2: Mark I vs Mark II</span>]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLWJyZWFkY3J1bWJzLTxzcGFuLWNsYXNzPSdjaGFwdGVyLW51bWJlcic+MTk8L3NwYW4+LS08c3Bhbi1jbGFzcz0nY2hhcHRlci10aXRsZSc+Qm9zcy1GaWdodC0yOi1NYXJrLUktdnMtTWFyay1JSTwvc3Bhbj4="}

:::{.hidden .quarto-markdown-envelope-contents render-id="Zm9vdGVyLWNlbnRlci0vYWJvdXQuaHRtbA=="}
Acerca del Autor
:::


:::{.hidden .quarto-markdown-envelope-contents render-id="Zm9vdGVyLWNlbnRlci0vbGljZW5zZS5odG1s"}
Licencia
:::


:::{.hidden .quarto-markdown-envelope-contents render-id="Zm9vdGVyLWNlbnRlci1odHRwczovL2dpdGh1Yi5jb20vR2VudGxlbWFuLVByb2dyYW1taW5nL2dlbnRsZS1haQ=="}
Gentle AI Stack
:::

:::



:::{#quarto-meta-markdown .hidden}
[[19]{.chapter-number}  [Boss Fight 2: Mark I vs Mark II]{.chapter-title} – Iron Man Evolution: De la Cueva al Nanotech]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLW1ldGF0aXRsZQ=="}
[[19]{.chapter-number}  [Boss Fight 2: Mark I vs Mark II]{.chapter-title} – Iron Man Evolution: De la Cueva al Nanotech]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLXR3aXR0ZXJjYXJkdGl0bGU="}
[[19]{.chapter-number}  [Boss Fight 2: Mark I vs Mark II]{.chapter-title} – Iron Man Evolution: De la Cueva al Nanotech]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLW9nY2FyZHRpdGxl"}
[Iron Man Evolution: De la Cueva al Nanotech]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLW1ldGFzaXRlbmFtZQ=="}
[Curso de desarrollo con Inteligencia Artificial como Tony Stark: desde scripts básicos hasta Software Driver Development]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLXR3aXR0ZXJjYXJkZGVzYw=="}
[Curso de desarrollo con Inteligencia Artificial como Tony Stark: desde scripts básicos hasta Software Driver Development]{.hidden .quarto-markdown-envelope-contents render-id="cXVhcnRvLW9nY2FyZGRkZXNj"}
:::




<!-- -->

::: {.quarto-embedded-source-code}
```````````````````{.markdown shortcodes="false"}
---
title: "Boss Fight 2: Mark I vs Mark II"
author: "Diego Saavedra García"
description: "Reto final Nivel 2: Transformar prototipo en producto profesional"
---

# ⚔️ Boss Fight 2: Mark I vs Mark II

## **Prueba Final del Nivel 2**

---

## 🎬 **La Situación**

> *"Necesito algo más que un prototipo. Necesito algo que funcione de verdad."* — Tony Stark

Tony tiene el Mark I, pero no es suficiente. Debe crear el **Mark II**: más fuerte, más resistente, más profesional. La diferencia entre prototipo y producto.

**Tu misión**: Transformar tu código de "funciona" a "profesional".

---

## 🎯 **Misión: Sistema de Gestión de Inventarios Mejorado**

### **Contexto del Problema**

Tu código del Mark I "funciona", pero:
- ❌ No tiene tests
- ❌ No tiene documentación clara
- ❌ No sigue estándares de código
- ❌ No es mantenible

### **Tareas del Mark II**

#### **Tarea 1: AGENTS.md Profesional (30 min)**
```markdown
# AGENTS.md - Stark Industries Inventory v2.0

## Arquitectura
[Descripción de la arquitectura]

## Estándares de Código
- Python 3.10+ con type hints
- Funciones < 20 líneas
- Comentarios solo el "por qué"
- Tests para todo código público

## Convenciones
- Nombres: snake_case
- Tests: test_[función]_[escenario]
- Docs: Google Style

## Flujos de Trabajo
1. Escribir test primero
2. Implementar función
3. Refactorizar
4. Documentar

20.6.0.1 Tarea 2: Tests Completos (40 min)

# tests/test_inventario.py
import pytest
from src.inventario import Inventario

class TestInventario:
    def test_crear_producto_exitoso(self):
        """Test creación de producto válido"""
        inv = Inventario()
        producto = inv.crear_producto("Mark II", "Armadura", 1)
        assert producto.nombre == "Mark II"
        assert producto.categoria == "Armadura"
    
    def test_crear_producto_datos_invalidos(self):
        """Test creación con datos inválidos"""
        inv = Inventario()
        with pytest.raises(ValueError):
            inv.crear_producto("", "", -1)
    
    # Agregar mínimo 8 tests más

20.6.0.2 Tarea 3: Documentación Profesional (30 min)

# Stark Industries Inventory System v2.0

## Descripción
Sistema de gestión de inventarios para Stark Industries.

## Instalación
```bash
pip install -r requirements.txt

20.7 Uso

from src.inventario import Inventario

inv = Inventario()
inv.crear_producto("Mark III", "Armadura", 5)

20.8 Testing

pytest tests/ -v --cov=src

20.9 Arquitectura

[Diagrama de arquitectura]


---

## 🚀 **Métricas de Éxito**

### **Criterios de Aprobación**

| Métrica | Mark I | Mark II | Mejora |
|---------|--------|---------|--------|
| **Tests** | 0% | >80% | +80% |
| **Docs** | 0% | 100% | +100% |
| **Type Hints** | 0% | 100% | +100% |
| **Coverage** | 0% | >80% | +80% |

### **Checklist de Validación**
- [ ] Todos los tests pasan
- [ ] Coverage > 80%
- [ ] Type hints en todo código público
- [ ] Documentación completa
- [ ] AGENTS.md actualizado
- [ ] README con ejemplos

---

## 🏆 **Logro Desbloqueado: "Prototype to Product"**

### **Requisitos**
- [ ] Tests ejecutándose
- [ ] Coverage > 80%
- [ ] Documentación completa
- [ ] AGENTS.md profesional

### **Recompensa**
- **+200 XP**
- **Logro "Prototype to Product"**
- **Acceso a Nivel 3**

### **Siguiente Nivel**
> *"La verdadera sofisticación está en la simplicidad."* — Tony Stark

**[→ Nivel 3: El Mark III](../contenido/nivel3.qmd)**

:::