Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #3335

infinity

Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.

O que ela faz

Esta ferramenta garante que dados vindos de fora do seu programa sejam verificados antes de serem usados. Ela cria uma camada de segurança para evitar erros e problemas.

Quando usar

  • ✓Ao receber informações de um usuário.
  • ✓Ao usar dados de outras fontes externas (APIs, arquivos).
  • ✓Ao configurar seu programa com variáveis.

Exemplo do que pedir para a IA

“Verifique todas as entradas de dados externas antes de usá-las.”

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/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/infinity/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/infinity/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Primeiro, ela identifica onde os dados externos entram no programa. Depois, classifica esses dados como confiáveis ou não. Por fim, aplica verificações para garantir que os dados não confiáveis estejam corretos antes de serem utilizados.

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 infinity

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/infinity/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.

infinity — Protocolo de Limite e Validação de Entrada

Filosofia Central

Nada não confiável chega ao núcleo — é parado antes do contato. Nenhum dado externo toca o código-fonte bruto. Cada limite onde os dados entram no sistema deve ter um filtro.

A principal fonte de bugs silenciosos, travamentos e vulnerabilidades são dados externos que chegam em um formato inesperado e são usados diretamente sem verificação. Essa habilidade impõe uma camada de filtro em cada ponto de entrada, todas as vezes.


Quando Usar Esta Habilidade

  • Use quando precisar lidar com uma resposta de API
  • Use ao ler a entrada do usuário ou adicionar um manipulador de formulário
  • Use ao trabalhar com variáveis de ambiente ou argumentos de linha de comando
  • Use ao analisar webhooks ou ler do sistema de arquivos
  • Use quando qualquer código chamar .body, .params, .query, .env, fs.read, ou uma resposta de SDK de terceiros

As Quatro Fases

FASE 1 — Detecção de Limite

Antes de escrever ou modificar qualquer código que envolva dados externos, a IA deve identificar e listar todos os pontos de entrada em escopo:

  • Corpos de requisição HTTP, cabeçalhos, parâmetros de consulta
  • Entradas de formulário do usuário e dados enviados pela interface do usuário
  • Variáveis de ambiente e arquivos de configuração
  • Respostas de API de terceiros
  • Cargas úteis de webhook
  • Leituras de arquivos do disco
  • Argumentos de linha de comando
  • Resultados de consulta de banco de dados de fontes externas
  • Mensagens WebSocket

A IA não deve escrever nenhuma lógica de manipulação de dados até que todos os pontos de entrada em escopo sejam listados.


FASE 2 — Classificar Cada Entrada

Para cada ponto de entrada identificado, a IA o classifica em um de três níveis de confiança:

Nível Definição Exemplos
TRUSTED Constantes internas, valores codificados, sua própria configuração em tempo de compilação Valores de enum, padrões codificados, constantes internas
SEMI-TRUSTED Seus próprios serviços internos, APIs internas, infraestrutura controlada Respostas de microsserviços internos, suas próprias leituras de banco de dados
UNTRUSTED Qualquer coisa de usuários, da internet, de terceiros ou do sistema de arquivos Entrada do usuário, respostas de API externas, arquivos carregados, variáveis de ambiente, argumentos de linha de comando

Regra: Entradas TRUSTED podem ser usadas diretamente. Entradas SEMI-TRUSTED e UNTRUSTED devem passar por uma camada de filtro antes de qualquer uso.

A IA gera essa classificação antes de escrever qualquer código de manipulação:

INFINITY — BOUNDARY MAP
─────────────────────────────────────────
Entry Point              | Trust Level  | Filter Required
─────────────────────────────────────────
req.body.email           | UNTRUSTED    | ✓ format + sanitize
process.env.API_KEY      | UNTRUSTED    | ✓ presence + non-empty
internalService.getData()| SEMI-TRUSTED | ✓ schema validate
PAGINATION_LIMIT = 20    | TRUSTED      | ✗ none needed
─────────────────────────────────────────

FASE 3 — Camada de Filtro Obrigatória

Cada entrada UNTRUSTED e SEMI-TRUSTED deve passar por validação antes de atingir qualquer lógica de negócios, armazenamento ou renderização. A IA deve aplicar o tipo de filtro correto para o contexto correto:

Verificação de Tipo

  • Verifique se a entrada é do tipo esperado antes de usá-la
  • Nunca assuma que uma string é uma string, um número é um número, ou um array é um array

Validação de Esquema

  • Para objetos e respostas de API, valide a estrutura antes de acessar campos aninhados
  • Se um campo obrigatório estiver faltando, rejeite — não use um fallback que oculte o problema

Sanitização

  • Remova ou escape o conteúdo antes de renderizar para a interface do usuário (prevenir XSS)
  • Normalize strings antes do armazenamento (remover espaços em branco, capitalização consistente onde apropriado)

Verificações de Presença e Formato

  • Variáveis de ambiente: devem existir e não estar vazias antes do uso
  • IDs e tokens: devem corresponder ao formato esperado antes do uso

Regra de Rejeição

  • Em caso de entrada inválida: rejeite explicitamente e retorne um erro claro
  • Nunca use silenciosamente dados ruins com um fallback
  • Nunca deixe dados ruins passarem para se corrigirem "a jusante"
// WRONG — using raw input directly
const user = await db.find(req.params.id);

// RIGHT — validate before use
const id = req.params.id;
if (!id || typeof id !== 'string' || !isValidUUID(id)) {
  return res.status(400).json({ error: 'Invalid ID format' });
}
const user = await db.find(id);

FASE 4 — Autoverificação Antes de Concluir

Antes que a IA declare qualquer código de manipulação de dados como concluído, ela rastreia cada ponto de entrada e confirma:

INFINITY — VERIFICAÇÃO
─────────────────────────────────────────
Ponto de Entrada     | Filtro Existe | Tipo de Filtro
─────────────────────────────────────────
req.body.email       | ✓ SIM         | formato + sanitizar

…
Perguntas frequentes

Por que é importante verificar os dados?

Dados inesperados podem causar erros, travar o programa ou até mesmo criar falhas de segurança.

O que são 'dados não confiáveis'?

São dados que vêm de fora do seu controle direto, como informações digitadas por usuários, respostas de outras APIs ou configurações do sistema.

O que acontece se os dados não passarem na verificação?

O programa deve avisar sobre o erro claramente, em vez de tentar usar os dados incorretos e causar problemas.

Detalhes

Descrição original do autor

Enforces a strict input boundary protocol (detect, classify, filter, verify) to ensure untrusted data never reaches business logic raw.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas