# Dependencias

Qué etapa o tarea espera a cuál: sin ciclos, ordenan el tablero y fijan desde qué día se agenda una tarea.

Fuente: https://ardumaker.com/docs/dependencias/

- Categoría: Proyectos y empresas
- Estado: Disponible
- Requisitos: Etapas o tareas del mismo proyecto
- Herramientas MCP (Escriben o modifican): `crear_etapa`, `editar_etapa`, `crear_tarea`, `editar_tarea`, `crear_proyecto_con_etapas`

## ¿Qué permite hacer?

- Que una etapa dependa de otras etapas del mismo proyecto.
- Que una tarea dependa de otras tareas del mismo proyecto, aunque estén en otra etapa.
- Ver en el mapa de dependencias qué está bloqueado y qué se puede empezar ya.

Etapas dependen de etapas y tareas de tareas: no se cruzan los niveles.

## ¿Cuándo conviene usarlo?

- Para encadenar fases que no pueden arrancar hasta que termine la anterior.
- Para que el auto-agendado no ubique una tarea antes que aquello de lo que depende.

## ¿Cómo funciona en ArduMaker?

- Son **informativas**: no bloquean ninguna acción. La API calcula `puede_completarse`, que es verdadero cuando todas las dependencias están al 100%.
- Al guardarlas se valida que no formen un ciclo.
- Si una etapa no tiene dependencias propias, el tablero las deduce de las de sus tareas.
- El auto-agendado no ubica una tarea antes del día siguiente a la fecha de su dependencia. Si una dependencia todavía no tiene fecha, espera.

> **INFO:** Al reagendar por un cambio, solo se reacomodan los dependientes directos, no toda la cadena.

## ¿Qué cambia realmente?

- Guardar dependencias reemplaza la lista completa de la etapa o tarea.
- Borrar una tarea no deja dependencias colgadas: desaparece de las listas y vuelve a aparecer si se la restaura.

## Esquema

**Tarea con dependencia**

```text
Tarea A (fecha_limite: día N)
  ↓
Tarea B depende de A (puede_completarse = A al 100%)
  ↓
Auto-agendado de B (desde el día N+1)
```

## Resultado esperado

El tablero ordena primero lo que no espera a nadie, y cada tarjeta muestra de qué depende y a cuántas bloquea.

## Errores y resolución

- `Adding '<nombre>' as a dependency would create a cycle`: la dependencia cerraría un círculo. Hay que quitar alguna de la cadena.
- Una tarea no se auto-agenda si depende de otra sin fecha: conviene fechar primero la dependencia.

## Relación con MCP

- `crear_etapa` y `editar_etapa` aceptan las dependencias de la etapa.
- `crear_tarea` y `editar_tarea` aceptan `depende_de` con ids de tareas.
- `crear_proyecto_con_etapas` con `encadenar_etapas=true` (por defecto) hace que cada etapa dependa de la anterior.

Más en [/mcp/proyectos](https://ardumaker.com/mcp/proyectos) y [/mcp/docs](https://ardumaker.com/mcp/docs).

## Funciones relacionadas

- [Etapas](https://ardumaker.com/docs/etapas/)
- [Tareas](https://ardumaker.com/docs/tareas/)
- [Calendario de proyecto](https://ardumaker.com/docs/calendario-de-proyecto/)
- [Proyectos y tablero kanban](https://ardumaker.com/docs/proyectos-kanban/)
