Pular para o conteúdo
Skillpedia
Agentes280 mil · #195

gateguard

Impede que o agente execute ações de escrita ou código sem antes fornecer informações concretas. Garante que o agente tenha os dados necessários antes de prosseguir, melhorando a qualidade.

O que ela faz

O GateGuard é um verificador que impede a IA de fazer alterações em arquivos de código ou criar novos arquivos sem antes entender o contexto. Ele exige que a IA apresente informações importantes antes de permitir a modificação.

Quando usar

  • ✓Ao trabalhar em projetos de código com muitos arquivos interligados.
  • ✓Quando o código gerado pela IA precisa seguir um padrão específico.
  • ✓Em projetos que lidam com arquivos de dados com formatos ou estruturas definidas.

Exemplo do que pedir para a IA

“Antes de editar o arquivo 'utils.js', apresente os seguintes fatos: Liste todos os arquivos que importam este arquivo, liste as funções públicas afetadas pela mudança, mostre a estrutura dos arquivos de dados que este arquivo lê/escreve e cite a instrução original do usuário.”

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/affaan-m/ECC/blob/main/skills/gateguard/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/gateguard/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Quando a IA tenta editar ou criar um arquivo, o GateGuard primeiro bloqueia a ação. Em seguida, ele instrui a IA a coletar informações específicas sobre o código e os dados. Só depois que a IA apresenta essas informações é que ela pode tentar a ação novamente.

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 affaan-m/ECC --skill gateguard

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/gateguard/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.

GateGuard — Gate de Pré-Ação para Forçar Fatos

Um hook PreToolUse que força o Claude a investigar antes de editar. Em vez de autoavaliação ("tem certeza?"), ele exige fatos concretos. O ato de investigar cria uma consciência que a autoavaliação nunca proporcionou.

Quando Ativar

  • Trabalhando em qualquer base de código onde edições de arquivos afetam múltiplos módulos
  • Projetos com arquivos de dados que possuem esquemas ou formatos de data específicos
  • Equipes onde o código gerado por IA deve corresponder a padrões existentes
  • Qualquer fluxo de trabalho onde o Claude tende a adivinhar em vez de investigar

Conceito Central

A autoavaliação de LLMs não funciona. Pergunte "você violou alguma política?" e a resposta é sempre "não". Isso é verificado experimentalmente.

Mas perguntar "liste todos os arquivos que importam este módulo" força o LLM a executar Grep e Read. A própria investigação cria um contexto que altera a saída.

Gate de três estágios:

1. DENY  — block the first Edit/Write/Bash attempt
2. FORCE — tell the model exactly which facts to gather
3. ALLOW — permit retry after facts are presented

Nenhum concorrente faz os três. A maioria para na negação.

Evidências

Dois testes A/B independentes, agentes idênticos, mesma tarefa:

Tarefa Com Gate Sem Gate Diferença
Módulo de Analytics 8.0/10 6.5/10 +1.5
Validador de Webhook 10.0/10 7.0/10 +3.0
Média 9.0 6.75 +2.25

Ambos os agentes produzem código que executa e passa nos testes. A diferença é a profundidade do design.

Tipos de Gate

Gate de Edição / MultiEdição (primeira edição por arquivo)

MultiEdição é tratada de forma idêntica — cada arquivo no lote é "gated" individualmente; entradas sem seu próprio file_path são "gated" como a file_path da chamada. NotebookEdit é "gated" como uma Edição de seu notebook_path: mesma classe, regras de chave, crédito e limite verificadas, as perguntas completas (a alteração da célula não é lida), e nunca uma aprovação apenas de comentário.

As perguntas dependem da classe do alvo (veja Perguntas por classe de alvo). Para alvos de código, o gate de Edição pergunta:

Before editing {file_path}, present these facts:

1. List ALL files that import/require this file (search the tree — Glob/Grep, or find/grep via Bash)
2. List the public functions/classes affected by this change
3. If this file reads/writes data files, show field names, structure,
   and date format (use redacted or synthetic values, not raw production data)
4. Quote the user's current instruction verbatim

Esses quatro são o conjunto completo, perguntados sempre que a alteração não pode ser lida com confiança. Quando pode (veja Perguntas se encaixam na alteração), uma edição que não toca em nenhuma declaração pública pede em vez disso os pontos de chamada no arquivo ou seu módulo que dependem do comportamento alterado, e o item 3 é descartado quando a alteração não lida com nenhum dado.

Gate de Escrita (primeira criação de novo arquivo)

Para alvos de código, o gate de Escrita pergunta:

Before creating {file_path}, present these facts:

1. Name the file(s) and line(s) that will call this new file
2. Confirm no existing file serves the same purpose (search the tree — Glob/Grep, or find/grep via Bash)
3. If this file reads/writes data files, show field names, structure,
   and date format (use redacted or synthetic values, not raw production data)
4. Quote the user's current instruction verbatim

O item 3 é descartado quando o novo conteúdo não lida com nenhum dado.

Perguntas se encaixam na alteração

Para alvos de código, o gate lê a alteração que está prestes a permitir (Edição old_string/new_string, cada entrada de MultiEdição para o arquivo, Escrita content) e decide três coisas:

  • Superfície pública: uma linha em um dos lados declara ou expõe um nome público. JS/TS: export, exports, public, declare (arquivos .d.ts sempre); Python: def/class que não começam com _, dunders, __all__, uma atribuição pública em nível de módulo como BASE_URL = ... (__init__.py sempre); Go: nomes func/type/var/const capitalizados, package, linhas começando com maiúscula; Rust: pub, impl, trait, extern, #[macro_export], #[derive], #[repr], #[no_mangle]; shell: definições de função, export, declare -x; PowerShell: function, filter, param, Export-ModuleMember, [CmdletBinding. Um membro de um contêiner exportado também conta, julgado a partir do arquivo: linhas dentro de uma interface exportada, enum, tipo, objeto ou lista de exportação, declarações de membros de uma classe exportada, entradas __all__, atributos de classe pública e campos de dataclass, e membros

…

Perguntas frequentes

Por que a IA precisa apresentar fatos?

A IA pode cometer erros ao adivinhar. Exigir fatos garante que ela entenda o impacto de suas ações, levando a um código mais seguro e de melhor qualidade.

Quais tipos de informações a IA precisa apresentar?

Depende do tipo de arquivo e da mudança. Geralmente, inclui quais outros arquivos usam o arquivo que está sendo alterado, quais partes públicas do código serão afetadas e detalhes sobre quaisquer arquivos de dados envolvidos.

O GateGuard impede a IA de trabalhar?

Não, ele apenas garante que a IA trabalhe de forma mais inteligente e segura, exigindo que ela pense antes de agir, especialmente em partes críticas do código.

Detalhes

Descrição original do autor

PreToolUse fact-forcing gate that denies the first Edit/Write/Bash (including MultiEdit and NotebookEdit) attempt until the agent presents concrete facts (importers, data schemas, verbatim user instruction), then allows retry; A/B-tested at +2.25 quality points. Use when enabling or configuring the GateGuard hook, exempting paths via env vars, or handling first-touch denials.

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#195
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas