Saltar al contenido principal

Dependencias entre items

Cuando multiples agentes trabajan en paralelo, se pisan unos a otros a menos que definas que bloquea que. Las dependencias hacen esto explicito para que los agentes respeten el orden de ejecucion automaticamente. Sin dependencias claras, terminas con conflictos de merge, trabajo duplicado y agentes implementando features sobre codigo que todavia no existe.

Las dependencias permiten definir relaciones de bloqueo entre work items. Cuando un item depende de otro, Almirant hace visible esta relacion para que tanto el equipo como la IA puedan tomar decisiones informadas sobre el orden de ejecucion del trabajo.

Tipos de dependencia

Almirant utiliza un modelo de dependencia bidireccional basado en relaciones blocker/blocked:

RelacionSignificadoEjemplo
blocksEl item A bloquea al item B"Implementar API de usuarios" bloquea "Crear pantalla de perfil"
blocked byEl item B esta bloqueado por el item A"Crear pantalla de perfil" esta bloqueada por "Implementar API de usuarios"

Ambas relaciones son dos caras de la misma dependencia. Al crear una dependencia desde cualquiera de los dos items, la relacion inversa se establece automaticamente.

Crear una dependencia

Desde la interfaz

  1. Abre la vista de detalle de un work item.
  2. Ve a la seccion Dependencias.
  3. Selecciona Agregar dependencia.
  4. Busca el work item relacionado por su titulo o taskId (e.g., A-T-15).
  5. Selecciona el tipo de relacion: "este item bloquea a..." o "este item esta bloqueado por...".
  6. Confirma.

La dependencia aparece en la vista de detalle de ambos items involucrados.

Via MCP

Usa el tool add_work_item_dependency proporcionando los IDs de ambos items y el tipo de relacion.

Ver dependencias

Las dependencias de un work item se visualizan en:

  • Vista de detalle -- Seccion dedicada que muestra items bloqueantes y items bloqueados.
  • Tarjeta del board -- Indicador visual cuando un item tiene dependencias activas.

Cada dependencia muestra:

  • El taskId y titulo del item relacionado.
  • El tipo de relacion (blocks / blocked by).
  • El estado actual del item relacionado (derivado de su columna).

Consulta en lote

Cuando necesitas revisar las dependencias de multiples items a la vez (por ejemplo, al planificar un sprint), puedes usar la consulta en lote para obtener todas las relaciones de un conjunto de work items en una sola operacion.

Impacto en el flujo de trabajo

Las dependencias proporcionan informacion clave para la gestion del trabajo:

  • Visibilidad de bloqueos -- Identifica rapidamente que items no pueden avanzar porque dependen de otros que aun no estan completados.
  • Priorizacion informada -- Los items que bloquean a otros deberian priorizarse para desbloquear trabajo pendiente.
  • Contexto para la IA -- Cuando la IA consulta el contexto de un item, las dependencias le ayudan a determinar si tiene sentido empezar a trabajar en el o si deberia enfocarse primero en los items bloqueantes.
Buena practica

Un item bloqueado no deberia moverse a "In Progress" mientras sus items bloqueantes no esten completados. Aunque Almirant no impide el movimiento, las dependencias sirven como indicador visual y contextual para evitar trabajo prematuro.

Eliminar una dependencia

  1. Abre la vista de detalle del work item.
  2. En la seccion Dependencias, localiza la relacion a eliminar.
  3. Haz clic en el boton de eliminar junto a la dependencia.
  4. Confirma la eliminacion.

La relacion se elimina de ambos items simultaneamente.

Para developers

Para Developers

Herramientas MCP

ToolDescripcionParametros principales
get_work_item_dependenciesObtiene las dependencias de un work itemworkItemId
add_work_item_dependencyCrea una dependencia entre dos itemsworkItemId, dependsOnWorkItemId, type
remove_work_item_dependencyElimina una dependenciaworkItemId, dependsOnWorkItemId
get_dependencies_batchObtiene dependencias de multiples items a la vezworkItemIds

Ejemplo: Agregar una dependencia

Tool: add_work_item_dependency
Parametros:
workItemId: "uuid-item-bloqueado"
dependsOnWorkItemId: "uuid-item-bloqueante"
type: "blocked_by"

Esto establece que el primer item esta bloqueado por el segundo. La relacion inversa (el segundo bloquea al primero) se crea automaticamente.

Ejemplo: Consultar dependencias en lote

Tool: get_dependencies_batch
Parametros:
workItemIds: ["uuid-1", "uuid-2", "uuid-3", "uuid-4"]

Devuelve un mapa con las dependencias de cada item, util para visualizar el grafo de bloqueos de un sprint completo.

Ejemplo: Ver dependencias de un item

Tool: get_work_item_dependencies
Parametros:
workItemId: "uuid-del-item"

Devuelve dos listas:

  • blocks: items que este item bloquea.
  • blockedBy: items que bloquean a este item.