mr-description

Use ao redigir ou revisar o título e a descrição de um merge request ou pull request, em qualquer serviço de hospedagem (GitLab, GitHub ou outro, cloud ou auto-hospedado), antes de criá-lo ou atualizá-lo.

O que é mr-description?

Este skill auxilia na elaboração e revisão de títulos e descrições de merge requests (MRs) ou pull requests (PRs) em qualquer plataforma de hospedagem de repositórios, como GitLab, GitHub ou similares, sejam cloud ou auto-hospedados. Ele define regras claras para a formatação do título, incluindo a obrigatoriedade de uma linha imperativa que cubra todo o MR, a adição do ID do ticket entre parênteses quando aplicável, e a proibição de enquadrar o título por alternativas rejeitadas. Para a descrição, o skill estrutura o conteúdo em seções como mudanças por commit, alterações de comportamento e testes, com diretrizes detalhadas sobre o que incluir e o que evitar, como não reafirmar o ticket, não incluir contexto de sessão ou instruções de execução de testes, e não atribuir ferramentas. Além disso, o skill enfatiza a verificação rigorosa do texto contra o código real, por meio de buscas de identificadores e validação de claims, e a aplicação de outros skills instalados para limpeza de prosa gerada, sempre respeitando as instruções do projeto.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Labs64/agent-toolkit/tree/HEAD/plugins/writing/skills/mr-description

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Título e descrição do MR

"MR" abaixo significa a unidade de revisão em qualquer serviço que hospede o repositório: um merge request no GitLab, um pull request no GitHub, ou o equivalente em outro lugar, cloud ou auto-hospedado. Use o termo que o host usa ao escrever para o usuário. Para um MR pequeno (um único commit, por exemplo), escreva o texto e crie-o sem pedir confirmação. Para um maior, rascunhe o título e a descrição no chat para revisão primeiro. Crie-o ou atualize-o, com a CLI do host (glab, gh) ou API, apenas quando o usuário aprovar o texto e pedir.

Sempre atribua um novo MR ao usuário: --assignee @me com gh pr create, --assignee <username> com glab mr create.

PROJ-1234 abaixo representa qualquer ticket ao qual o MR pertence.

Título

  • Uma linha imperativa que cubra todo o MR, não apenas seu maior commit.
  • O título de um ticket é um ponto de partida, não a resposta. Amplie-o se o MR fizer mais do que o ticket diz.
  • Não enquadre o título por uma alternativa rejeitada ("… em vez de sair"). Diga o que o MR faz.
  • Anexe o ticket entre parênteses se houver um: … (PROJ-1234). Nunca invente um. Se as instruções do projeto ou workspace derem outro formato, como PROJ-1234 <descrição>, use esse.

Descrição

Estrutura:

  1. Uma linha de abertura. Se houver um ticket, vincule-o com o verbo que se adequa ao seu tipo: "Resolve PROJ-1234." para um bug, "Fecha PROJ-1234." para uma tarefa ou história, "Parte de PROJ-1234." se o MR não a completar.
  2. As mudanças:
    • Organizadas por commits. Leia o log de commits do branch primeiro. Apenas se ele tiver vários commits, cada um sendo um passo autocontido em vez de correções ou trabalho em andamento, diga na linha de abertura que o MR é melhor lido um commit de cada vez. Em seguida, forneça uma lista numerada com uma entrada por commit, em ordem, cada uma dizendo em uma a três frases o que o commit torna verdadeiro. Diga que cada commit passa nos testes por conta própria apenas se isso foi verificado ou o autor disser.
    • Caso contrário, incluindo um único commit: um parágrafo curto ou lista do que o MR torna verdadeiro, agrupado por tópico.
  3. ## Mudanças de comportamento: o que um usuário da API pública vê de diferente. Deixe de fora mudanças internas e atributos privados. Omita a seção se não houver nenhuma.
  4. ## Testes: apenas se algo sobre os testes precisar da atenção do revisor. Testes que passam, em hardware ou não, são assumidos e não declarados. Casos que precisam da seção, cada um com uma frase dizendo por quê:
    • um teste conhecido por falhar, ou pulado ou marcado como esperado para falhar;
    • um teste no MR que se desvia das convenções de teste do projeto;
    • uma mudança significativa na cobertura de testes, especialmente testes removidos.

Conteúdo:

  • Não reafirme o que existia antes da mudança. Descreva o estado após ela. Uma remoção é a exceção, pois só pode ser nomeada contra o que existia.
  • Não reafirme o ticket. O revisor pode lê-lo.
  • Sem contexto de sessão: sem "conforme discutido", sem histórico de revisão, sem relato de como o trabalho ocorreu.
  • Sem instruções para executar testes ou jobs de CI. A descrição é para o revisor, e o autor executa os testes.
  • Sem rodapé "Gerado com" e sem atribuição de ferramenta, mesmo quando o harness pedir uma. Esta regra tem precedência.
  • Mantenha conciso. Remova uma entrada ou uma cláusula que um revisor não sentiria falta.

Verificação do texto

  • Verifique cada afirmação em relação ao código no commit que ela descreve, não de memória ou rascunhos anteriores. Preste atenção particular a afirmações sobre o comportamento antigo e a afirmações sobre comportamento que um commit posterior altera.
  • Pesquise (grep) cada identificador que o texto nomeia. Uma classe ou método que não existe mais, ou que ainda não existe naquele commit, é um erro comum.
  • Baseie qualquer coisa em ## Testes no que realmente foi executado ou no que o diff mostra. Não afirme uma execução que não ocorreu.
  • Aplique todo skill instalado que cubra a limpeza de prosa gerada ao título e à descrição. Onde tal skill conflitar com as instruções do projeto (CLAUDE.md ou equivalente), as instruções do projeto vencem.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas