Skip to content

agent-spec-semantic-commit

Shared Maintenance

Resumo: Gera mensagens de commit em Português Brasileiro seguindo a especificação Conventional Commits, escolhendo o tipo correto (feat, fix, refactor, chore, docs, test, perf, style, ci, build, revert), definindo escopo e redigindo a linha de assunto no imperativo pt-BR dentro de 72 caracteres.


Quando usar

  • Usuário quer commitar mudanças ou pedir uma mensagem de commit.
  • Usuário mostra um diff e quer registrar a alteração no git.
  • Usuário pergunta "commita isso", "como commito isso?", "gera o commit", "qual seria o commit?" ou simplesmente descreve o que mudou no código.
  • Mesmo que o usuário não mencione "semântico", "conventional commits" ou tipos como feat/fix/refactor.

Quando NÃO usar

  • Para gerar PR/release notes — esta skill foca apenas na mensagem de commit individual.
  • Para reescrever histórico (squash, rebase) — essa é responsabilidade do usuário no git.

Inputs

InputOrigemObrigatório?
Diff (staged, unstaged ou inline)git diff --staged, git diff ou usuárioSim
Contexto da mudançaAnálise automática do diffSim

Outputs

ArtefatoDestinoConsumido por
Mensagem de commit no formato <tipo>(<escopo>): <descrição>Apresentada ao usuário; opcionalmente executada via git commit -mRepositório git

Fluxo de trabalho

1. Capturar contexto
       │  git diff --staged (prioridade)
       │  git diff           (fallback se stage vazio)
       │  git status --short (visão geral)

2. Identificar tipo e escopo (analisa diff)

3. Redigir mensagem (assunto ≤ 72 chars, imperativo pt-BR, minúsculas)

4. Propor ao usuário (aprovar / ajustar / dividir em commits)

5. Executar git commit (se aprovado)

Tipos semânticos

TipoQuando usarEscopo típico
featNova funcionalidade visível ao usuário ou consumidor da APIauth, pagamento, api
fixCorreção de buglogin, db, handler
refactorReorganização interna sem mudança de comportamento observáveluser, core, pkg
perfMelhoria de performance sem alterar comportamentoquery, cache
testAdiciona ou corrige testes (sem mudar código de produção)user_test, e2e
docsApenas documentação (README, comentários, godoc, swagger)readme, api
styleFormatação, espaçamento, lint — zero lógica alteradafmt, lint
choreManutenção: deps, scripts de build, configs de ferramentasdeps, makefile, ci
ciMudanças exclusivas em pipelines de CI/CDgithub, gitlab
buildSistema de build, Dockerfile, compilaçãodocker, go, gradle
revertReverte um commit anterior(tipo revertido ou hash)

Formato oficial

<tipo>(<escopo>): <descrição curta>

[corpo — explica o quê e o porquê, não o como]

[rodapé: BREAKING CHANGE: <detalhe>]
[rodapé: Closes #<número>]

Regras obrigatórias:

  • Linha de assunto: máximo 72 caracteres.
  • Verbo em imperativo presente pt-BR: "adiciona", "corrige", "remove", "atualiza" — nunca "adicionado", "corrigindo", "foi adicionado".
  • Letras minúsculas em toda a linha de assunto; sem ponto final.
  • Escopo entre parênteses é opcional mas recomendado quando a mudança é localizada.
  • Breaking change: adicione ! após tipo/escopo (feat!:) e BREAKING CHANGE: no rodapé.
  • Corpo e rodapé separados da linha de assunto por uma linha em branco.
  • Nomes em PascalCase/camelCase devem ser convertidos para minúsculas ou colocados entre backticks (ex.: TotalPricetotalprice ou `TotalPrice`).

Exemplos

feat(handler): adiciona endpoint GET /products/:id
fix(auth): corrige expiração de token JWT em timezone UTC-3
refactor(pkg): centraliza utilitários de string em pacote dedicado
feat(api)!: renomeia campo `preco` para `valor` em todos os endpoints

A skill mantém um catálogo completo de exemplos por tipo em .claude/skills/agent-spec-semantic-commit/references/exemplos.md (incluindo breaking change com corpo, revert, ci, etc.).


Boas práticas aplicadas pela skill

  • Um commit = uma responsabilidade. Se o diff mistura uma nova feature com um fix em módulo diferente, a skill propõe dois commits.
  • O corpo explica o porquê, não o como — omitido quando o assunto já é óbvio.
  • chore nunca é para bug fix. Se algo estava quebrado, é fix.
  • style é só formatação. Se qualquer linha de lógica mudou, o tipo é outro.
  • Revert inclui referência: revert: reverte feat(auth): adiciona login social (abc1234).
  • Issues no rodapé: Closes #N (fecha), Fixes #N (sinônimo) ou Refs #N (só referencia).

Gates invocados

Nenhum.


Skills relacionadas

Configuração via framework-paths.md

Esta skill não usa paths canônicos do framework — opera sobre o git do projeto e não persiste artefatos em docs/specs/. Customizações (ex.: tipos adicionais, escopo padrão) podem ser feitas editando a própria skill em .claude/skills/agent-spec-semantic-commit/.

AgentSpec Framework · Spec-driven com IA sobre Claude Code