Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Gerar mensagens de commit a partir de alterações. Ativa com "gerar mensagem de commit", "sugerir commit message".
.claude/skills/wasabeef-gerar-mensagens-de-commit-a-partir-de-alterac-o-es/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 132% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 315% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 714% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 204% | 0% |
| case-08 | ✓→✓ | = Same ✓ | 184% | 0% |
Gera mensagens de commit apropriadas a partir de mudanças staged (git diff --staged). Não executa comandos git, apenas gera mensagens e copia para a área de transferência.
bash/commit-message [opções]
--format <formato> : Especifica formato da mensagem (conventional, gitmoji, angular)--lang <idioma> : Força especificação do idioma da mensagem (en, pt)--breaking : Detecção e descrição de Breaking Changebash# Gerar mensagem a partir de mudanças staged (detecção automática de idioma) # O candidato principal é automaticamente copiado para a área de transferência /commit-message # Forçar especificação de idioma /commit-message --lang pt /commit-message --lang en # Detectar Breaking Change /commit-message --breaking
Importante: Este comando analisa apenas mudanças staged. É necessário fazer staging das mudanças com git add previamente.
bash# Se não houver staging, será exibido um aviso $ /commit-message Não há mudanças staged. Execute git add primeiro.
O candidato principal gerado é automaticamente copiado para a área de transferência no formato completo git commit -m "mensagem". Pode ser colado diretamente no terminal para execução.
Atenção na implementação:
pbcopy, execute em processo separado da saída da mensagemprintf em vez de echo para evitar quebra de linha no finalImportante: Se existirem convenções específicas do projeto, elas têm prioridade.
Detecção automática a partir dos seguintes arquivos:
commitlint.config.jscommitlint.config.mjscommitlint.config.cjscommitlint.config.ts.commitlintrc.js.commitlintrc.json.commitlintrc.yml.commitlintrc.yamlcommitlint do package.jsonbash# Busca por arquivos de configuração find . -name "commitlint.config.*" -o -name ".commitlintrc.*" | head -1
Exemplo de tipos específicos do projeto:
javascript// commitlint.config.mjs export default { extends: ["@commitlint/config-conventional"], rules: { "type-enum": [ 2, "always", [ "feat", "fix", "docs", "style", "refactor", "test", "chore", "wip", // em andamento "hotfix", // correção urgente "release", // release "deps", // atualização de dependências "config", // mudança de configuração ], ], }, };
javascript// Quando o projeto usa mensagens em japonês export default { rules: { "subject-case": [0], // Desabilitado para suporte ao japonês "subject-max-length": [2, "always", 72], // Ajuste de limite de caracteres para japonês }, };
bash# Aprendizado de padrões de uso a partir de commits recentes git log --oneline -50 --pretty=format:"%s" # Estatísticas de tipos utilizados git log --oneline -100 --pretty=format:"%s" | \ grep -oE '^[a-z]+(\([^)]+\))?' | \ sort | uniq -c | sort -nr
Alternância automática entre japonês/inglês baseada nas seguintes condições:
O padrão é inglês. Quando identificado como projeto japonês, gera em japonês.
text<type>: <description>
Importante: Sempre gera mensagem de commit de 1 linha. Não gera mensagens de múltiplas linhas.
Nota: Se existirem convenções específicas do projeto, elas têm prioridade.
Tipos obrigatórios:
feat: Nova funcionalidade (adição de funcionalidade visível ao usuário)fix: Correção de bugTipos opcionais:
build: Mudanças no sistema de build ou dependências externaschore: Outras mudanças (que não afetam o release)ci: Mudanças em arquivos de configuração ou scripts de CIdocs: Mudanças apenas na documentaçãostyle: Mudanças que não afetam o significado do código (espaços, formatação, ponto e vírgula, etc.)refactor: Mudanças no código que não envolvem correção de bug ou adição de funcionalidadeperf: Melhoria de performancetest: Adição ou correção de testesbash$ /commit-message 📝 Sugestão de mensagem de commit ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Candidato principal: feat: implement JWT-based authentication system 📋 Alternativas: 1. feat: add user authentication with JWT tokens 2. fix: resolve token validation error in auth middleware 3. refactor: extract auth logic into separate module ✅ `git commit -m "feat: implement JWT-based authentication system"` copiado para a área de transferência
Exemplo de implementação (versão corrigida):
bash# Copiar comando de commit para área de transferência primeiro (sem quebra de linha) printf 'git commit -m "%s"' "$COMMIT_MESSAGE" | pbcopy # Depois exibir mensagem cat << EOF 📝 Sugestão de mensagem de commit ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Candidato principal: $COMMIT_MESSAGE 📋 Alternativas: 1. ... 2. ... 3. ... ✅ \`git commit -m "$COMMIT_MESSAGE"\` copiado para a área de transferência EOF
bash$ /commit-message 📝 Sugestão de mensagem de commit ━━━━━━━━━━━━━━━━━━━━━━━━━ ✨ Candidato principal: feat: implementar sistema de autenticação JWT 📋 Alternativas: 1. feat: adicionar autenticação de usuário com token JWT 2. fix: resolver erro de validação de token no middleware de autenticação 3. docs: separar lógica de autenticação em módulo independente ✅ `git commit -m "feat: implementar sistema de autenticação JWT"` copiado para a área de transferência
git diff --stagedNota: Este comando não executa git add ou git commit. Apenas gera mensagem de commit e copia para a área de transferência.
featfixtestchoredocs.gitmessageCONTRIBUTING.mdbash# Critérios de julgamento (ordem de prioridade) 1. Julgar idioma a partir do conteúdo de git diff --staged 2. Análise de comentários de arquivos staged 3. Análise de idioma de git log --oneline -20 4. Configuração de idioma principal do projeto
Informações usadas para análise (apenas leitura):
git diff --staged --name-only - Lista de arquivos modificadosgit diff --staged - Conteúdo real das mudançasgit status --porcelain - Status dos arquivosSe houver mudanças disruptivas na API:
Inglês:
bashfeat!: change user API response format BREAKING CHANGE: user response now includes additional metadata
ou
bashfeat(api)!: change authentication flow
Exemplo de Breaking Change:
bashfeat!: alterar formato de resposta da API de usuários BREAKING CHANGE: A resposta agora inclui metadados adicionais
ou
bashfeat(api)!: modificar fluxo de autenticação
Inglês:
textfeat: add user registration endpoint fix: resolve memory leak in cache manager docs: update API documentation
Exemplo com múltiplas mudanças:
textfeat: adicionar endpoint de registro de usuários fix: resolver vazamento de memória no gerenciador de cache docs: atualizar documentação da API
bash# Usar em combinação com mudanças staged git add -p # Staging interativo /commit-message "Gere a mensagem de commit mais adequada" # Analisar fazendo staging apenas de arquivos específicos git add src/auth/*.js /commit-message --lang en "Gere mensagem adequada para mudanças relacionadas à autenticação" # Detecção e tratamento de Breaking Change git add -A /commit-message --breaking "Se houver mudança disruptiva, marque adequadamente"
git addOther measured skills in the registry, with their headline benchmark lift.