Pular para o conteúdo principal

Ferramentas - Work Items

Os work items são a unidade fundamental de trabalho no Almirant. Podem ser do tipo task, story, feature, epic ou idea e são organizados em colunas de um board. Esta seção documenta todas as ferramentas disponíveis para criar, consultar, atualizar e gerenciar work items por MCP.

Estado de um work item

Os work items não têm um campo status explícito. Seu estado é derivado da coluna do board em que se encontram (por exemplo, "Backlog", "In Progress", "Done").


Consulta

list_work_items

Lista work items com paginação e filtros opcionais. Se houver um projectId configurado na sessão MCP, filtra automaticamente por esse projeto.

Parâmetros:

NomeTipoObrigatórioDescrição
pagenumberNãoNúmero da página (padrão: 1)
limitnumberNãoItens por página (padrão: 50, máx.: 100)
searchstringNãoBuscar por título ou descrição
projectIdstring (UUID)NãoFiltrar por projeto (usa o da sessão como fallback)
boardIdstring (UUID)NãoFiltrar por board
boardColumnIdstring (UUID)NãoFiltrar por coluna do board
parentIdstring (UUID)NãoFiltrar por item pai (filhos de uma feature/epic)
typestringNãoFiltrar por tipo: epic, feature, story, task, idea
prioritystringNãoFiltrar por prioridade: low, medium, high, urgent
assigneestringNãoFiltrar por responsável

Exemplo:

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

Resposta:

{
"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

Resolve identificadores de work items (task IDs legíveis como "A-T-37" ou UUIDs) em objetos completos. Opcionalmente expande itens que não são task em suas tarefas folha recursivamente.

Parâmetros:

NomeTipoObrigatórioDescrição
idsstring[]SimLista de identificadores mistos (task IDs como A-T-37, A-F-12 ou UUIDs)
includeLeafTasksbooleanNãoQuando true (padrão), resolve recursivamente itens que não são task em tarefas folha
maxDepthnumberNãoProfundidade máxima de recursão (padrão: 3, máx.: 10)

Exemplo:

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

Resposta:

{
"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

Obtém o histórico de eventos (changelog) de um work item. Inclui eventos de criação, atualização, movimentação entre colunas, sessões de IA e comentários.

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdstring (UUID)SimID do work item
eventTypestringNãoFiltrar por tipo: created, updated, moved, deleted, attachment_added, attachment_removed, ai_session, comment
limitnumberNãoMáximo de eventos (padrão: 50, máx.: 200)

Exemplo:

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

Resposta:

{
"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"
}
]
}

Criação

create_work_item

Cria um work item com controle total sobre board, coluna, tipo e projeto. Exige que boardId e boardColumnId sejam especificados explicitamente.

Parâmetros:

NomeTipoObrigatórioDescrição
titlestringSimTítulo do work item
descriptionstringNãoDescrição detalhada
typestringSimTipo: epic, feature, story, task, idea
prioritystringNãoPrioridade: low, medium, high, urgent
boardIdstring (UUID)SimBoard onde criar o item
boardColumnIdstring (UUID)SimColuna inicial
projectIdstring (UUID)NãoProjeto (usa o da sessão MCP como fallback)
assigneestringNãoNome ou identificador do responsável
parentIdstring (UUID)NãoID do work item pai
metadataobjectNãoMetadados arbitrários (ex.: { definitionOfDone: "..." })

Exemplo:

