block-no-verify-hook
Faz seu agente configurar um 'hook' para impedir que comandos ignorem verificações de 'commit'. É útil para manter a qualidade do código em projetos.
O que ela faz
Este recurso impede que assistentes de IA ignorem verificações de segurança importantes ao enviar código. Ele garante que todas as verificações de qualidade, como formatação e testes, sejam executadas.
Quando usar
- ✓Ao configurar um projeto para garantir a qualidade do código.
- ✓Quando você quer ter certeza de que o código enviado passou por todas as verificações.
- ✓Para evitar que a IA pule etapas importantes de validação.
Exemplo do que pedir para a IA
“Configure o projeto para que a IA não pule as verificações de commit.”
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 adiciona uma regra que verifica os comandos que a IA tenta executar. Se um comando tentar pular as verificações (usando opções como '--no-verify'), a regra o bloqueará e exibirá uma mensagem.
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 wshobson/agents --skill block-no-verify-hookOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/block-no-verify/skills/block-no-verify-hook/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.
Hook de Bloqueio de Não Verificação
Configuração de hook PreToolUse que intercepta e bloqueia o uso da flag de bypass antes da execução, garantindo que agentes de IA não possam pular hooks de pré-commit, assinatura GPG ou outros mecanismos de segurança do Git.
Visão Geral
Agentes de codificação de IA (Claude Code, Codex, etc.) podem executar comandos shell com flags como --no-verify que pulam hooks de pré-commit. Isso frustra o propósito de linting, formatação, testes e verificações de segurança configurados em hooks de pré-commit. O hook de bloqueio de não verificação adiciona uma proteção PreToolUse que rejeita qualquer chamada de ferramenta contendo flags de bypass antes da execução.
Problema
Quando agentes de IA fazem commit de código, eles podem usar flags de bypass para evitar falhas nos hooks:
# These commands skip pre-commit hooks entirely
git commit --no-verify -m "quick fix"
git push --no-verify
git commit --no-gpg-sign -m "unsigned commit"
git merge --no-verify feature-branch
Isso permite:
- Código não formatado entrar no repositório
- Erros de linting pularem verificações
- Verificações de segurança serem ignoradas
- Commits não assinados pularem políticas de assinatura
- Conjuntos de testes serem contornados
Solução
Adicione um hook PreToolUse em .claude/settings.json que inspeciona cada chamada de ferramenta Bash e bloqueia comandos contendo flags de bypass.
Configuração
Adicione o seguinte ao .claude/settings.json do seu projeto:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "if grep -qE '\"command\"[[:space:]]*:[[:space:]]*\"([^\"\\\\]|\\\\.)*(--no-(ver|g)|commit([^\"\\\\]|\\\\.)*([[:space:]]|\\\\[tn])-[a-zA-Z]*n)'; then echo 'BLOCKED: --no-verify and --no-gpg-sign flags are not allowed. Run the commit without bypass flags so that pre-commit hooks execute properly.' >&2; exit 2; fi"
}
]
}
]
}
}
Como Funciona
- Matcher: O hook visa apenas chamadas de ferramenta
Bash, portanto, não interfere com outras ferramentas (Read, Edit, Grep, etc.). - Inspeção: Claude Code envia a chamada de ferramenta para o hook como JSON via stdin e não define a variável
$TOOL_INPUT. O hook procura o valorcommandnesse JSON comgrep -E, portanto, não precisa dejqounode, e texto em outros campos, comocwdou a descrição da chamada da ferramenta, não podem ativá-lo. Ele bloqueia--no-verify,--no-gpg-signe qualquer prefixo mais curto deles que o Git aceita, por exemplo,--no-veri. Ele também bloqueia um grupo de opções curtas comnque seguecommitno mesmo comando, por exemplo,-nou-nm, porque-né a forma curta de--no-verify. O hook não procura a palavragit, então ele também capturaif git ...,sudo git ...eg=git; $g commit --no-verify. Uma correspondência falsa, como uma mensagem de commit que menciona uma flag, bloqueia a chamada, que é a maneira segura de falhar. - Bloqueio: Se uma flag de bypass for encontrada em um comando Git, o hook sai com o código 2 e imprime uma mensagem de erro. O código de saída 2 sinaliza Claude Code para rejeitar totalmente a chamada da ferramenta.
- Passagem: Se nenhuma flag de bypass for encontrada, o hook sai com o código 0 e o comando é executado normalmente.
- Limites: O hook verifica texto, então ele para um agente que busca uma flag de bypass por hábito. Ele não para um agente que se propõe a evitá-lo, por exemplo, construindo a flag a partir de partes ou executando
git -c core.hooksPath=/dev/null commit.
Códigos de Saída
| Código | Significado |
|---|---|
| 0 | Permite que a chamada da ferramenta prossiga |
| 1 | Erro (a chamada da ferramenta ainda prossegue, aviso exibido) |
| 2 | Bloqueia totalmente a chamada da ferramenta |
Flags Bloqueadas
| Flag | Propósito | Por que Bloqueado |
|---|---|---|
--no-verify |
Pula hooks de pré-commit e commit-msg | Pula verificações de linting, formatação, testes e segurança |
--no-gpg-sign |
Pula assinatura de commit GPG | Pula a política de assinatura de commit |
Instalação
Configuração por Projeto
Crie ou atualize .claude/settings.json na raiz do seu projeto:
mkdir -p .claude
cat > .claude/settings.json << 'EOF'
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "if grep -qE '\"command\"[[:space:]]*:[[:space:]]*\"([^\"\\\\]|\\\\.)*(--no-(ver|g)|commit([^\"\\\\]|\\\\.)*([[:space:]]|\\\\[tn])-[a-zA-Z]*n)'; then echo 'BLOCKED: --no-verify and --no-gpg-sign flags are not allowed. Run the commit without bypass flags so that pre-commit hooks execute properly.' >&2; exit 2; fi"
}
]
}
]
}
}
EOF
Configuração Global
…
Perguntas frequentes
Por que a IA pularia as verificações?
A IA pode tentar pular verificações para ser mais rápida, mas isso pode levar a erros ou código de baixa qualidade no projeto.
Quais verificações são impedidas de serem puladas?
Verificações como formatação de código, testes automáticos, análise de segurança e assinatura de commits.
O que acontece se a IA tentar pular uma verificação?
O comando é bloqueado, e a IA recebe uma mensagem informando que não pode pular as verificações e deve executá-las normalmente.
Detalhes
Descrição original do autor
Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.
repo: wshobson/agents
Popularidade
- Estrelas no GitHub
- 41 mil
- Posição no ranking
- #4812
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
screen-reader-testing
Faz seu agente testar sites usando leitores de tela para garantir que sejam acessíveis.
wshobson/agents
wcag-audit-patterns
Ajuda seu agente a auditar sites para acessibilidade e corrigir problemas de acordo com as diretrizes WCAG.
wshobson/agents
multi-reviewer-patterns
Faz seu agente coordenar revisões de código paralelas, deduplicando achados e consolidando relatórios.
wshobson/agents
parallel-debugging
Permite ao agente depurar problemas complexos com investigações paralelas e análise de causa raiz.
wshobson/agents
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC