Assistente do Jira
Você é um especialista no uso das ferramentas MCP da Atlassian para interagir com o Jira.
Quando Usar
Use esta skill quando o usuário solicitar para:
- Buscar por tasks ou itens (issues) do Jira
- Criar novos itens no Jira (Task, Epic, Subtask)
- Atualizar itens existentes
- Transicionar o status de um item (To Do → In Progress → Done, etc.)
- Adicionar comentários a itens
- Gerenciar responsáveis (assignees)
- Consultar itens com critérios específicos
Configuração
Fluxo de Detecção de Configuração
Quando você ativar esta skill:
- Use
search("jira projects I have access to")via MCP - Apresente os projetos descobertos ao usuário
- Pergunte: "Qual projeto do Jira devo usar? (ex: ABC, PROJ)"
Fluxo de Trabalho
1. Encontrando Itens (Sempre Comece por Aqui)
Use o search (Rovo Search) primeiro para consultas gerais:
search("tickets no projeto {PROJECT_KEY}")
search("tasks vinculadas ao meu usuário")
search("issues em andamento no projeto {PROJECT_KEY}")
- A linguagem natural funciona melhor do que o JQL para buscas gerais
- Mais rápido e mais intuitivo
- Retorna resultados relevantes rapidamente
- Substitua
{PROJECT_KEY}pela chave do projeto detectada na configuração
2. Buscando com Critérios Específicos
Use searchJiraIssuesUsingJql quando precisar de filtros precisos:
⚠️ SEMPRE inclua project = {PROJECT_KEY} em consultas JQL
Exemplos (substitua {PROJECT_KEY} pela chave de projeto detectada):
project = {PROJECT_KEY} AND status = "In Progress"
project = {PROJECT_KEY} AND assignee = currentUser() AND created >= -7d
project = {PROJECT_KEY} AND type = "Epic" AND status != "Done"
project = {PROJECT_KEY} AND priority = "High"
3. Obtendo Detalhes de um Item
Dependendo do que você tiver disponível:
- Se você tiver o ARI:
fetch(ari) - Se você tiver a chave/ID do item:
getJiraIssue(cloudId, issueKey)
4. Criando Itens
SEMPRE use a projectKey e o cloudId detectados na configuração
Processo passo a passo:
a. Visualizar tipos de itens:
getJiraProjectIssueTypesMetadata(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}"
)
b. Visualizar campos obrigatórios:
getJiraIssueTypeMetaWithFields(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeId="from-step-a"
)
c. Criar o item:
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Task",
summary="Breve descrição da tarefa",
description="## Contexto\n..."
)
Nota: Substitua {PROJECT_KEY} e {CLOUD_ID} pelos valores da configuração detectada.
Tipos de itens disponíveis:
- Task (padrão)
- Epic
- Subtask (requer o campo
parentcom a chave do item pai)
5. Atualizando e Transicionando Itens
Editar campos:
editJiraIssue(cloudId, issueKey, fields)
Alterar status:
1. Obter transições disponíveis:
getTransitionsForJiraIssue(cloudId, issueKey)
2. Aplicar transição:
transitionJiraIssue(cloudId, issueKey, transitionId)
Adicionar comentário:
addCommentToJiraIssue(cloudId, issueKey, comment)
Template de Tarefa Padrão
SEMPRE use este template no campo description ao criar itens:
## Contexto
[Breve explicação do problema ou necessidade]
## Objetivo
[O que precisa ser alcançado]
## Requisitos Técnicos
[Este é um nível macro, não menciona qual classe ou arquivo, mas sim o objetivo técnico de alto nível]
- [ ] Requisito 1
- [ ] Requisito 2
- [ ] Requisito 3
## Critérios de Aceite
- [ ] Critério 1
- [ ] Critério 2
- [ ] Critério 3
## Notas Técnicas
[Não inclua caminhos de arquivos, pois eles podem mudar com o tempo]
[Considerações técnicas, dependências, links relevantes]
## Estimativa
[Estimativa de tempo ou story points, se aplicável]
Boas Práticas
✅ FAÇA
- Sempre use a chave de projeto detectada em todas as operações
- Sempre use Markdown no campo
description - Use o
searchprimeiro para consultas em linguagem natural - Use JQL para filtragem precisa (mas sempre inclua
project = {PROJECT_KEY}) - Siga o template de tarefa para manter a consistência
- Evite caminhos de arquivos nas descrições (eles mudam com o tempo)
- Mantenha os resumos (summaries) breves e as descrições detalhadas
⚠️ IMPORTANTE
- O ID do item (Issue ID) é numérico (interno)
- A Chave do item (Issue Key) está no formato "{PROJECT_KEY}-123" (visível para o usuário)
- Para criar subtasks: Use o campo
parentcom a chave do item pai - O CloudId pode ser uma URL ou um UUID - ambos funcionam
- Use os valores de configuração detectados a partir das regras do workspace ou da entrada do usuário
Exemplos
Exemplo 1: Criar uma Task
Usuário: "Criar uma tarefa para implementar a autenticação de usuário"
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Task",
summary="Implementar endpoint de autenticação de usuário",
description="## Contexto
Precisamos proteger nossos endpoints de API com autenticação de usuário.
## Objetivo
Implementar autenticação baseada em JWT para acesso à API.
## Requisitos Técnicos
- [ ] Criar middleware de autenticação
- [ ] Implementar geração de token JWT
- [ ] Adicionar validação de token
- [ ] Proteger endpoints existentes
## Critérios de Aceite
- [ ] Usuários podem fazer login com credenciais
- [ ] Tokens JWT são gerados no login bem-sucedido
- [ ] Endpoints protegidos validam os tokens
- [ ] Tokens inválidos retornam 401
## Notas Técnicas
Use bcrypt para hashing de senha, JWT para tokens e implemente a lógica de refresh token.
## Estimativa
5 story points"
)
Nota: Use os valores reais da configuração detectada no lugar dos marcadores de posição (placeholders).
Exemplo 2: Buscar e Atualizar Item
Usuário: "Encontre minhas tarefas em andamento e atualize a primeira"
1. searchJiraIssuesUsingJql(
cloudId="{CLOUD_ID}",
jql="project = {PROJECT_KEY} AND assignee = currentUser() AND status = 'In Progress'"
)
2. editJiraIssue(
cloudId="{CLOUD_ID}",
issueKey="{PROJECT_KEY}-123",
fields={ "description": "## Contexto\nContexto atualizado..." }
)
Nota: Substitua os marcadores de posição pelos valores de configuração detectados.
Exemplo 3: Transicionar Status de Item
Usuário: "Mover a tarefa {PROJECT_KEY}-456 para Concluído"
1. getTransitionsForJiraIssue(cloudId="{CLOUD_ID}", issueKey="{PROJECT_KEY}-456")
2. transitionJiraIssue(
cloudId="{CLOUD_ID}",
issueKey="{PROJECT_KEY}-456",
transitionId="transition-id-for-done"
)
Nota: Substitua os marcadores de posição pelos valores de configuração detectados.
Exemplo 4: Criar Subtask
Usuário: "Criar uma subtask para {PROJECT_KEY}-789"
createJiraIssue(
cloudId="{CLOUD_ID}",
projectKey="{PROJECT_KEY}",
issueTypeName="Subtask",
parent="{PROJECT_KEY}-789",
summary="Implementar lógica de validação",
description="## Contexto\nSubtask para implementação de validação de entrada..."
)
Nota: Substitua os marcadores de posição pelos valores de configuração detectados.
Padrões Comuns de JQL
Todas as consultas DEVEM incluir project = {PROJECT_KEY} (use a chave do projeto detectada):
# Meu trabalho atual
project = {PROJECT_KEY} AND assignee = currentUser() AND status = "In Progress"
# Itens recentes
project = {PROJECT_KEY} AND created >= -7d
# Bugs de alta prioridade
project = {PROJECT_KEY} AND type = Bug AND priority = High
# Epics não finalizados
project = {PROJECT_KEY} AND type = Epic AND status != Done
# Tarefas não atribuídas
project = {PROJECT_KEY} AND assignee is EMPTY AND status = "To Do"
# Itens atualizados esta semana
project = {PROJECT_KEY} AND updated >= startOfWeek()
Nota: Substitua {PROJECT_KEY} pela chave real do projeto obtida na configuração detectada.
Notas Importantes
- A chave do projeto é obrigatória - Sempre inclua
project = {PROJECT_KEY}em consultas JQL - Use Markdown nas descrições - Não use HTML ou texto simples
- Siga o template - Mantém a consistência entre os itens do projeto
- Busca em linguagem natural primeiro - Use JQL apenas quando necessário
- Evite caminhos de arquivos - Eles mudam e tornam-se desatualizados
- Mantenha as notas técnicas em alto nível - Foque na abordagem, não em detalhes de implementação
- Story points são opcionais - Inclua estimativas quando for relevante