{
"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

Atalho para criar uma tarefa. Força type=task e seleciona automaticamente o board padrão do projeto e a coluna "Backlog". Exige projectId configurado na sessão MCP.

Parâmetros:

NomeTipoObrigatórioDescrição
titlestringSimTítulo da tarefa
descriptionstringNãoDescrição detalhada
prioritystringNãoPrioridade: low, medium, high, urgent
parentIdstring (UUID)NãoID do work item pai
metadataobjectNãoMetadados arbitrários

Exemplo:

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

create_story

Atalho para criar uma story. Força type=story e seleciona automaticamente o board e a coluna "Backlog".

Parâmetros:

NomeTipoObrigatórioDescrição
titlestringSimTítulo da story
descriptionstringNãoDescrição detalhada
prioritystringNãoPrioridade: low, medium, high, urgent
parentIdstring (UUID)NãoID da feature pai
metadataobjectNãoMetadados arbitrários

Exemplo:

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

create_feature

Atalho para criar uma feature. Força type=feature e seleciona automaticamente o board e a coluna "Backlog".

Parâmetros:

NomeTipoObrigatórioDescrição
titlestringSimTítulo da feature
descriptionstringNãoDescrição detalhada
prioritystringNãoPrioridade: low, medium, high, urgent
parentIdstring (UUID)NãoID do epic pai
metadataobjectNãoMetadados arbitrários

Exemplo:

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

create_epic

Atalho para criar um epic. Força type=epic e seleciona automaticamente o board e a coluna "Backlog".

Parâmetros:

NomeTipoObrigatórioDescrição
titlestringSimTítulo do epic
descriptionstringNãoDescrição detalhada
prioritystringNãoPrioridade: low, medium, high, urgent
metadataobjectNãoMetadados arbitrários

Exemplo:

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

Atualização e movimentação

update_work_item

Atualiza os campos de um work item existente. Apenas os campos fornecidos são modificados. Os metadados são mesclados aos existentes (não são substituídos).

Parâmetros:

NomeTipoObrigatórioDescrição
idstring (UUID)SimID do work item
titlestringNãoNovo título
descriptionstringNãoNova descrição
typestringNãoNovo tipo: epic, feature, story, task, idea
prioritystringNãoNova prioridade: low, medium, high, urgent
assigneestringNãoNovo responsável
boardColumnIdstring (UUID)NãoMover para outra coluna
parentIdstring (UUID) ou nullNãoNovo pai (null para desvincular)
metadataobjectNãoMetadados a mesclar aos existentes

Exemplo:

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

move_work_item

Move um work item para uma coluna diferente do board. Gerencia automaticamente as flags de processamento de IA de acordo com a coluna de destino.

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdstring (UUID)SimID do work item a mover
boardColumnIdstring (UUID)SimID da coluna de destino
isAutoSyncbooleanNãotrue quando a movimentação ocorre por sincronização em cascata (padrão: false)
setAiProcessingbooleanNãoForçar isAiProcessing=true independentemente da coluna de destino
aiProviderstringNãoProvedor de IA (openai, anthropic). Quando combinado com setAiProcessing, define metadados do provedor

Exemplo:

{
"workItemId": "wi-001",
"boardColumnId": "col-003",
"setAiProcessing": true,
"aiProvider": "anthropic"
}
Comportamento automático das flags de IA
  • Ao mover para In Progress: isAiProcessing=true é ativado automaticamente
  • Ao mover para Review ou Done: isAiProcessing=false é desativado automaticamente
  • Com setAiProcessing=true: a flag é forçada independentemente da coluna

batch_move_work_items

Move vários work items para uma coluna de destino em uma única operação. Opcionalmente define flags de processamento de IA para todos os itens movidos.

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdsstring[] (UUID)SimLista de IDs de work items a mover
boardColumnIdstring (UUID)SimID da coluna de destino
setAiProcessingbooleanNãoAtivar isAiProcessing=true para todos os itens
aiProviderstringNãoProvedor de IA a registrar nos metadados

Exemplo:

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

Resposta:

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

delete_work_item

Exclui permanentemente um work item pelo seu ID.

Parâmetros:

NomeTipoObrigatórioDescrição
idstring (UUID)SimID do work item a excluir

Exemplo:

{
"id": "wi-001"
}

Resposta:

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

Prompts de implementação

generate_work_item_prompt

Gera um prompt de implementação enriquecido com o contexto do projeto (tech stack, repositórios, tarefas irmãs, fluxo do board). O prompt é gerado por IA e salvo nos metadados do work item.

Parâmetros:

NomeTipoObrigatórioDescrição
idstring (UUID)SimID do work item

Exemplo:

{
"id": "wi-001"
}

Resposta:

{
"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 o prompt de implementação gerado anteriormente e armazenado nos metadados do work item.

Parâmetros:

NomeTipoObrigatórioDescrição
idstring (UUID)SimID do work item

Exemplo:

{
"id": "wi-001"
}

Resposta:

{
"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"
}

Fluxo de review e validação

complete_review

Conclui a revisão de código de um work item. Se a revisão for aprovada, o item é movido para Testing. Se falhar, volta para In Progress. Os metadados de revisão são armazenados no work item.

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdstring (UUID)SimID do work item
resultstringSimResultado: pass (move para Testing) ou fail (move para In Progress)
summarystringSimResumo da revisão
issuesstring[]NãoLista de problemas encontrados (relevante quando result=fail)
reviewedFilesstring[]NãoLista de arquivos revisados

Exemplo:

{
"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

Conclui atomicamente a validação de uma tarefa: move uma validação aprovada para sua coluna de destino, normalmente To Document, limpa as flags de IA, mescla metadados de documentação e resultados de testes e registra a sessão de IA. Se a coluna Validating for informada por engano, a tool redireciona para To Document quando essa coluna existe no board.

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdstring (UUID)SimID do work item
toDocumentColumnIdstring (UUID)NãoID da coluna de destino para uma validação aprovada. Preferencialmente a coluna To Document
validatingColumnIdstring (UUID)NãoAlias legado do destino. Se apontar para Validating, a tool tentará redirecionar para To Document
documentationobjectNãoMetadados de documentação (veja o subobjeto abaixo)
documentation.summarystringNãoResumo do que foi validado
documentation.screenshotsstring[]NãoURLs dos screenshots anexados
documentation.mermaidDiagramsstring[]NãoDiagramas Mermaid como strings
documentation.changelogEntrystringNãoEntrada de changelog
testResultsobjectNãoResultados de testes (veja o subobjeto abaixo)
testResults.passednumberNãoTestes aprovados
testResults.failednumberNãoTestes falhos
testResults.testFilesstring[]NãoPaths de arquivos de teste
modelstringSimModelo de IA usado (ex.: claude-opus-4-6)
providerstringNãoProvedor de IA (padrão: anthropic)
totalTokensnumberSimTotal de tokens consumidos
durationMsnumberNãoDuração da sessão em milissegundos
taskIdstringNãoTask ID legível (ex.: A-T-37)

Exemplo:

{
"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

Conclui atomicamente o trabalho de IA em uma tarefa: move para Review, limpa as flags de IA, define userActions e registra a sessão com consumo de tokens. Substitui a necessidade de chamar move_work_item + update_work_item + record_ai_session separadamente.

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdstring (UUID)SimID do work item
reviewColumnIdstring (UUID)SimID da coluna Review
userActionsstringNãoLista em Markdown de etapas manuais que o usuário deve verificar
modelstringSimModelo de IA usado (ex.: claude-opus-4-6)
providerstringNãoProvedor (padrão: openai)
totalTokensnumberSimTotal de tokens consumidos
durationMsnumberNãoDuração da sessão em ms
sessionTypestringNãoTipo de sessão (padrão: implement)
taskIdstringNãoTask ID legível (ex.: A-T-37)

Exemplo:

{
"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"
}

Resposta:

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

Use complete_ai_task ao finalizar a implementação de uma tarefa por IA. É a forma mais eficiente de encerrar o ciclo de trabalho: uma única chamada de tool que move, limpa flags e registra custos.


Anexos

upload_work_item_attachment

Envia um anexo para um work item a partir de um caminho de arquivo local. Projetado para tooling de IA (por exemplo, anexar screenshots do Playwright).

Parâmetros:

NomeTipoObrigatórioDescrição
workItemIdstring (UUID)SimID do work item
filePathstringSimCaminho absoluto ou relativo ao repositório (permitido: /tmp/* ou abaixo do diretório de trabalho)
fileNamestringNãoNome do arquivo a armazenar (padrão: basename do caminho)
mimeTypestringNãoTipo MIME (padrão: inferido pelo nome)
uploadedBystringNãoRótulo de quem enviou
metadataobjectNãoMetadados do anexo (ex.: { kind: "review-screenshot", page: "/boards" })
deleteAfterUploadbooleanNãoExcluir o arquivo local após o envio (padrão: true)

Exemplo:

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

Contexto avançado

get_implement_context

Resolve identificadores em tarefas folha pendentes, classifica por estado da coluna, inclui mapeamento de boards, dependências intra-batch e ondas de execução pré-calculadas.

Parâmetros:

NomeTipoObrigatórioDescrição
idsstring[]SimLista de task IDs/UUIDs a implementar
projectIdstring (UUID)NãoID do projeto (padrão: sessão MCP)

Exemplo:

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

get_ideation_context

Obtém contexto de ideação: work items relacionados por keywords, possíveis pais e configuração dinâmica de boards.

Parâmetros:

NomeTipoObrigatórioDescrição
keywordsstring[]SimPalavras-chave de busca
projectIdstring (UUID)NãoID do projeto (padrão: sessão MCP)
limitnumberNãoLimite de resultados (padrão: 20, máx.: 50)

Exemplo:

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

get_review_context

Obtém contexto completo de review para uma tarefa ou feature: detalhes do item, colunas de roteamento, dependências, itens irmãos e filhos revisáveis.

Parâmetros:

NomeTipoObrigatórioDescrição
taskIdstringSimIdentificador da tarefa (UUID ou taskId como A-T-37)
featureReviewbooleanNãoQuando true, inclui filhos revisáveis para review de feature/epic

Exemplo:

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

get_validate_context

Resolve identificadores em tarefas folha, classifica por coluna do board (revisável em Review, testável em Testing, ignorado nos outros casos), inclui mapeamento de boards com a coluna Validating e resumos dos itens pai.

Parâmetros:

NomeTipoObrigatórioDescrição
idsstring[]SimLista de task IDs/UUIDs a validar
projectIdstring (UUID)NãoID do projeto (padrão: sessão MCP)

Exemplo:

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