# 🎯 Cómo funciona realmente Taskr

## 3.3 Tareas - Los bloques de construcción

### Entendiendo la jerarquía de tareas

Las tareas se organizan como el esquema de un documento:

```
1.0 Construir autenticación de usuarios (tarea padre)
  1.1 Configurar tablas de base de datos (subtarea)
    1.1.1 Crear tabla de usuarios (sub-subtarea)
    1.1.2 Añadir hashing de contraseñas
  1.2 Crear página de inicio de sesión
    1.2.1 Diseñar formulario de inicio de sesión
    1.2.2 Añadir validación
  1.3 Implementar cierre de sesión
```

**El detalle ingenioso:** Cuando todas las subtareas 1.1.1 y 1.1.2 están terminadas, la 1.1 se completa automáticamente. ¡Cuando todas las 1.1, 1.2 y 1.3 están listas, la 1.0 se completa sola!

### Tipos de tareas explicados

Cada tarea tiene un tipo que le indica a tu IA qué tipo de trabajo es:

- **setup** 🔧 - Preparar las cosas (instalar paquetes, crear carpetas)
- **analysis** 🔍 - Investigar y entender (analizar APIs, planificar el enfoque)
- **implementation** 💻 - Construir cosas realmente (escribir código, crear funcionalidades)
- **validation** ✓ - Asegurarse de que funciona (revisar lógica, revisar código)
- **testing** 🧪 - Demostrar que funciona (escribir pruebas, ejecutar suites de pruebas)

### Flujo de estado de las tareas

Las tareas se mueven a través de estados como en una cinta transportadora:

1. **open** ⭕ - Esperando a ser iniciada
2. **wip** 🔄 - Siendo trabajada en este momento (trabajo en progreso)
3. **done** ✅ - Completada con éxito
4. **skipped** ⏭️ - Omitida intencionalmente (no es necesaria)

### La regla de una sola tarea

Aquí hay algo crucial: **tu IA solo puede trabajar en UNA tarea a la vez**.

¿Por qué? ¡Porque la multitarea conduce a la confusión! Cuando tu IA marca una tarea como "wip", obtiene la propiedad exclusiva a través de un campo `wip_agent_id`. Ningún otro agente puede tocarla, y este agente no puede empezar otra tarea hasta que termine esta.

¡Esto se aplica en la base de datos con disparadores (triggers) de PostgreSQL y el código del controlador MCP!

### Creando nuevas tareas

Tu IA crea tareas usando la herramienta `create_task`:

```
Tu IA: "Necesito desglosar esto en piezas más pequeñas"
Crea: Subtareas bajo la tarea actual, o una lista de tareas completamente nueva
Velocidad: Instantánea
Control: Tu IA decide la estructura basándose en tus requisitos
```

**Consejo:** Para proyectos más grandes, pega primero tus requisitos en el chat de tu IA; así creará una jerarquía de tareas más exhaustiva y bien estructurada.

### La magia de `get_task`

Cuando tu IA llama a `get_task`, esto es lo que sucede entre bastidores:

1. **Busca un WIP existente** - "¿Ya estoy trabajando en algo?"
2. **Busca la siguiente tarea lógica** - "¿Cuál es la siguiente tarea 'open' en orden?"
3. **La marca como WIP** - "¡Esto es mío ahora!"
4. **Devuelve el contexto completo** - Detalles de la tarea + notas + reglas de guía
5. **Evita conflictos** - Ningún otro agente puede reclamar esta tarea

¡La función de base de datos `get_task_for_agent` gestiona todo esto de forma atómica!

---
