Communitygithub.com

wan-huiyan/git-squash

Compressão inteligente de commits git com detecção automática de commits triviais via heurísticas de mensagem, diff e tempo

O que é git-squash?

Esta skill automatiza a compressão (squash) de commits Git, identificando automaticamente commits triviais (como correções de digitação, ajustes de formatação, pequenos fixes) com base em heurísticas avançadas: análise de mensagens de commit, tamanho e conteúdo do diff, e intervalo de tempo entre commits. Ela é ideal para desenvolvedores que desejam manter um histórico de commits limpo e organizado sem esforço manual, funcionando com qualquer repositório Git local. A skill analisa o histórico recente, sugere agrupamentos de commits que podem ser combinados em um único commit mais significativo e executa o squash interativamente ou automaticamente, conforme configurado. Suporta plataformas como Claude Code, Cursor e Codex, aumentando a produtividade ao reduzir ruídos no versionamento.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add wan-huiyan/git-squash

Perguntar na sua IA favorita

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

Documentação

O que git-squash faz?

Compressão inteligente de commits git com detecção automática de commits triviais via heurísticas de mensagem, diff e tempo

Visão Geral

Esta skill automatiza o processo de squash de commits git, identificando commits que são considerados "triviais" (como correções de digitação, ajustes de formatação, pequenos reparos) usando heurísticas baseadas em:

  • Conteúdo da mensagem do commit: Palavras-chave como "fix", "typo", "wip", "tmp"
  • Tamanho do diff: Commits com alterações muito pequenas ou apenas whitespace
  • Tempo entre commits: Commits feitos em sequência rápida (ex: intervalo < 5 minutos)

Como usar

Pré-requisitos

  • Git instalado localmente
  • Permissão de escrita no repositório atual

Comandos

git-squash [--interactive] [--num-commits N]

Parâmetros:

  • --interactive: Revisar e confirmar cada squash antes de executar
  • --num-commits N: Número de commits recentes a analisar (padrão: 10)

Exemplo

$ git-squash --interactive --num-commits 20
Analisando commits...
Commit 1: "fix typo" (trivial)
Commit 2: "wip" (trivial)
Commit 3: "Add login feature" (não trivial)
Deseja esmagar commits 1 e 2? [S/n]

Detalhes Técnicos

A skill usa um algoritmo de heurística ponderada:

  1. Pontuação de mensagem: 0.4 peso se a mensagem contiver marcadores triviais
  2. Pontuação de diff: 0.3 peso se o diff for menor que 10 linhas ou apenas whitespace
  3. Pontuação de tempo: 0.3 peso se o intervalo entre commits for < 5 minutos

Se a pontuação combinada exceder 0.7, o commit é marcado como trivial.

Plataformas Suportadas

  • Claude Code
  • Cursor
  • Codex

License

MIT

Habilidades Relacionadas