Saltar al contenido principal

Tools - Work Items

Los work items son la unidad fundamental de trabajo en Almirant. Pueden ser de tipo task, story, feature, epic o idea, y se organizan en columnas de un board. Esta seccion documenta todos los tools disponibles para crear, consultar, actualizar y gestionar work items via MCP.

Estado de un work item

Los work items no tienen un campo status explicito. Su estado se deriva de la columna del board en la que se encuentran (por ejemplo, "Backlog", "In Progress", "Done").


Consulta

list_work_items

Lista work items con paginacion y filtros opcionales. Si hay un projectId configurado en la sesion MCP, filtra automaticamente por ese proyecto.

Parametros:

NombreTipoRequeridoDescripcion
pagenumberNoNumero de pagina (defecto: 1)
limitnumberNoElementos por pagina (defecto: 50, max: 100)
searchstringNoBuscar por titulo o descripcion
projectIdstring (UUID)NoFiltrar por proyecto (usa el de sesion como fallback)
boardIdstring (UUID)NoFiltrar por board
boardColumnIdstring (UUID)NoFiltrar por columna del board
parentIdstring (UUID)NoFiltrar por item padre (hijos de un feature/epic)
typestringNoFiltrar por tipo: epic, feature, story, task, idea
prioritystringNoFiltrar por prioridad: low, medium, high, urgent
assigneestringNoFiltrar por asignado

Ejemplo:

{
"boardId": "b1234567-89ab-cdef-0123-456789abcdef",
"type": "task",
"priority": "high"
}

Respuesta:

