Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

testing-handbook-generator

Trail of Bits Testing Handbook(appsec.guide)を解析し、セキュリティテストツールや技法に関するClaude Codeスキルを自動生成するメタスキルです。ハンドブックの内容をもとに新しいスキルを作成したい場合に使用します。

description の原文を見る

> Meta-skill that analyzes the Trail of Bits Testing Handbook (appsec.guide) and generates Claude Code skills for security testing tools and techniques. Use when creating new skills based on handbook content.

SKILL.md 本文

Testing Handbook Skill Generator

Trail of Bits Testing Handbook から Claude Code スキルを生成および保守します。

使用時機

このスキルを呼び出す場合:

  • ハンドブックコンテンツから新しいセキュリティテストスキルを作成する
  • ユーザーが「testing handbook」「appsec.guide」に言及するか、スキル生成について質問する
  • 一括スキル生成またはリフレッシュが必要な場合

使用しない場合:

  • 一般的なセキュリティテスト質問(生成されたスキルを使用)
  • ハンドブック以外のスキル作成

ハンドブックの場所

このスキルには Testing Handbook リポジトリが必要です。詳細は discovery.md を参照してください。

クイックリファレンス: ./testing-handbook../testing-handbook~/testing-handbook を確認 → ユーザーに確認 → 最後の手段としてクローン。

リポジトリ: https://github.com/trailofbits/testing-handbook

ワークフロー概要

Phase 0: Setup              Phase 1: Discovery
┌─────────────────┐        ┌─────────────────┐
│ Locate handbook │   →    │ Analyze handbook│
│ - Find or clone │        │ - Scan sections │
│ - Confirm path  │        │ - Classify types│
└─────────────────┘        └─────────────────┘
         ↓                          ↓
Phase 3: Generation        Phase 2: Planning
┌─────────────────┐        ┌─────────────────┐
│ TWO-PASS GEN    │   ←    │ Generate plan   │
│ Pass 1: Content │        │ - New skills    │
│ Pass 2: X-refs  │        │ - Updates       │
│ - Write to gen/ │        │ - Present user  │
└─────────────────┘        └─────────────────┘
         ↓
Phase 4: Testing           Phase 5: Finalize
┌─────────────────┐        ┌─────────────────┐
│ Validate skills │   →    │ Post-generation │
│ - Run validator │        │ - Update README │
│ - Test activation│       │ - Update X-refs │
│ - Fix issues    │        │ - Self-improve  │
└─────────────────┘        └─────────────────┘

スコープ制限

以下の場所のみ変更:

  • plugins/testing-handbook-skills/skills/[skill-name]/* - 生成されたスキル (testing-handbook-generator の同階層)
  • plugins/testing-handbook-skills/skills/testing-handbook-generator/* - セルフ改善
  • リポジトリルートの README.md - 生成されたスキルをテーブルに追加

変更または分析しない:

  • 他のプラグイン (plugins/property-based-testing/plugins/static-analysis/ など)
  • このプラグイン外の他のスキル

testing-handbook-skills/ 外のスキルをスキャンしたり、コンテキストに取り込まないでください。ハンドブックコンテンツおよびそこから参照されるリソースのみに基づいてスキルを生成します。

クイックリファレンス

セクション → スキルタイプマッピング

ハンドブックセクションスキルタイプテンプレート
/static-analysis/[tool]/Tool Skilltool-skill.md
/fuzzing/[lang]/[fuzzer]/Fuzzer Skillfuzzer-skill.md
/fuzzing/techniques/Technique Skilltechnique-skill.md
/crypto/[tool]/Domain Skilldomain-skill.md
/web/[tool]/Tool Skilltool-skill.md

スキル候補シグナル

シグナル示す内容
bookCollapseSection: true を含む _index.md主要なツール/トピック
番号付きファイル (00-, 10-, 20-)構造化コンテンツ
techniques/ サブセクション方法論的コンテンツ
99-resources.md または 91-resources.md外部リンクがある

除外シグナル

シグナルアクション
frontmatter の draft: trueセクションをスキップ
空のディレクトリセクションをスキップ
テンプレート/プレースホルダーファイルセクションをスキップ
GUI のみのツール (例: web/burp/)セクションをスキップ (Claude は GUI ツールを操作できません)

決定木

スキル生成を開始する?

├─ ハンドブックを分析してプランを構築する必要がある?
│  └─ 読む: discovery.md
│     (ハンドブック分析方法論、プラン形式)
│
├─ スキル生成エージェントを生成する?
│  └─ 読む: agent-prompt.md
│     (フルプロンプトテンプレート、変数リファレンス、バリデーションチェックリスト)
│
├─ 特定のスキルタイプを生成する?
│  └─ 適切なテンプレートを読む:
│     ├─ Tool (Semgrep, CodeQL) → templates/tool-skill.md
│     ├─ Fuzzer (libFuzzer, AFL++) → templates/fuzzer-skill.md
│     ├─ Technique (harness, coverage) → templates/technique-skill.md
│     └─ Domain (crypto, web) → templates/domain-skill.md
│
├─ 生成されたスキルを検証する?
│  └─ 実行: scripts/validate-skills.py
│     その後、読む: testing.md でアクティベーションテスト
│
├─ 生成後にファイナライズする?
│  └─ 見る: 下記の Post-Generation Tasks
│     (main README を更新、スキルクロスリファレンスを更新、セルフ改善)
│
└─ 特定セクションからの高速生成?
   └─ 上記のクイックリファレンスを使用、テンプレートを直接適用

Two-Pass Generation (Phase 3)

生成はtwo-pass アプローチを使用して、前方参照の問題を解決します (存在しないまだ他のスキルを参照しているスキル)。

Pass 1: Content Generation (並列)

Related Skills セクションなしで、すべてのスキルを並列で生成します:

Pass 1 - 5つのスキルを並列で生成中:
├─ Agent 1: libfuzzer (fuzzer) → skills/libfuzzer/SKILL.md
├─ Agent 2: aflpp (fuzzer) → skills/aflpp/SKILL.md
├─ Agent 3: semgrep (tool) → skills/semgrep/SKILL.md
├─ Agent 4: harness-writing (technique) → skills/harness-writing/SKILL.md
└─ Agent 5: wycheproof (domain) → skills/wycheproof/SKILL.md

各エージェントは: pass=1 を使用 (コンテンツのみ、Related Skills は空)

Pass 1 エージェント:

  • Related Skills を除くすべてのセクションを生成
  • プレースホルダーを残す: ## Related Skills\n\n<!-- PASS2: populate after all skills exist -->
  • 出力レポートに含む: references: DEFERRED

Pass 2: Cross-Reference Population (順序)

すべての Pass 1 エージェント完了後、Pass 2 を実行して Related Skills を入力します:

Pass 2 - クロスリファレンスを入力中:
├─ すべての生成スキル名を skills/*/SKILL.md から読む
├─ 各スキルについて、以下に基づいて関連スキルを決定:
│   ├─ discovery からの related_sections (ハンドブック構造)
│   ├─ スキルタイプの関係 (fuzzers → techniques)
│   └─ コンテンツ内での明示的な言及
└─ 各スキルの SKILL.md の Related Skills セクションを更新

