git-hooks-automation
Ajuda seu agente a automatizar verificações de qualidade de código antes de enviá-lo. Garante que o código esteja formatado e sem erros.
O que ela faz
Automatiza verificações de qualidade do código antes de você enviar suas alterações. Ele garante que seu código esteja formatado, sem erros e com mensagens de commit padronizadas, tudo antes de chegar ao sistema principal.
Quando usar
- ✓Configurar ferramentas como Husky ou pre-commit.
- ✓Garantir que as mensagens de commit sigam um padrão.
- ✓Automatizar a formatação e verificação de erros no código.
Exemplo do que pedir para a IA
“Configure os ganchos de pré-commit para formatar e verificar meu código.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Ele usa ferramentas como Husky e lint-staged para executar scripts automaticamente. Esses scripts verificam seu código em busca de erros e problemas de formatação antes de permitir que você confirme ou envie suas alterações.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add sickn33/agentic-awesome-skills --skill git-hooks-automationOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/git-hooks-automation/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Automação de Git Hooks
Automatize a aplicação de qualidade de código no nível do Git. Configure hooks que fazem lint, formatam, testam e validam antes que commits e pushes cheguem ao seu pipeline de CI — detectando problemas em segundos, em vez de minutos.
Quando Usar Essa Habilidade
- O usuário pede para "configurar git hooks" ou "adicionar pre-commit hooks"
- Configurando Husky, lint-staged ou o framework pre-commit
- Aplicando convenções de mensagens de commit (Conventional Commits, commitlint)
- Automatizando linting, formatação ou verificação de tipos antes de commits
- Configurando pre-push hooks para executores de testes
- Migrando do Husky v4 para o v9+ ou adotando hooks do zero
- O usuário menciona "pre-commit", "commit-msg", "pre-push", "lint-staged" ou "githooks"
Fundamentos de Git Hooks
Git hooks são scripts que rodam automaticamente em pontos específicos do fluxo de trabalho do Git. Eles ficam em .git/hooks/ e não são controlados por versão por padrão — é por isso que ferramentas como o Husky existem.
Tipos de Hooks e Quando Eles Disparam
| Hook | Dispara Quando | Uso Comum |
|---|---|---|
pre-commit |
Antes do commit ser criado | Lint, formatar, verificar tipos de arquivos staged |
prepare-commit-msg |
Após a mensagem padrão, antes do editor | Preencher automaticamente templates de commit |
commit-msg |
Após o usuário escrever a mensagem de commit | Aplicar formato de mensagem de commit |
post-commit |
Após o commit ser criado | Notificações, logging |
pre-push |
Antes do push para o repositório remoto | Rodar testes, verificar políticas de branch |
pre-rebase |
Antes do rebase começar | Prevenir rebase em branches protegidas |
post-merge |
Após o merge completar | Instalar dependências, rodar migrações |
post-checkout |
Após o checkout/switch | Instalar dependências, reconstruir assets |
Git Hooks Nativos (Sem Framework)
# Create a pre-commit hook manually
cat > .git/hooks/pre-commit << 'EOF'
#!/bin/sh
set -e
# Run linter on staged files only
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(js|ts|jsx|tsx)$' || true)
if [ -n "$STAGED_FILES" ]; then
echo "🔍 Linting staged files..."
echo "$STAGED_FILES" | xargs npx eslint --fix
echo "$STAGED_FILES" | xargs git add # Re-stage after fixes
fi
EOF
chmod +x .git/hooks/pre-commit
Problema: .git/hooks/ é apenas local e não é compartilhado com a equipe. Use um framework em vez disso.
Husky + lint-staged (Projetos Node.js)
O padrão moderno para projetos JavaScript/TypeScript. O Husky gerencia os Git hooks; o lint-staged roda comandos apenas em arquivos staged para velocidade.
Configuração Rápida (Husky v9+)
# Install
npm install --save-dev husky lint-staged
# Initialize Husky (creates .husky/ directory)
npx husky init
# The init command creates a pre-commit hook — edit it:
echo "npx lint-staged" > .husky/pre-commit
Configurar lint-staged em package.json
{
"lint-staged": {
"*.{js,jsx,ts,tsx}": [
"eslint --fix --max-warnings=0",
"prettier --write"
],
"*.{css,scss}": [
"prettier --write",
"stylelint --fix"
],
"*.{json,md,yml,yaml}": [
"prettier --write"
]
}
}
Adicionar Linting de Mensagem de Commit
# Install commitlint
npm install --save-dev @commitlint/cli @commitlint/config-conventional
# Create commitlint config
cat > commitlint.config.js << 'EOF'
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'type-enum': [2, 'always', [
'feat', 'fix', 'docs', 'style', 'refactor',
'perf', 'test', 'build', 'ci', 'chore', 'revert'
]],
'subject-max-length': [2, 'always', 72],
'body-max-line-length': [2, 'always', 100]
}
};
EOF
# Add commit-msg hook
echo "npx --no -- commitlint --edit \$1" > .husky/commit-msg
Adicionar Pre-Push Hook
# Run tests before pushing
echo "npm test" > .husky/pre-push
Estrutura Completa de Diretórios do Husky
project/
├── .husky/
│ ├── pre-commit # npx lint-staged
│ ├── commit-msg # npx --no -- commitlint --edit $1
│ └── pre-push # npm test
├── commitlint.config.js
├── package.json # lint-staged config here
└── ...
Framework pre-commit (Python / Poliglota)
Framework agnóstico de linguagem que funciona com qualquer projeto. Hooks são definidos em YAML e rodam em ambientes isolados.
Configuração
# Instalar (Python necessário)
pip install pre-commit
# Criar configuração
cat > .pre-commit-config.yaml << 'EOF'
repos:
# Verificações integradas
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
…
Perguntas frequentes
O que são 'git hooks'?
São scripts que rodam automaticamente em momentos específicos do seu fluxo de trabalho com Git, como antes de um commit ou push.
Por que usar ferramentas como Husky?
Porque os ganchos nativos do Git ficam apenas no seu computador. Ferramentas como Husky ajudam a compartilhar essas configurações com toda a equipe.
O que o 'lint-staged' faz?
Ele executa comandos apenas nos arquivos que você modificou e preparou para o commit, tornando o processo mais rápido.
Detalhes
Descrição original do autor
Master Git hooks setup with Husky, lint-staged, pre-commit framework, and commitlint. Automate code quality gates, formatting, linting, and commit message enforcement before code reaches CI.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #3121
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
bun-runtime
Faz seu agente usar o Bun para rodar, organizar e testar código. Ajuda a escolher o Bun em vez de outras ferramentas e a migrar projetos existentes.
affaan-m/ECC
database-migrations
Ajuda seu agente a fazer mudanças seguras em bancos de dados. Ele garante que as alterações possam ser desfeitas e minimiza o tempo de inatividade.
affaan-m/ECC
deployment-patterns
Configura fluxos de implantação e CI/CD, containerização e estratégias de rollback para garantir lançamentos seguros.
affaan-m/ECC