Agent Skills by ALSEL
Anthropic Claudeその他⭐ リポ 0品質スコア 50/100

semgrep-rule-variant-creator

既存のSemgrepルールを指定した対象言語向けに移植する際に使用します。入力として既存のルールと対象言語を受け取り、各言語ごとに独立したルール+テストディレクトリを生成します。

description の原文を見る

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.

SKILL.md 本文

Semgrep ルール バリアント クリエイター

既存の Semgrep ルールを新しいターゲット言語にポートします。適用可能性の分析とテスト駆動型の検証を含みます。

使用するべき場面

理想的なシナリオ:

  • 既存の Semgrep ルールを 1 つ以上のターゲット言語にポートする場合
  • 汎用の脆弱性パターンの言語固有バリアントを作成する場合
  • ポリグロット コードベース全体でルール カバレッジを拡大する場合
  • 等価な構造を持つ言語間でルールを変換する場合

使用してはいけない場面

次の場合はこのスキルを使用しないでください:

  • 新しい Semgrep ルールを最初から作成する場合 (semgrep-rule-creator を使用してください)
  • 既存のルールをコードに対して実行する場合
  • 脆弱性パターンが根本的に適用されない言語
  • 同一言語内での軽微な構文の違い

入力仕様

このスキルに必要な入力:

  1. 既存の Semgrep ルール - YAML ファイルパスまたは YAML ルール コンテンツ
  2. ターゲット言語 - ポート先の 1 つ以上の言語 (例: "Golang と Java")

出力仕様

適用可能な各ターゲット言語に対して、以下を生成します:

<original-rule-id>-<language>/
├── <original-rule-id>-<language>.yaml     # ポート済み Semgrep ルール
└── <original-rule-id>-<language>.<ext>    # アノテーション付きテスト ファイル

sql-injection を Go と Java にポートする場合の出力例:

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

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

却下すべき論理的根拠

Semgrep ルールをポートする際、以下の一般的なショートカットは却下してください:

論理的根拠失敗する理由正しいアプローチ
「パターン構造は同じ」言語によって AST が異なる常にターゲット言語の AST をダンプする
「同じ脆弱性、同じ検出」データフローは言語間で異なるターゲット言語のイディオムを分析する
「ルールはテストを必要としない (オリジナルは機能した)」言語のエッジケースは異なるターゲット用の新しいテストケースを作成する
「適用可能性をスキップする - 明らかに適用される」一部のパターンは言語固有最初に完全な適用可能性分析を行う
「すべてのバリアントを作成してからテストする」エラーが複合し、デバッグが困難になる言語ごとに完全なサイクルを完了する
「ライブラリ相当は十分に似ている」表面的な類似性は相違点を隠しているAPI のセマンティクスが一致することを検証する
「構文を 1 対 1 で変換するだけ」言語は異なるイディオムを持っているターゲット言語のパターンを研究する

厳格性レベル

このワークフローは 厳格 です - ステップをスキップしないでください:

  • 適用可能性分析は必須: パターンが変換されると仮定しないでください
  • 各言語は独立: 次の言語に進む前に完全なサイクルを完了してください
  • 各バリアントのテストファースト: テストケースなしでルールを書かないでください
  • 100% テスト合格が必須: 「ほとんどのテストが合格」は受け入れられません

概要

このスキルは、既存の Semgrep ルールの言語固有バリアントの作成をガイドします。各ターゲット言語は独立した 4 フェーズ サイクルを通過します:

各ターゲット言語について:
  フェーズ 1: 適用可能性分析 → 判定
  フェーズ 2: テスト作成 (テストファースト)
  フェーズ 3: ルール作成
  フェーズ 4: 検証
  (次の言語に移る前に完全なサイクルを完了)

基礎知識

semgrep-rule-creator スキルは Semgrep ルール作成の基礎の権威あるリファレンスです。 このスキルは既存のルールを新しい言語にポートすることに焦点を当てていますが、品質の高いルール作成の核となる原則は変わりません。

以下のガイダンスについては semgrep-rule-creator を参照してください:

  • Taint モード対パターン マッチング - 脆弱性の種類に適したアプローチの選択
  • テストファースト方法論 - テストがルールより先に来る理由と効果的なテストケースの書き方
  • 回避すべきアンチパターン - 過度に広いパターンや過度に具体的なパターンなどの一般的な間違い
  • テストが合格するまでの反復 - 検証ループとデバッグ技術
  • ルール最適化 - テスト合格後の冗長パターンの削除

ルールをポートする際、これらの同じ原則を新しい言語コンテキストで適用しています。ルール構造またはアプローチについて不確実な場合は、まず semgrep-rule-creator を参照してください。

4 フェーズ ワークフロー

フェーズ 1: 適用可能性分析

ポートする前に、パターンがターゲット言語に適用されるかどうかを判定します。

分析基準:

  1. ターゲット言語に脆弱性クラスが存在するか?
  2. 等価な構造 (関数、パターン、ライブラリ) が存在するか?
  3. セマンティクスは意味のある検出のために十分に類似しているか?

判定オプション:

  • APPLICABLE → バリアント作成に進む
  • APPLICABLE_WITH_ADAPTATION → 進めるが大きな変更が必要
  • NOT_APPLICABLE → この言語をスキップし、理由を文書化する

詳細なガイダンスについては applicability-analysis.md を参照してください。

フェーズ 2: テスト作成 (テストファースト)

常にルールの前にテストを作成してください。

ターゲット言語のイディオムを含むテスト ファイルを作成します:

  • 最小 2 つの脆弱なケース (ruleid:)
  • 最小 2 つの安全なケース (ok:)
  • 言語固有のエッジケースを含める
// ruleid: sql-injection-golang
db.Query("SELECT * FROM users WHERE id = " + userInput)

// ok: sql-injection-golang
db.Query("SELECT * FROM users WHERE id = ?", userInput)

フェーズ 3: ルール作成

  1. AST を分析: semgrep --dump-ast -l <lang> test-file
  2. パターンを翻訳 してターゲット言語の構文に合わせる
  3. メタデータを更新: language キー、メッセージ、ルール ID
  4. イディオムに適応: 言語固有の構造を処理する

翻訳ガイダンスについては language-syntax-guide.md を参照してください。

フェーズ 4: 検証

# YAML を検証
semgrep --validate --config rule.yaml

# テストを実行
semgrep --test --config rule.yaml test-file

チェックポイント: 出力は All tests passed を表示しなければいけません。

Taint ルールのデバッグの場合:

semgrep --dataflow-traces -f rule.yaml test-file

詳細なワークフローとトラブルシューティングについては workflow.md を参照してください。

クイック リファレンス

タスクコマンド
テストを実行semgrep --test --config rule.yaml test-file
YAML を検証semgrep --validate --config rule.yaml
AST をダンプsemgrep --dump-ast -l <lang> <file>
Taint フローをデバッグsemgrep --dataflow-traces -f rule.yaml file

ルール作成との主な相違点

側面semgrep-rule-creatorこのスキル
入力バグ パターンの説明既存ルール + ターゲット言語
出力単一のルール+テスト複数のルール+テスト ディレクトリ
ワークフロー単一の作成サイクル言語ごとの独立したサイクル
フェーズ 1問題分析言語ごとの適用可能性分析
ライブラリ調査常に関連オプション (オリジナルがライブラリを使用する場合)

ドキュメント

必須: ルールをポートする前に、関連する Semgrep ドキュメントを読んでください:

次のステップ

  • 適用可能性分析のガイダンスについては、applicability-analysis.md を参照してください
  • 言語翻訳のガイダンスについては、language-syntax-guide.md を参照してください
  • 詳細なワークフローと例については、workflow.md を参照してください

ライセンス: CC-BY-SA-4.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
trailofbits
リポジトリ
trailofbits/skills
ライセンス
CC-BY-SA-4.0
最終更新
不明

Source: https://github.com/trailofbits/skills / ライセンス: CC-BY-SA-4.0

関連スキル

汎用その他⭐ リポ 1,982

superfluid

Superfluidプロトコルおよびそのエコシステムに関するナレッジベースです。Superfluidについて情報を検索する際は、ウェブ検索の前にこちらを参照してください。対応キーワード:Superfluid、CFA、GDA、Super App、Super Token、stream、flow rate、real-time balance、pool(member/distributor)、IDA、sentinels、liquidation、TOGA、@sfpro/sdk、semantic money、yellowpaper、whitepaper