{
"workItems": [
{
"id": "wi-001",
"taskId": "A-T-37",
"title": "Implementar autenticacion OAuth",
"type": "task",
"priority": "high",
"assignee": "javier",
"boardId": "b1234567-...",
"boardColumnId": "col-003",
"columnName": "In Progress",
"parentId": "wi-feature-01",
"projectId": "550e8400-..."
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 1,
"totalPages": 1
}
}

resolve_work_items

Resuelve identificadores de work items (task IDs legibles como "A-T-37" o UUIDs) en objetos completos. Opcionalmente expande items no-task a sus tareas hoja recursivamente.

Parametros:

NombreTipoRequeridoDescripcion
idsstring[]SiLista de identificadores mixtos (task IDs como A-T-37, A-F-12, o UUIDs)
includeLeafTasksbooleanNoCuando true (defecto), resuelve recursivamente items no-task a tareas hoja
maxDepthnumberNoProfundidad maxima de recursion (defecto: 3, max: 10)

Ejemplo:

{
"ids": ["A-T-37", "A-F-12", "550e8400-e29b-41d4-a716-446655440000"],
"includeLeafTasks": true
}

Respuesta:

{
"inputIds": ["A-T-37", "A-F-12", "550e8400-..."],
"notFound": [],
"items": [
{
"id": "wi-001",
"taskId": "A-T-37",
"title": "Implementar login",
"type": "task",
"resolvedFrom": ["A-T-37"]
},
{
"id": "wi-003",
"taskId": "A-T-40",
"title": "Validar tokens",
"type": "task",
"resolvedFrom": ["A-F-12"]
}
]
}

get_work_item_events

Obtiene el historial de eventos (changelog) de un work item. Incluye eventos de creacion, actualizacion, movimiento entre columnas, sesiones de IA y comentarios.

Parametros:

NombreTipoRequeridoDescripcion
workItemIdstring (UUID)SiID del work item
eventTypestringNoFiltrar por tipo: created, updated, moved, deleted, attachment_added, attachment_removed, ai_session, comment
limitnumberNoMaximo de eventos (defecto: 50, max: 200)

Ejemplo:

{
"workItemId": "wi-001",
"eventType": "moved",
"limit": 20
}

Respuesta:

{
"workItemId": "wi-001",
"taskId": "A-T-37",
"title": "Implementar login",
"totalEvents": 3,
"events": [
{
"eventType": "moved",
"data": {
"fromColumn": "To Do",
"toColumn": "In Progress"
},
"createdAt": "2025-02-01T10:30:00.000Z"
}
]
}

Creacion

create_work_item

Crea un work item con control total sobre board, columna, tipo y proyecto. Requiere especificar boardId y boardColumnId explicitamente.

Parametros:

NombreTipoRequeridoDescripcion
titlestringSiTitulo del work item
descriptionstringNoDescripcion detallada
typestringSiTipo: epic, feature, story, task, idea
prioritystringNoPrioridad: low, medium, high, urgent
boardIdstring (UUID)SiBoard donde crear el item
boardColumnIdstring (UUID)SiColumna inicial
projectIdstring (UUID)NoProyecto (usa el de sesion MCP como fallback)
assigneestringNoNombre o identificador del asignado
parentIdstring (UUID)NoID del work item padre
metadataobjectNoMetadatos arbitrarios (ej: { definitionOfDone: "..." })

Ejemplo:

{
"title": "Implementar endpoint de login",
"description": "Crear endpoint POST /api/auth/login con validacion JWT",
"type": "task",
"priority": "high",
"boardId": "b1234567-89ab-cdef-0123-456789abcdef",
"boardColumnId": "col-001",
"parentId": "wi-feature-01"
}

create_task

Atajo para crear una tarea. Fuerza type=task y selecciona automaticamente el board por defecto del proyecto y la columna "Backlog". Requiere projectId configurado en la sesion MCP.

Parametros:

NombreTipoRequeridoDescripcion
titlestringSiTitulo de la tarea
descriptionstringNoDescripcion detallada
prioritystringNoPrioridad: low, medium, high, urgent
parentIdstring (UUID)NoID del work item padre
metadataobjectNoMetadatos arbitrarios

Ejemplo:

{
"title": "Anadir validacion de email",
"priority": "medium",
"parentId": "wi-feature-01"
}

create_story

Atajo para crear una story. Fuerza type=story y selecciona automaticamente el board y columna "Backlog".

Parametros:

NombreTipoRequeridoDescripcion
titlestringSiTitulo de la story
descriptionstringNoDescripcion detallada
prioritystringNoPrioridad: low, medium, high, urgent
parentIdstring (UUID)NoID del feature padre
metadataobjectNoMetadatos arbitrarios

Ejemplo:

{
"title": "Como usuario quiero poder iniciar sesion con Google",
"priority": "high",
"parentId": "wi-feature-01"
}

create_feature

Atajo para crear un feature. Fuerza type=feature y selecciona automaticamente el board y columna "Backlog".

Parametros:

NombreTipoRequeridoDescripcion
titlestringSiTitulo del feature
descriptionstringNoDescripcion detallada
prioritystringNoPrioridad: low, medium, high, urgent
parentIdstring (UUID)NoID del epic padre
metadataobjectNoMetadatos arbitrarios

Ejemplo:

{
"title": "Sistema de autenticacion",
"description": "Autenticacion OAuth con Google y email/password",
"priority": "high"
}

create_epic

Atajo para crear un epic. Fuerza type=epic y selecciona automaticamente el board y columna "Backlog".

Parametros:

NombreTipoRequeridoDescripcion
titlestringSiTitulo del epic
descriptionstringNoDescripcion detallada
prioritystringNoPrioridad: low, medium, high, urgent
metadataobjectNoMetadatos arbitrarios

Ejemplo:

{
"title": "Epic: Seguridad y autenticacion",
"description": "Todos los flujos de autenticacion y autorizacion de la plataforma",
"priority": "urgent"
}

Actualizacion y movimiento

update_work_item

Actualiza los campos de un work item existente. Solo los campos proporcionados se modifican. Los metadatos se fusionan con los existentes (no se sobreescriben).

Parametros:

NombreTipoRequeridoDescripcion
idstring (UUID)SiID del work item
titlestringNoNuevo titulo
descriptionstringNoNueva descripcion
typestringNoNuevo tipo: epic, feature, story, task, idea
prioritystringNoNueva prioridad: low, medium, high, urgent
assigneestringNoNuevo asignado
boardColumnIdstring (UUID)NoMover a otra columna
parentIdstring (UUID) o nullNoNuevo padre (null para desasociar)
metadataobjectNoMetadatos a fusionar con los existentes

Ejemplo:

{
"id": "wi-001",
"priority": "urgent",
"metadata": {
"definitionOfDone": "Tests unitarios + integration tests pasando"
}
}

move_work_item

Mueve un work item a una columna diferente del board. Gestiona automaticamente los flags de procesamiento IA segun la columna destino.

Parametros:

NombreTipoRequeridoDescripcion
workItemIdstring (UUID)SiID del work item a mover
boardColumnIdstring (UUID)SiID de la columna destino
isAutoSyncbooleanNotrue cuando el movimiento es por sincronizacion en cascada (defecto: false)
setAiProcessingbooleanNoForzar isAiProcessing=true independientemente de la columna destino
aiProviderstringNoProveedor de IA (openai, anthropic). Cuando se combina con setAiProcessing, establece metadatos de proveedor

Ejemplo:

{
"workItemId": "wi-001",
"boardColumnId": "col-003",
"setAiProcessing": true,
"aiProvider": "anthropic"
}
Comportamiento automatico de AI flags
  • Al mover a In Progress: se activa isAiProcessing=true automaticamente
  • Al mover a Review o Done: se desactiva isAiProcessing=false automaticamente
  • Con setAiProcessing=true: se fuerza el flag independientemente de la columna

batch_move_work_items

Mueve multiples work items a una columna destino en una unica operacion. Opcionalmente establece flags de procesamiento IA para todos los items movidos.

Parametros:

NombreTipoRequeridoDescripcion
workItemIdsstring[] (UUID)SiLista de IDs de work items a mover
boardColumnIdstring (UUID)SiID de la columna destino
setAiProcessingbooleanNoActivar isAiProcessing=true para todos los items
aiProviderstringNoProveedor de IA a registrar en los metadatos

Ejemplo:

{
"workItemIds": ["wi-001", "wi-002", "wi-003"],
"boardColumnId": "col-003",
"setAiProcessing": true,
"aiProvider": "anthropic"
}

Respuesta:

{
"movedCount": 3,
"items": [ ... ],
"note": "batch_move_work_items uses bulk update and does not run cascade/position logic"
}

delete_work_item

Elimina permanentemente un work item por su ID.

Parametros:

NombreTipoRequeridoDescripcion
idstring (UUID)SiID del work item a eliminar

Ejemplo:

{
"id": "wi-001"
}

Respuesta:

{
"deleted": true,
"id": "wi-001"
}

Prompts de implementacion

generate_work_item_prompt

Genera un prompt de implementacion enriquecido con el contexto del proyecto (tech stack, repositorios, tareas hermanas, flujo del board). El prompt es generado por IA y se guarda en los metadatos del work item.

Parametros:

NombreTipoRequeridoDescripcion
idstring (UUID)SiID del work item

Ejemplo:

{
"id": "wi-001"
}

Respuesta:

{
"prompt": "## Contexto del proyecto\n...\n## Tarea\n...",
"context": {
"workItemId": "wi-001",
"taskId": "A-T-37",
"title": "Implementar login",
"type": "task",
"projectName": "Mi Proyecto",
"siblingsCount": 4,
"hasParent": true
},
"savedToDb": true
}

get_work_item_prompt

Recupera el prompt de implementacion previamente generado y almacenado en los metadatos del work item.

Parametros:

NombreTipoRequeridoDescripcion
idstring (UUID)SiID del work item

Ejemplo:

{
"id": "wi-001"
}

Respuesta:

{
"prompt": "## Contexto del proyecto\n...",
"context": {
"workItemId": "wi-001",
"taskId": "A-T-37",
"title": "Implementar login",
"type": "task"
},
"generatedAt": "2025-02-01T10:00:00.000Z"
}

Flujo de review y validacion

complete_review

Completa la revision de codigo de un work item. Si la revision pasa, el item se mueve a Testing. Si falla, vuelve a In Progress. Los metadatos de revision se almacenan en el work item.

Parametros:

NombreTipoRequeridoDescripcion
workItemIdstring (UUID)SiID del work item
resultstringSiResultado: pass (mueve a Testing) o fail (mueve a In Progress)
summarystringSiResumen de la revision
issuesstring[]NoLista de problemas encontrados (relevante cuando result=fail)
reviewedFilesstring[]NoLista de archivos revisados

Ejemplo:

{
"workItemId": "wi-001",
"result": "pass",
"summary": "Codigo limpio, tests pasando, cumple la definicion de done",
"reviewedFiles": ["src/auth/login.ts", "src/auth/login.test.ts"]
}

complete_validation

Completa atomicamente la validacion de una tarea: mueve una validacion aprobada a su columna destino, normalmente To Document, limpia los flags de IA, fusiona metadatos de documentacion y resultados de tests, y registra la sesion de IA. Si se pasa por error la columna Validating, la tool redirige a To Document cuando esa columna existe en el board.

Parametros:

NombreTipoRequeridoDescripcion
workItemIdstring (UUID)SiID del work item
toDocumentColumnIdstring (UUID)NoID de la columna destino para una validacion aprobada. Preferiblemente la columna To Document
validatingColumnIdstring (UUID)NoAlias legacy del destino. Si apunta a Validating, la tool intentara redirigir a To Document
documentationobjectNoMetadatos de documentacion (ver subobjeto abajo)
documentation.summarystringNoResumen de lo validado
documentation.screenshotsstring[]NoURLs de screenshots adjuntos
documentation.mermaidDiagramsstring[]NoDiagramas Mermaid como strings
documentation.changelogEntrystringNoEntrada de changelog
testResultsobjectNoResultados de tests (ver subobjeto abajo)
testResults.passednumberNoTests pasados
testResults.failednumberNoTests fallidos
testResults.testFilesstring[]NoPaths de archivos de test
modelstringSiModelo de IA usado (ej: claude-opus-4-6)
providerstringNoProveedor de IA (defecto: anthropic)
totalTokensnumberSiTotal de tokens consumidos
durationMsnumberNoDuracion de la sesion en milisegundos
taskIdstringNoTask ID legible (ej: A-T-37)

Ejemplo:

{
"workItemId": "wi-001",
"toDocumentColumnId": "col-to-document",
"documentation": {
"summary": "Login con Google verificado end-to-end",
"screenshots": ["/api/work-items/wi-001/attachments/local?key=screenshot.png"]
},
"testResults": {
"passed": 12,
"failed": 0,
"testFiles": ["src/auth/__tests__/login.test.ts"]
},
"model": "claude-opus-4-6",
"provider": "anthropic",
"totalTokens": 45000,
"durationMs": 120000
}

complete_ai_task

Completa atomicamente el trabajo de IA sobre una tarea: mueve a Review, limpia los flags de IA, establece userActions y registra la sesion con consumo de tokens. Reemplaza la necesidad de llamar move_work_item + update_work_item + record_ai_session por separado.

Parametros:

NombreTipoRequeridoDescripcion
workItemIdstring (UUID)SiID del work item
reviewColumnIdstring (UUID)SiID de la columna Review
userActionsstringNoLista en Markdown de pasos manuales que el usuario debe verificar
modelstringSiModelo de IA usado (ej: claude-opus-4-6)
providerstringNoProveedor (defecto: openai)
totalTokensnumberSiTotal de tokens consumidos
durationMsnumberNoDuracion de la sesion en ms
sessionTypestringNoTipo de sesion (defecto: implement)
taskIdstringNoTask ID legible (ej: A-T-37)

Ejemplo:

{
"workItemId": "wi-001",
"reviewColumnId": "col-004",
"userActions": "- Verificar que el login redirige a /dashboard\n- Comprobar que el token se guarda en cookies",
"model": "claude-opus-4-6",
"provider": "anthropic",
"totalTokens": 85000,
"durationMs": 300000,
"taskId": "A-T-37"
}

Respuesta:

{
"completed": true,
"workItemId": "wi-001",
"movedTo": "Review",
"sessionId": "session-uuid",
"estimatedCost": "$0.1275",
"totalTokens": 85000
}
Uso recomendado

Usa complete_ai_task al finalizar la implementacion de una tarea por IA. Es la forma mas eficiente de cerrar el ciclo de trabajo: un unico tool call que mueve, limpia flags y registra costes.


Adjuntos

upload_work_item_attachment

Sube un adjunto a un work item desde una ruta de archivo local. Disenado para tooling de IA (por ejemplo, adjuntar screenshots de Playwright).

Parametros:

NombreTipoRequeridoDescripcion
workItemIdstring (UUID)SiID del work item
filePathstringSiRuta absoluta o relativa al repo (permitido: /tmp/* o bajo el directorio de trabajo)
fileNamestringNoNombre del archivo a almacenar (defecto: basename del path)
mimeTypestringNoTipo MIME (defecto: inferido del nombre)
uploadedBystringNoEtiqueta del uploader
metadataobjectNoMetadatos del adjunto (ej: { kind: "review-screenshot", page: "/boards" })
deleteAfterUploadbooleanNoEliminar el archivo local tras la subida (defecto: true)

Ejemplo:

{
"workItemId": "wi-001",
"filePath": "/tmp/screenshot-login.png",
"metadata": {
"kind": "review-screenshot",
"page": "/sign-in"
}
}

Contexto avanzado

get_implement_context

Resuelve identificadores en tareas hoja pendientes, clasifica por estado de columna, incluye mapeo de boards, dependencias intra-batch y oleadas de ejecucion precalculadas.

Parametros:

NombreTipoRequeridoDescripcion
idsstring[]SiLista de task IDs/UUIDs a implementar
projectIdstring (UUID)NoID del proyecto (defecto: sesion MCP)

Ejemplo:

{
"ids": ["A-T-37", "A-T-38", "A-F-12"]
}

get_ideation_context

Obtiene contexto de ideacion: work items relacionados por keywords, padres potenciales y configuracion dinamica de boards.

Parametros:

NombreTipoRequeridoDescripcion
keywordsstring[]SiPalabras clave de busqueda
projectIdstring (UUID)NoID del proyecto (defecto: sesion MCP)
limitnumberNoLimite de resultados (defecto: 20, max: 50)

Ejemplo:

{
"keywords": ["autenticacion", "OAuth", "login"]
}

get_review_context

Obtiene contexto completo de review para una tarea o feature: detalles del item, columnas de enrutamiento, dependencias, items hermanos e hijos revisables.

Parametros:

NombreTipoRequeridoDescripcion
taskIdstringSiIdentificador de la tarea (UUID o taskId como A-T-37)
featureReviewbooleanNoCuando true, incluye hijos revisables para review de feature/epic

Ejemplo:

{
"taskId": "A-T-37",
"featureReview": false
}

get_validate_context

Resuelve identificadores en tareas hoja, clasifica por columna del board (revisable en Review, testeable en Testing, omitido en otros casos), incluye mapeo de boards con columna Validating y resumenes de items padre.

Parametros:

NombreTipoRequeridoDescripcion
idsstring[]SiLista de task IDs/UUIDs a validar
projectIdstring (UUID)NoID del proyecto (defecto: sesion MCP)

Ejemplo:

{
"ids": ["A-T-37", "A-T-38"]
}