Pular para o conteúdo
Skillpedia
Código em geral48 mil · #4100

semgrep-rule-variant-creator

Permite que seu agente adapte regras de segurança para diferentes linguagens de programação. Ele cria versões da regra para cada linguagem.

O que ela faz

Esta ferramenta ajuda a adaptar regras de segurança de código (chamadas 'Semgrep rules') para diferentes linguagens de programação. Se você tem uma regra que funciona em uma linguagem, ela pode ajudar a criar uma versão dessa regra para outras linguagens.

Quando usar

  • ✓Adaptar uma regra de segurança existente para uma nova linguagem.
  • ✓Criar versões de uma mesma verificação de segurança para várias linguagens em um projeto.
  • ✓Expandir a cobertura de segurança do seu código para linguagens que você ainda não cobria.

Exemplo do que pedir para a IA

“Adapte a regra 'sql-injection' para Go e Java.”

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/semgrep-rule-variant-creator/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/semgrep-rule-variant-creator/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa se a regra original faz sentido na nova linguagem, cria exemplos de código para testar a regra e depois gera a nova regra e seus testes. Ela garante que cada nova regra seja testada independentemente.

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 semgrep-rule-variant-creator

Ou baixe só o arquivo:

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

Criador de Variantes de Regras Semgrep

Porte regras Semgrep existentes para novas linguagens de destino com análise de aplicabilidade adequada e validação orientada por testes.

Quando Usar

Cenários ideais:

  • Portar uma regra Semgrep existente para uma ou mais linguagens de destino
  • Criar variantes específicas de linguagem de um padrão de vulnerabilidade universal
  • Expandir a cobertura de regras em uma base de código poliglota
  • Traduzir regras entre linguagens com construtos equivalentes

Quando NÃO Usar

NÃO use esta habilidade para:

  • Criar uma nova regra Semgrep do zero (use semgrep-rule-creator em vez disso)
  • Executar regras existentes em código
  • Linguagens onde o padrão de vulnerabilidade fundamentalmente não se aplica
  • Variações sintáticas menores dentro da mesma linguagem

Especificação de Entrada

Esta habilidade requer:

  1. Regra Semgrep existente - Caminho do arquivo YAML ou conteúdo da regra YAML
  2. Linguagens de destino - Uma ou mais linguagens para portar (por exemplo, "Golang e Java")

Especificação de Saída

Para cada linguagem de destino aplicável, produz:

<original-rule-id>-<language>/
├── <original-rule-id>-<language>.yaml     # Ported Semgrep rule
└── <original-rule-id>-<language>.<ext>    # Test file with annotations

Exemplo de saída para portar sql-injection para Go e Java:

sql-injection-golang/
├── sql-injection-golang.yaml
└── sql-injection-golang.go

sql-injection-java/
├── sql-injection-java.yaml
└── sql-injection-java.java

Racionalizações para Rejeitar

Ao portar regras Semgrep, rejeite estes atalhos comuns:

Racionalização Por que Falha Abordagem Correta
"Estrutura do padrão é idêntica" ASTs diferentes entre linguagens Sempre descarregue o AST para a linguagem de destino
"Mesma vulnerabilidade, mesma detecção" Fluxo de dados difere entre linguagens Analise os idiomas da linguagem de destino
"Regra não precisa de testes, pois a original funcionou" Casos extremos da linguagem diferem Escreva NOVOS casos de teste para o destino
"Pular aplicabilidade - obviamente se aplica" Alguns padrões são específicos da linguagem Conclua a análise de aplicabilidade primeiro
"Criarei todas as variantes e depois testarei" Erros se acumulam, difíceis de depurar Conclua o ciclo completo por linguagem
"Equivalente de biblioteca é próximo o suficiente" Similaridade superficial esconde diferenças Verifique se as semânticas da API correspondem
"Apenas traduza a sintaxe 1:1" Linguagens têm idiomas diferentes Pesquise os padrões da linguagem de destino

Nível de Rigor

Este fluxo de trabalho é rigoroso - não pule etapas:

  • Análise de aplicabilidade é obrigatória: Não presuma que os padrões se traduzem
  • Cada linguagem é independente: Conclua o ciclo completo antes de passar para a próxima
  • Teste primeiro para cada variante: Nunca escreva uma regra sem casos de teste
  • 100% de aprovação nos testes é exigido: "A maioria dos testes passa" não é aceitável

Visão Geral

Esta habilidade orienta a criação de variantes específicas de linguagem de regras Semgrep existentes. Cada linguagem de destino passa por um ciclo independente de 4 fases:

FOR EACH target language:
  Phase 1: Applicability Analysis → Verdict
  Phase 2: Test Creation (Test-First)
  Phase 3: Rule Creation
  Phase 4: Validation
  (Complete full cycle before moving to next language)

Conhecimento Fundamental

A habilidade semgrep-rule-creator é a referência autoritária para os fundamentos da criação de regras Semgrep. Embora esta habilidade se concentre em portar regras existentes para novas linguagens, os princípios centrais de escrita de regras de qualidade permanecem os mesmos.

Consulte semgrep-rule-creator para orientação sobre:

  • Quando usar modo de contaminação (taint mode) vs. correspondência de padrões - Escolhendo a abordagem correta para o tipo de vulnerabilidade
  • Metodologia de teste primeiro - Por que os testes vêm antes das regras e como escrever casos de teste eficazes
  • Antipadrões a evitar - Erros comuns como padrões excessivamente amplos ou excessivamente específicos
  • Iterar até que os testes passem - O loop de validação e técnicas de depuração
  • Otimização de regras - Removendo padrões redundantes após a aprovação dos testes

Ao portar uma regra, você está aplicando esses mesmos princípios em um novo contexto de linguagem. Se tiver dúvidas sobre a estrutura ou abordagem da regra, consulte semgrep-rule-creator primeiro.

Fluxo de Trabalho de Quatro Fases

Fase 1: Análise de Aplicabilidade

Antes de portar, determine se o padrão se aplica à linguagem de destino.

Critérios de análise:

  1. A classe de vulnerabilidade existe na linguagem de destino?
  2. Existe um construto equivalente (função, padrão, biblioteca)?
  3. As semânticas são suficientemente semelhantes para uma detecção significativa?

Opções de veredito:

  • APPLICABLE → Prosseguir com a criação da variante

…

Perguntas frequentes

O que são 'Semgrep rules'?

São como receitas que ensinam um programa a encontrar padrões específicos de código, geralmente para identificar problemas de segurança ou bugs.

Por que não posso simplesmente copiar a regra para outra linguagem?

Cada linguagem tem suas próprias 'manias' e formas de fazer as coisas. Uma regra que funciona perfeitamente em uma linguagem pode não funcionar ou detectar coisas erradas em outra, mesmo que pareçam semelhantes.

Preciso saber programar para usar isso?

Não é necessário ser um programador experiente. A ferramenta automatiza o processo de adaptação, mas entender o básico do que a regra original faz ajuda a escolher as linguagens corretas.

Detalhes

Descrição original do autor

Creates language variants of existing Semgrep rules. Use when porting a Semgrep rule to specified target languages. Takes an existing rule and target languages as input, produces independent rule+test directories for each language.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas