Pular para o conteúdo
Skillpedia
Código em geral41 mil · #4812

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

https://github.com/wshobson/agents/blob/main/plugins/block-no-verify/skills/block-no-verify-hook/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/block-no-verify/skills/block-no-verify-hook/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-hook

Ou 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.md
Conteú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

  1. Matcher: O hook visa apenas chamadas de ferramenta Bash, portanto, não interfere com outras ferramentas (Read, Edit, Grep, etc.).
  2. 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 valor command nesse JSON com grep -E, portanto, não precisa de jq ou node, e texto em outros campos, como cwd ou a descrição da chamada da ferramenta, não podem ativá-lo. Ele bloqueia --no-verify, --no-gpg-sign e qualquer prefixo mais curto deles que o Git aceita, por exemplo, --no-veri. Ele também bloqueia um grupo de opções curtas com n que segue commit no mesmo comando, por exemplo, -n ou -nm, porque -n é a forma curta de --no-verify. O hook não procura a palavra git, então ele também captura if git ..., sudo git ... e g=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.
  3. 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.
  4. Passagem: Se nenhuma flag de bypass for encontrada, o hook sai com o código 0 e o comando é executado normalmente.
  5. 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas