Git Commit Generator
Descrição
Skill para gerar mensagens de commit seguindo convenção Conventional Commits.
Quando Usar
- Usuário pedir para gerar commit
- Usuário pedir para analisar mudanças e sugerir commit
- Após alterações de código antes de push
Regras Críticas
- NUNCA executar comandos de escrita (git add, git commit, git push, git rm)
- APENAS executar comandos de leitura (git status, git diff, git log)
- APENAS gerar a mensagem para o usuário copiar e colar
- SE não houver arquivos para commitar, apenas avisar e aguardar
Fluxo Obrigatório
- Ler regras na pasta rules (global e/ou local) e seguir com seriedade
- Executar
git status para identificar arquivos alterados
- Executar
git diff --cached (staged) e git diff (unstaged)
- Verificar se existem alterações
- Se não houver alterações: enviar aviso "No files to commit" e parar
- Analisar o tipo de alteração
- Gerar mensagem de commit em inglês
- Apresentar commit formatado para copiar e colar
Detecção de Alterações
Arquivos Staged (+ na IDE / git add)
- Verificar com
git diff --cached --name-status
Arquivos Unstaged (modificados mas não staged)
- Verificar com
git diff --name-status
Arquivos Novos (não rastreados)
- Verificar com
git status --porcelain
Tipos de Commit (Conventional Commits)
| Tipo |
Descrição |
Quando Usar |
feat |
Nova funcionalidade |
Novo recurso, componente, rota |
fix |
Correção de bug |
Correção de erro, comportamento inesperado |
chore |
Manutenção |
Configuração, dependências, build |
refactor |
Refatoração |
Reestruturar código sem mudar comportamento |
style |
Estilo |
Formatação, whitespace, ponto e vírgula |
docs |
Documentação |
README, comments, documentação |
test |
Testes |
Adicionar ou corrigir testes |
perf |
Performance |
Melhorias de performance |
ci |
CI/CD |
Configuração de pipeline |
build |
Build |
Sistema de build, bundler |
revert |
Reverter |
Reverter commit anterior |
Formato da Mensagem
<type>(<scope>): <description>
[optional body]
[optional footer]
Regras de Formato
- type: obrigatório, minúsculo
- scope: opcional, entre parênteses, minúsculo
- description: obrigatório, inglês, imperativo, minúsculo, sem ponto final
- body: opcional, explicar o que e por quê (não como)
- footer: opcional, referenciar issues (ex: Closes #123)
Exemplos
Commits Simples
feat(auth): add login with Google OAuth
fix(api): handle null response from endpoint
chore(deps): update angular to v17
style(components): fix indentation in header
docs(readme): add installation instructions
Commits com Body
feat(cart): implement quantity selector
Add +/- buttons to cart items for quantity management.
Updates inventory in real-time via WebSocket.
Closes #456
Análise de Mudanças
Ao analisar o git diff, considerar:
- Arquivos alterados: Quais arquivos mudaram?
- Tipo de mudança: Feature, fix, refactor?
- Escopo: Qual área do projeto? (auth, api, ui, etc.)
- Impacto: Mudança grande ou pequena?
- Contexto: O que o código faz agora?
Saída
Mensagem de commit formatada em inglês para o usuário copiar e colar.
Exemplo de Saída
feat(user-profile): add avatar upload functionality
- Add file input component with preview
- Implement image compression before upload
- Integrate with cloud storage API
Closes #789
1---2name: git-commit-generate3description: Gera mensagens de commit seguindo convenção Conventional Commits4---56# Git Commit Generator78## Descrição910Skill para gerar mensagens de commit seguindo convenção Conventional Commits.1112## Quando Usar1314- Usuário pedir para gerar commit15- Usuário pedir para analisar mudanças e sugerir commit16- Após alterações de código antes de push1718## Regras Críticas1920- **NUNCA** executar comandos de escrita (git add, git commit, git push, git rm)21- **APENAS** executar comandos de leitura (git status, git diff, git log)22- **APENAS** gerar a mensagem para o usuário copiar e colar23- **SE** não houver arquivos para commitar, apenas avisar e aguardar2425## Fluxo Obrigatório26271. **Ler regras** na pasta rules (global e/ou local) e seguir com seriedade282. **Executar** `git status` para identificar arquivos alterados293. **Executar** `git diff --cached` (staged) e `git diff` (unstaged)304. **Verificar** se existem alterações315. **Se não houver alterações**: enviar aviso "No files to commit" e parar326. **Analisar** o tipo de alteração337. **Gerar** mensagem de commit em inglês348. **Apresentar** commit formatado para copiar e colar3536## Detecção de Alterações3738### Arquivos Staged (+ na IDE / git add)39- Verificar com `git diff --cached --name-status`4041### Arquivos Unstaged (modificados mas não staged)42- Verificar com `git diff --name-status`4344### Arquivos Novos (não rastreados)45- Verificar com `git status --porcelain`4647## Tipos de Commit (Conventional Commits)4849| Tipo | Descrição | Quando Usar |50|------|-----------|-------------|51| `feat` | Nova funcionalidade | Novo recurso, componente, rota |52| `fix` | Correção de bug | Correção de erro, comportamento inesperado |53| `chore` | Manutenção | Configuração, dependências, build |54| `refactor` | Refatoração | Reestruturar código sem mudar comportamento |55| `style` | Estilo | Formatação, whitespace, ponto e vírgula |56| `docs` | Documentação | README, comments, documentação |57| `test` | Testes | Adicionar ou corrigir testes |58| `perf` | Performance | Melhorias de performance |59| `ci` | CI/CD | Configuração de pipeline |60| `build` | Build | Sistema de build, bundler |61| `revert` | Reverter | Reverter commit anterior |6263## Formato da Mensagem6465```66<type>(<scope>): <description>6768[optional body]6970[optional footer]71```7273### Regras de Formato7475- **type**: obrigatório, minúsculo76- **scope**: opcional, entre parênteses, minúsculo77- **description**: obrigatório, inglês, imperativo, minúsculo, sem ponto final78- **body**: opcional, explicar o que e por quê (não como)79- **footer**: opcional, referenciar issues (ex: Closes #123)8081## Exemplos8283### Commits Simples84```85feat(auth): add login with Google OAuth86fix(api): handle null response from endpoint87chore(deps): update angular to v1788style(components): fix indentation in header89docs(readme): add installation instructions90```9192### Commits com Body93```94feat(cart): implement quantity selector9596Add +/- buttons to cart items for quantity management.97Updates inventory in real-time via WebSocket.9899Closes #456100```101102## Análise de Mudanças103104Ao analisar o `git diff`, considerar:1051061. **Arquivos alterados**: Quais arquivos mudaram?1072. **Tipo de mudança**: Feature, fix, refactor?1083. **Escopo**: Qual área do projeto? (auth, api, ui, etc.)1094. **Impacto**: Mudança grande ou pequena?1105. **Contexto**: O que o código faz agora?111112## Saída113114Mensagem de commit formatada em inglês para o usuário copiar e colar.115116## Exemplo de Saída117118```119feat(user-profile): add avatar upload functionality120121- Add file input component with preview122- Implement image compression before upload123- Integrate with cloud storage API124125Closes #789126```