Pass 2 プロセス:

  1. すべての生成スキル名を収集: ls -d skills/*/SKILL.md
  2. 各スキルについて、discovery からのマッピングを使用して関連スキルを特定
  3. 各 SKILL.md を編集してプレースホルダーを実際のリンクに置き換え
  4. クロスリファレンスの存在を検証 (リンク切れなし)

エージェントプロンプトテンプレート

完全なプロンプトテンプレートについては agent-prompt.md を参照してください:

  • 変数置換リファレンス (pass 変数を含む)
  • 前記述バリデーションチェックリスト
  • Hugo shortcode 変換ルール
  • ラインカウント分割ルール
  • エラーハンドリングガイダンス
  • 出力レポート形式

結果の収集

Pass 1 後: 出力レポートを集計、すべてのスキルが生成されたことを確認。 Pass 2 後: バリデーターを実行してクロスリファレンスを確認。

エージェント失敗への対応

エージェントが失敗するか無効な出力を生成する場合:

失敗タイプ検出復旧アクション
エージェント がクラッシュ出力レポートなし同じ入力で単一エージェントを再実行
バリデーション失敗出力レポートがエラーを表示ギャップ/警告を確認、手動で修正するか再実行
間違ったスキルタイプコンテンツがテンプレートと一致しない修正した type パラメータで再実行
コンテンツが不足出力レポートがギャップをリスト軽微な場合は受け入れるか、追加の related_sections を提供
Pass 2 リンク切れバリデーターが不足しているスキルを表示スキルがスキップされたかどうかを確認、リファレンスを更新

重要: 単一エージェント失敗のために並列バッチ全体を再実行しないでください。個別に失敗を修正します。

単一スキル再生成

バッチ全体を再実行せずに単一スキルを再生成:

# 単一スキルを再生成 (Pass 1 - コンテンツのみ)
"Use testing-handbook-generator to regenerate the {skill-name} skill from section {section_path}"

# 例:
"Use testing-handbook-generator to regenerate the libfuzzer skill from section fuzzing/c-cpp/10-libfuzzer"

再生成ワークフロー:

  1. ハンドブックセクションを再読して新しいコンテンツを取得
  2. 適切なテンプレートを適用
  3. skills/{skill-name}/SKILL.md に書き込み (既存を上書き)
  4. そのスキルのみについて Pass 2 を再実行してクロスリファレンスを更新
  5. 単一スキルでバリデーターを実行: uv run scripts/validate-skills.py --skill {skill-name}

出力場所

生成されたスキルは以下に書き込まれます:

skills/[skill-name]/SKILL.md

各スキルは潜在的なサポートファイル用に独自のディレクトリを取得します (testing-handbook-generator の同階層)。

品質チェックリスト

生成されたスキルを配信する前に:

  • すべてのハンドブックセクションが分析された (Phase 1)
  • プランが生成前にユーザーに提示された (Phase 2)
  • 並列エージェントが起動 - スキルごとに1つ (Phase 3)
  • テンプレートがスキルタイプに応じて正しく適用された
  • バリデーターが成功: uv run scripts/validate-skills.py
  • アクティベーションテストが成功 - testing.md を参照
  • メイン README.md が生成されたスキルテーブルで更新された
  • README.md Skills Cross-Reference グラフが更新された
  • セルフ改善ノートが記録された
  • ユーザーに要約で通知された

Post-Generation Tasks

1. Main README を更新

スキルを生成した後、リポジトリのメイン README.md を更新してそれらをリストします。

形式: 生成されたスキルをテーブル「利用可能なプラグイン」に追加します。testing-handbook-generator は作成者として プレーンテキスト (リンクなし) を使用します。

例:

| Plugin | Description | Author |
|--------|-------------|--------|
| ... other plugins ... |
| [testing-handbook-skills](plugins/testing-handbook-skills/) | Testing Handbook からスキルを生成するメタスキル | Paweł Płatek |
| [libfuzzer](plugins/testing-handbook-skills/skills/libfuzzer/) | C/C++ 用 libFuzzer によるカバレッジガイド型ファジング | testing-handbook-generator |
| [aflpp](plugins/testing-handbook-skills/skills/aflpp/) | AFL++ を使用したマルチコアファジング | testing-handbook-generator |
| [semgrep](plugins/testing-handbook-skills/skills/semgrep/) | バグを見つけるための高速スタティック分析 | testing-handbook-generator |

2. Skills Cross-Reference を更新

スキルを生成した後、README.mdSkills Cross-Reference セクションを mermaid グラフで更新してスキル関係を表示します。

プロセス:

  1. 各生成スキルの SKILL.md を読んで、その ## Related Skills セクションを抽出
  2. mermaid グラフをビルドします。ノードはスキルタイプ (Fuzzers、Techniques、Tools、Domain) でグループ化
  3. Related Skills の関係に基づいてエッジを追加:
    • ソリッド矢印 (-->) は主なテクニック依存関係用
    • 破線矢印 (-.->) は代替ツール提案用
  4. README.md の既存 mermaid コードブロックを置き換え

エッジ分類:

関係矢印スタイル
Fuzzer → Technique-->libfuzzer --> harness-writing
Tool → Tool (代替)-.->semgrep -.-> codeql
Fuzzer → Fuzzer (代替)-.->libfuzzer -.-> aflpp
Technique → Technique-->harness-writing --> coverage-analysis

バリデーション: 更新後、validate-skills.py を実行してすべての参照スキルが存在することを確認します。

3. Self-Improvement

各生成実行後、今後の実行を改善する方法を検討します。

以下に改善を記録:

  • テンプレート (不足しているセクション、より良い構造)
  • Discovery ロジック (見逃されたパターン、偽陽性)
  • コンテンツ抽出 (処理されていない shortcode、フォーマティング問題)

更新プロセス:

  1. 生成中に発生した問題をメモ
  2. 問題を引き起こしたパターンを特定
  3. 関連ファイルを更新:
    • SKILL.md - ワークフロー、決定木、クイックリファレンスの更新
    • templates/*.md - テンプレート改善
    • discovery.md - 検出ロジック更新
    • testing.md - 新しいバリデーションチェック
  4. コミットメッセージで改善をドキュメント

セルフ改善の例:

Issue: libFuzzer スキルにサニタイザーフラグテーブルが不足
Fix: templates/fuzzer-skill.md を更新して ## Compiler Flags セクションを追加

使用例

完全な Discovery と Generation

ユーザー: "testing handbook からスキルを生成"

1. ハンドブックを探す (共通場所をチェック、ユーザーに確認するか、クローン)
2. discovery.md で方法論を読む
3. {handbook_path}/content/docs/ でハンドブックをスキャン
4. タイプを含む候補リストを構築
5. プランをユーザーに提示
6. 承認時、各スキルを適切なテンプレートを使用して生成
7. 生成されたスキルを検証
8. 生成されたスキルテーブルでメイン README.md を更新
9. Related Skills セクションから README.md Skills Cross-Reference グラフを更新
10. セルフ改善: 今後の実行用のテンプレート/discovery 問題をメモ
11. 結果を報告

単一セクション生成

ユーザー: "libFuzzer セクションのスキルを作成"

1. /testing-handbook/content/docs/fuzzing/c-cpp/10-libfuzzer/ を読む
2. タイプを特定: Fuzzer Skill
3. templates/fuzzer-skill.md を読む
4. コンテンツを抽出、テンプレートを適用
5. skills/libfuzzer/SKILL.md に書き込み
6. 検証して報告

ヒント

やること:

  • 常に生成前にプランを提示
  • スキルタイプに適切なテンプレートを使用
  • コードブロックをそのまま保存
  • 生成後に検証

やらないこと:

  • ユーザーの承認なしに生成
  • ビデオ以外の外部リソース取得をスキップ (WebFetch を使用)
  • ビデオ URL をフェッチ (YouTube、Vimeo - タイトルのみ)
  • ハンドブック画像を直接含める
  • バリデーションステップをスキップ
  • SKILL.md ごとに 500 行を超える

初回利用: discovery.md から始めてハンドブック分析プロセスを理解します。

テンプレートリファレンス: スキルタイプテンプレート については templates/ ディレクトリを参照します。

バリデーション: 品質保証方法論については testing.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

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

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