Commit
Objetivo
Use esta skill para transformar alteracoes locais em commits Git pequenos,
coerentes e rastreaveis. O padrao obrigatorio e:
- Conventional Commits.
- Um commit por escopo funcional ou tecnico.
- Mensagens no mesmo idioma predominante do historico recente do repositorio:
portugues ou ingles.
Fluxo
- Inspecione o estado do repositorio:
git status --short --branch.
- Analise o idioma do historico recente antes de escrever mensagens:
git log --format=%s -n 30.
- Decida o idioma do resumo e do corpo do commit:
- Use portugues quando a maioria das mensagens recentes estiver em
portugues.
- Use ingles quando a maioria das mensagens recentes estiver em ingles.
- Se houver empate, historico insuficiente ou mistura forte, use o idioma
das mensagens mais recentes que seguem o padrao do projeto.
- Se ainda nao houver sinal claro, use portugues.
- Leia as alteracoes antes de preparar commits:
git diff, git diff --cached e, quando houver arquivos novos,
git diff --no-index /dev/null <arquivo> ou leitura direta do arquivo.
- Identifique escopos independentes. Um escopo e a menor area responsavel
que explica a mudanca, como
auth, supabase, docs, ci, ui,
finance, tests ou o nome de um modulo local.
- Agrupe arquivos e hunks por escopo. Use
git add <paths> para escopos
simples e git add -p quando o mesmo arquivo misturar mudancas de
escopos diferentes.
- Valide o que sera commitado com
git diff --cached --check e
git diff --cached --stat. Rode testes, lint ou typecheck relevantes
quando forem baratos e proporcionais ao risco.
- Crie um commit por escopo. Depois de cada commit, confira que o proximo
escopo ainda esta limpo com
git status --short.
- Ao final, mostre os commits criados com
git log --oneline -n <quantidade>,
o idioma escolhido e as validacoes executadas.
Regras De Escopo
- Nunca faca um commit unico para mudancas independentes.
- Prefira um commit que contenha implementacao e teste do mesmo comportamento.
- Separe documentacao, configuracao, CI, refactors e correcoes quando forem
independentes.
- Nao use
git add . quando houver mais de um escopo ou arquivos nao
relacionados.
- Nao inclua alteracoes preexistentes do usuario sem entender o escopo delas.
- Se nao for possivel separar escopos com seguranca, pare e explique o conflito.
Formato Da Mensagem
Use sempre:
type(scope): resumo no idioma escolhido
Tipos permitidos:
feat: nova funcionalidade.
fix: correcao de bug.
docs: documentacao.
test: testes.
refactor: refatoracao sem mudar comportamento.
perf: melhoria de desempenho.
style: formatacao sem mudanca funcional.
build: build, dependencias ou empacotamento.
ci: pipelines e automacoes.
chore: manutencao que nao se encaixa melhor nos outros tipos.
revert: reversao.
Regras do cabecalho:
- O
scope deve ser curto, sem espacos e sem acentos. Use kebab-case se
precisar de mais de uma palavra.
- O resumo deve estar no idioma escolhido, em minusculas, sem ponto final.
- Em portugues, prefira verbos claros no presente:
adiciona, corrige,
ajusta, remove, documenta, separa, simplifica, atualiza.
- Em ingles, prefira verbos claros no presente:
add, fix, adjust,
remove, document, split, simplify, update.
- Evite resumos genericos como
update, changes, ajustes, wip, misc
ou corrige coisas.
- Use corpo no mesmo idioma do cabecalho quando a motivacao ou o impacto nao
couberem no resumo.
- Para breaking changes, use
! no cabecalho e inclua corpo com
BREAKING CHANGE:.
Exemplos
Portugues:
feat(auth): adiciona reaproveitamento transitorio do perfil
fix(supabase): corrige autorizacao das rpcs de assinatura
docs(git): documenta fluxo de commits por escopo
test(finance): cobre renegociacao sem parcelas pagas
refactor(ui): separa estado visual do card de renovacao
ci(eas): ajusta pipeline de build preview
Ingles:
feat(auth): add transient profile reuse
fix(supabase): fix subscription rpc authorization
docs(git): document scoped commit flow
test(finance): cover renegotiation without paid installments
refactor(ui): split renewal card view state
ci(eas): adjust preview build pipeline
Resposta Ao Usuario
Depois de criar commits, responda de forma curta com:
- Lista dos commits criados, com hash curto e mensagem.
- Escopo de cada commit quando houver mais de um.
- Idioma escolhido e motivo breve, com base no historico recente.
- Validacoes executadas ou motivo para nao executar.
- Estado final do
git status --short.
1---2name: commit3description: Use esta skill ao criar, organizar, revisar ou explicar commits Git. Aplica Conventional Commits, separa commits por escopo e escolhe entre portugues ou ingles analisando as mensagens recentes do historico do repositorio.4---56# Commit78## Objetivo910Use esta skill para transformar alteracoes locais em commits Git pequenos,11coerentes e rastreaveis. O padrao obrigatorio e:1213- Conventional Commits.14- Um commit por escopo funcional ou tecnico.15- Mensagens no mesmo idioma predominante do historico recente do repositorio:16 portugues ou ingles.1718## Fluxo19201. Inspecione o estado do repositorio:21 `git status --short --branch`.222. Analise o idioma do historico recente antes de escrever mensagens:23 `git log --format=%s -n 30`.243. Decida o idioma do resumo e do corpo do commit:25 - Use portugues quando a maioria das mensagens recentes estiver em26 portugues.27 - Use ingles quando a maioria das mensagens recentes estiver em ingles.28 - Se houver empate, historico insuficiente ou mistura forte, use o idioma29 das mensagens mais recentes que seguem o padrao do projeto.30 - Se ainda nao houver sinal claro, use portugues.314. Leia as alteracoes antes de preparar commits:32 `git diff`, `git diff --cached` e, quando houver arquivos novos,33 `git diff --no-index /dev/null <arquivo>` ou leitura direta do arquivo.345. Identifique escopos independentes. Um escopo e a menor area responsavel35 que explica a mudanca, como `auth`, `supabase`, `docs`, `ci`, `ui`,36 `finance`, `tests` ou o nome de um modulo local.376. Agrupe arquivos e hunks por escopo. Use `git add <paths>` para escopos38 simples e `git add -p` quando o mesmo arquivo misturar mudancas de39 escopos diferentes.407. Valide o que sera commitado com `git diff --cached --check` e41 `git diff --cached --stat`. Rode testes, lint ou typecheck relevantes42 quando forem baratos e proporcionais ao risco.438. Crie um commit por escopo. Depois de cada commit, confira que o proximo44 escopo ainda esta limpo com `git status --short`.459. Ao final, mostre os commits criados com `git log --oneline -n <quantidade>`,46 o idioma escolhido e as validacoes executadas.4748## Regras De Escopo4950- Nunca faca um commit unico para mudancas independentes.51- Prefira um commit que contenha implementacao e teste do mesmo comportamento.52- Separe documentacao, configuracao, CI, refactors e correcoes quando forem53 independentes.54- Nao use `git add .` quando houver mais de um escopo ou arquivos nao55 relacionados.56- Nao inclua alteracoes preexistentes do usuario sem entender o escopo delas.57- Se nao for possivel separar escopos com seguranca, pare e explique o conflito.5859## Formato Da Mensagem6061Use sempre:6263```text64type(scope): resumo no idioma escolhido65```6667Tipos permitidos:6869- `feat`: nova funcionalidade.70- `fix`: correcao de bug.71- `docs`: documentacao.72- `test`: testes.73- `refactor`: refatoracao sem mudar comportamento.74- `perf`: melhoria de desempenho.75- `style`: formatacao sem mudanca funcional.76- `build`: build, dependencias ou empacotamento.77- `ci`: pipelines e automacoes.78- `chore`: manutencao que nao se encaixa melhor nos outros tipos.79- `revert`: reversao.8081Regras do cabecalho:8283- O `scope` deve ser curto, sem espacos e sem acentos. Use kebab-case se84 precisar de mais de uma palavra.85- O resumo deve estar no idioma escolhido, em minusculas, sem ponto final.86- Em portugues, prefira verbos claros no presente: `adiciona`, `corrige`,87 `ajusta`, `remove`, `documenta`, `separa`, `simplifica`, `atualiza`.88- Em ingles, prefira verbos claros no presente: `add`, `fix`, `adjust`,89 `remove`, `document`, `split`, `simplify`, `update`.90- Evite resumos genericos como `update`, `changes`, `ajustes`, `wip`, `misc`91 ou `corrige coisas`.92- Use corpo no mesmo idioma do cabecalho quando a motivacao ou o impacto nao93 couberem no resumo.94- Para breaking changes, use `!` no cabecalho e inclua corpo com95 `BREAKING CHANGE:`.9697## Exemplos9899Portugues:100101```text102feat(auth): adiciona reaproveitamento transitorio do perfil103fix(supabase): corrige autorizacao das rpcs de assinatura104docs(git): documenta fluxo de commits por escopo105test(finance): cobre renegociacao sem parcelas pagas106refactor(ui): separa estado visual do card de renovacao107ci(eas): ajusta pipeline de build preview108```109110Ingles:111112```text113feat(auth): add transient profile reuse114fix(supabase): fix subscription rpc authorization115docs(git): document scoped commit flow116test(finance): cover renegotiation without paid installments117refactor(ui): split renewal card view state118ci(eas): adjust preview build pipeline119```120121## Resposta Ao Usuario122123Depois de criar commits, responda de forma curta com:124125- Lista dos commits criados, com hash curto e mensagem.126- Escopo de cada commit quando houver mais de um.127- Idioma escolhido e motivo breve, com base no historico recente.128- Validacoes executadas ou motivo para nao executar.129- Estado final do `git status --short`.