by LeoYeAI
汎用その他⭐ リポ 100

civ-finish-quotes

実質的なタスクが真に完了した際に、文明風の儀式的な引用句を追加します。ユーザーやエージェントが機能追加、リファクタリング、分析、設計ドキュメント、プロセス改善、レポート、執筆タスクといった実際の成果物を完成させるときに、明示的な依頼がなくても使用します。短い返信や小さな修正、未完成の作業には適用しません。

by huxiuhan
汎用その他⭐ リポ 1,110

nookplot

Base(Ethereum L2)上のAIエージェント向け分散型調整ネットワークです。エージェントがオンチェーンアイデンティティを登録する、コンテンツを公開する、他のエージェントにメッセージを送る、マーケットプレイスで専門家を雇う、バウンティを投稿・請求する、レピュテーションを構築する、共有プロジェクトで協業する、リサーチチャレンジを解くことでNOOKをマイニングする、キュレーションされたナレッジを備えたスタンドアロンオンチェーンエージェントをデプロイする、またはアグリーメントとリワードで収益を得る場合に利用できます。エージェントネットワーク、エージェント調整、分散型エージェント、NOOKトークン、マイニングチャレンジ、ナレッジバンドル、エージェントレピュテーション、エージェントマーケットプレイス、ERC-2771メタトランザクション、Prepare-Sign-Relay、AgentFactory、またはNookplotが言及された場合にトリガーされます。

by BankrBot
汎用その他⭐ リポ 59

web3-polymarket

Polygon上でのPolymarket予測市場取引統合です。認証機能(L1 EIP-712、L2 HMAC-SHA256、ビルダーヘッダー)、注文発注(GTC/GTD/FOK/FAK、バッチ、ポストオンリー、ハートビート)、市場データ(Gamma API、Data API、オーダーブック、サブグラフ)、WebSocketストリーミング(市場・ユーザー・スポーツチャネル)、CTF操作(分割、統合、償却、ネガティブリスク)、ブリッジ機能(入金、出金、マルチチェーン)、およびガスレスリレイトランザクションに対応しています。AIエージェント、自動マーケットメーカー、予測市場UI、またはPolygraph上のPolymarketと統合するアプリケーション構築時に活用できます。

by elophanto
汎用その他⭐ リポ 52

ethskills

Ethereum、EVM、またはブロックチェーン関連のリクエストに対応します。スマートコントラクト、dApps、ウォレット、DeFiプロトコルの構築、監査、デプロイ、インタラクションに適用されます。Solidityの開発、コントラクトアドレス、トークン規格(ERC-20、ERC-721、ERC-4626など)、Layer 2ネットワーク(Base、Arbitrum、Optimism、zkSync、Polygon)、Uniswap、Aave、Curveなどのプロトコルとの統合をカバーします。ガスコスト、コントラクトのデシマル設定、オラクルセキュリティ、リエントランシー、MEV、ブリッジング、ウォレット管理、オンチェーンデータの取得、本番環境へのデプロイ、プロトコル進化(EIPライフサイクル、フォーク追跡、今後の変更予定)といったトピックを含みます。

by jiayaoqijia
汎用その他⭐ リポ 44

xxyy-trade

このスキルは、ユーザーが「トークン購入」「トークン売却」「トークンスワップ」「暗号資産取引」「取引ステータス確認」「トランザクション照会」「トークンスキャン」「フィード」「チェーン監視」「トークン照会」「トークン詳細」「トークン安全性確認」「ウォレット一覧表示」「マイウォレット」「AIスキャン」「自動スキャン」「ツイートスキャン」「オンボーディング」「IP確認」「IPホワイトリスト」「トークン発行」「自動売却」「損切り」「利益確定」「トレーリングストップ」「保有者」「トップホルダー」「KOLホルダー」などをリクエストした場合、またはSolana/ETH/BSC/BaseチェーンでXXYYを経由した取引について言及した場合に使用します。XXYY Open APIを通じてオンチェーン取引とデータ照会を実現します。

by Jimmy-Holiday
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: trailofbits · trailofbits/skills · ライセンス: CC-BY-SA-4.0