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
Mensagem pronta para colar
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 gateguardOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/gateguard/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.
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.tssempre); Python:def/classque não começam com_, dunders,__all__, uma atribuição pública em nível de módulo comoBASE_URL = ...(__init__.pysempre); Go: nomesfunc/type/var/constcapitalizados,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
Comentários
- …
Mais skills deste repositório
accessibility
Ajuda seu agente a criar interfaces que todos possam usar. Garante que sites e aplicativos funcionem bem para pessoas com deficiência, como cegos ou com mobilidade reduzida.
affaan-m/ECC
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC
Skills parecidas
mcp-builder
Ajuda seu agente a criar servidores que conectam LLMs a serviços externos. Essencial para integrar APIs e serviços usando Python ou Node/TypeScript.
anthropics/skills
prepare-mcp-integration
Prepara integrações com fornecedores (MCP) através de pesquisa e aprovação humana. Segue um processo guiado para novas integrações.
paperclipai/paperclip
first-task
Guia o agente na primeira tarefa do usuário. Ele interpreta a resposta inicial, esclarece o objetivo e propõe um plano ou tarefa única para aprovação.
paperclipai/paperclip