Esta skill não presume o board de ninguém. Ela aprende o fluxo do time uma vez, grava e depois opera em cima disso — em Jira ou Trello.
O que muda entre os dois é só a camada de ferramenta; o miolo (colunas com critério de entrada e saída, campos e o momento de preencher cada um) é o mesmo.
| Modo | Quando | O que faz |
|---|---|---|
| Setup | não existe .claude/board-workflow.md (ou pediram para reconfigurar) |
entrevista + descoberta pela API, grava o mapa |
| Operação | o arquivo existe | criar, refinar, mover, comentar e consultar cards seguindo o mapa |
Primeira coisa, sempre: leia .claude/board-workflow.md. Se existir, não repita a
entrevista — opere. Se faltar só um dado, pergunte apenas aquele e acrescente ao arquivo.
Descubra qual ferramenta o time usa antes de qualquer coisa — pergunte, ou deduza pelas ferramentas disponíveis:
| Ferramenta | Como operar | Verificar |
|---|---|---|
| Jira | MCP do Atlassian (ferramentas jira_*) |
as tools jira_* existem? |
| Trello | MCP do Trello, se houver; senão API REST com chave+token do usuário | há MCP de Trello? senão, a pessoa tem chave/token? |
- Confirme que as ferramentas existem antes de prometer qualquer coisa; se não existirem, diga exatamente o que falta conectar e pare.
-
Nunca peça, imprima ou passe token/senha em prompt, log ou
curlvisível. No Trello, se for preciso usar a API, oriente a pessoa a guardarTRELLO_KEY/TRELLO_TOKENem variável de ambiente ou.envfora do git, e leia de lá — sem ecoar o valor.
Cada pergunta que a API já responde é uma pergunta a menos. Antes de abrir a boca:
| Descobrir | Jira | Trello |
|---|---|---|
| Onde o time trabalha | jira_get_all_projects |
quadros do usuário (/members/me/boards) |
| O board | jira_get_agile_boards |
o próprio quadro |
| As colunas | status do workflow (jira_get_transitions) |
listas do quadro (/boards/{id}/lists) |
| Tipos de item | jira_get_project_issue_types |
Trello não tem tipo nativo — o time usa labels |
| Campos e ids |
jira_search_fields, jira_get_create_fields
|
Custom Fields do quadro (/boards/{id}/customFields), se o Power-Up estiver ativo |
| Quem participa | — | membros do quadro (/boards/{id}/members) |
| Ciclos | jira_get_sprints_from_board |
Trello não tem sprint — se o time usa, é por label ou quadro separado |
Traga listas prontas para a pessoa escolher ("achei 3 projetos: A, B, C — qual?"), em vez de pedir para ela digitar nomes.
1. Onde — projeto e board. Se houver mais de um board no projeto, qual é o do time.
2. O fluxo (colunas) — liste as colunas reais encontradas (status no Jira, listas no Trello) e pergunte o que cada etapa significa para o time: onde o card nasce, onde entra em desenvolvimento, onde vai depois do PR aberto, onde o QA atua, onde encerra. Se a pessoa não tiver fluxo definido, ofereça o quadro padrão da seção abaixo.
3. Tipos de item — no Jira, quais issue types o time usa (Tarefa, Bug, História, Épico) e
quando usar cada um; se há épico pai obrigatório. No Trello não existe tipo nativo: pergunte
se o time separa por label (bug, feature, débito) e registre a convenção.
4. Campos — e o momento de cada um. Esta é a parte que mais evita retrabalho. Liste os
campos existentes (Jira: jira_get_create_fields; Trello: custom fields do quadro) e, para cada
um que o time usa, registre id, obrigatoriedade e em que momento é preenchido. No Trello,
quadro sem o Power-Up de Custom Fields: use seções fixas na descrição do card (## Critério de aceitação, ## Plano de teste, ## Solução técnica) e registre isso como o "campo" — o que
importa é o momento de preencher, não onde mora.
| Campo | Id | Obrigatório? | Momento |
|---|---|---|---|
| Critério de aceitação | customfield_… |
sim | no refinamento |
| Plano de teste | customfield_… |
sim | antes de ir para desenvolvimento |
| Solução técnica | customfield_… |
não | no refinamento |
| Tamanho / estimativa | customfield_… |
sim | no refinamento |
| Data de entrega | customfield_… |
sim | antes de mover para desenvolvimento |
| Link do PR |
customfield_… ou comentário |
sim | ao abrir o PR |
Pergunte explicitamente: "algum campo é exigido para mudar de coluna?" — no Jira é a causa mais comum de erro (transição recusa campo fora da tela); no Trello não há bloqueio técnico, o que torna o acordo do time a única garantia.
5. Convenções de escrita — idioma do card (o corpo costuma ser no idioma do produto, enquanto commit/PR ficam em inglês), template de descrição, labels obrigatórias, quem é reporter/assignee por padrão, e se cards feitos com apoio de agente levam alguma label de origem.
6. Autonomia — o que o agente pode fazer sozinho e o que exige confirmação. Padrão seguro e recomendado: criar/mover/atualizar um card = pode; criar em lote, comentar e concluir card = só com confirmação explícita.
Escreva em .claude/board-workflow.md (versione junto com o projeto — o time todo passa a usar
o mesmo mapa). Formato:
# Fluxo de trabalho no board — <time/projeto>
## Onde
- Ferramenta: Jira | Trello
- Jira: projeto <CHAVE> · board <nome> (id <n>) · <sua-instancia>.atlassian.net
- Trello: quadro <nome> (id <n>) · organização <nome>
## Fluxo (colunas reais, em ordem)
Aguardando → Em Desenvolvimento → Code Review → Qualidade → Validação → Pronto
| Etapa | Status (Jira) / Lista (Trello) | Entra quando | Sai quando | Quem age |
|---|---|---|---|---|
## Tipos de item (issue type no Jira · label no Trello)
| Tipo | Id / label | Usar para |
## Campos
| Campo | Id (ou seção da descrição) | Obrigatório | Momento de preencher | Exigido para mudar de coluna? |
## Convenções
- Idioma do card: … · Template de descrição: … · Labels: … · Estimativa: …
## Autonomia do agente
- Pode sem perguntar: …
- Exige confirmação: …Ao final, mostre um resumo do que entendeu e confirme antes de gravar. Mudou o fluxo depois? Atualize o arquivo — ele é a fonte da verdade, não a memória da conversa.
Seis colunas, do que está esperando ao que está pronto. Cada uma com critério claro de entrada e saída — coluna sem critério vira depósito de card parado.
| # | Coluna | Significa | Sai quando |
|---|---|---|---|
| 1 | Aguardando | Demanda registrada e priorizada, esperando alguém pegar; é aqui que ela é refinada (critério de aceitação, solução técnica, estimativa) | Está claro o suficiente para começar sem perguntar e alguém assume |
| 2 | Em Desenvolvimento | Alguém está codando (assignee definido) | Código pronto, testado localmente, PR aberto |
| 3 | Code Review | PR aberto aguardando revisão | PR aprovado e mergeado |
| 4 | Qualidade | QA validando em ambiente de teste | Cenários do plano de teste passaram |
| 5 | Validação | Quem pediu confere o resultado (produto/negócio) | Aprovado por quem pediu |
| 6 | Pronto | Entregue e validado | — |
Como montar no Jira: crie um board Kanban e mapeie uma coluna por status; se não puder criar status novos, use os que existem e registre no mapa qual status representa cada etapa.
Recomendações que fazem o quadro funcionar:
- Aguardando é a porta de entrada — nada entra em Em Desenvolvimento sem estar refinado. Card que "entra em dev para descobrir o que fazer" volta como retrabalho.
- Limite de WIP em Em Desenvolvimento e Code Review (ex.: 2 por pessoa). Sem limite, tudo fica "em andamento" e nada termina.
- Times menores podem juntar Qualidade + Validação; nunca junte Em Desenvolvimento com Code Review — é onde o gargalo aparece, e juntar as duas esconde o problema.
- Confirme o épico pai, se o mapa exigir.
- Preencha todos os campos cujo momento é "na criação".
- Título autoexplicativo na daily: verbo de ação + resultado concreto, em linguagem de produto ("Bloquear acesso após 5 tentativas erradas"), sem jargão de implementação e sem códigos internos.
- Descrição com Contexto (o que e por quê, 2–5 frases, legível por quem não é técnico) e Objetivo (resultado esperado).
- Critério de aceitação em linguagem de produto — resultados observáveis, sem termos técnicos. Solução técnica, sim, pode ser bem técnica. Plano de teste inclui cenários de erro, não só o caminho feliz.
- Criar em lote exige preview + OK: mostre a lista (títulos, tamanho, tipo) e espere o sim.
- Antes de criar, cheque se já existe card equivalente — duplicata custa mais que a busca.
O status do card sempre reflete a etapa real do trabalho. Card atrás da realidade é erro.
Jira:
1. jira_get_transitions no card → ver o que está disponível AGORA
2. jira_update_issue → preencher os campos daquele momento
3. jira_transition_issue → mover, uma transição por vez
- Nunca chumbe id de transição — muda por workflow e por status de origem.
- Preencha os campos antes de transicionar. Muitos workflows recusam campo setado dentro da transição ("cannot be set / not on the appropriate screen"). Atualiza, depois move.
- Transição indisponível = avise e pare. Não invente caminho alternativo pelo fluxo.
Trello: mover é trocar a lista do card (idList) — não existe workflow que impeça pular
etapa, então a checagem é sua: antes de mover, confirme que os campos do momento estão
preenchidos e que a coluna de destino é a próxima do mapa. Se alguém pedir para pular etapa
(de Aguardando direto para Code Review, por exemplo), diga o que está sendo pulado e pergunte.
Use o id da lista do mapa, nunca o nome — nome muda e quebra silenciosamente.
No campo que o mapa indicar (ou em comentário, se não houver campo):
tipo(ABC-123) - Título
PR #N → https://github.com/<org>/<repo>/pull/N
Leia antes de escrever (jira_get_issue): acrescente ao conteúdo existente, nunca
sobrescreva. Hotfix registra os dois PRs (produção e integração).
Redija, mostre o rascunho e só poste depois do OK. Menção real usa o formato de accountId
da instância — descubra o id via jira_get_user_profile; texto solto com @Nome não notifica
ninguém.
Jira — JQL a partir do mapa (troque <PROJ> e o nome do status):
| Pergunta | JQL |
|---|---|
| O que está para revisar | project = <PROJ> AND status = "Code Review" ORDER BY priority DESC |
| O que está em desenvolvimento | project = <PROJ> AND status = "Desenvolvimento" |
| O que é meu | project = <PROJ> AND assignee = currentUser() AND status != "Pronto" |
| Urgente parado | project = <PROJ> AND priority = Highest AND status NOT IN ("Pronto") |
| Sem movimento há 5 dias | project = <PROJ> AND status != "Pronto" AND updated <= -5d |
Trello — não há JQL: leia os cards do quadro (/boards/{id}/cards) e filtre em memória por
idList (a coluna), idMembers (quem), labels (tipo/prioridade) e dateLastActivity (paradas).
Responda agrupado por coluna, da mais urgente para a menos, omitindo colunas vazias.
Rubrica em esforço humano, não em tokens ou volume mecânico:
| Tamanho | Dias úteis |
|---|---|
| PP | 1 a 3 |
| P | 3 a 5 |
| M | 5 a 8 |
| G | 8 a 12 |
| acima de G | quebrar em cards menores |
Mover 200 arquivos é PP se for mecânico. O que conta é dificuldade, risco e tempo para uma pessoa.
Se as duas skills estiverem instaladas, a divisão é esta — e o .claude/board-workflow.md é a
fonte da verdade para as duas, valendo igual para Jira e Trello:
| Quem | Cuida de |
|---|---|
board-workflow (esta) |
quadro, colunas, campos, movimentação, criação e consulta de cards |
git-flow-delivery |
branch, commit, PR, code review, release e hotfix |
Pontos de contato, na ordem em que acontecem:
| Momento no código | O que acontece no card |
|---|---|
| Branch criada, começou a codar | move para o status de desenvolvimento (campos daquele momento preenchidos antes) |
| PR aberto | registra o link do PR no campo mapeado e move para code review |
| PR aprovado e mergeado | move conforme o mapa (em geral qualidade) |
| Release publicada | PR de release não tem card — nenhuma etapa de tracker se aplica |
Sem a git-flow-delivery instalada, esses movimentos continuam valendo: quem avisa é a pessoa
("abri o PR"), e você move o card do mesmo jeito.
- Sem card, não começa o código. Se perceber que está codando sem card: pare, crie e mova até o status correto.
- Ler antes de escrever em qualquer campo de texto acumulativo.
- Uma mudança de coluna por vez — no Jira, sempre depois de consultar as transições disponíveis; no Trello, sempre conferindo a ordem do mapa.
- Confirmação humana para: criação em lote, comentário, conclusão de card e qualquer exclusão. Autorização dada antes do fato não vale para o fato.
- Em dúvida se o ajuste estoura o escopo do card, pergunte em vez de decidir.
- [ ]
.claude/board-workflow.mdlido (ou criado, se era a primeira vez), ferramenta identificada - [ ] Campos do momento atual preenchidos antes da transição
- [ ] Jira: transição via
jira_get_transitions, nunca chumbada · Trello: lista de destino pelo id, ordem conferida - [ ] Critério de aceitação em linguagem de produto; plano de teste com cenários de erro
- [ ] Link do PR registrado sem sobrescrever o conteúdo anterior
- [ ] Status do card = etapa real do trabalho
- [ ] Comentário/lote/conclusão só após OK explícito
| O que | Onde ajustar |
|---|---|
| Ferramenta (Jira/Trello), projeto, quadro |
## Onde no mapa |
| Nomes das colunas |
## Fluxo — a skill não presume nome nenhum |
| Campos e o momento de cada um | ## Campos |
| Idioma, template, labels | ## Convenções |
| O que o agente faz sozinho | ## Autonomia do agente |
Trocou de ferramenta (Linear, Azure Boards, GitHub Projects)? O fluxo, os critérios de coluna e
os momentos de campo continuam valendo — muda só a camada de API. Registre a nova ferramenta em
## Onde e siga o mesmo mapa.