mcpField
S
sf-eval

sf-eval

github.com/clientell-aiテスト・品質2092 回インストール32 週間前に更新
リポジトリ

sf-eval について

sf-eval は、Salesforce のスキルが AI 生成コードの品質を高めるか評価するスキルです。スキルの有無によるコードを比較し、ベンチマーク、静的チェック、任意コードの評価を行います。

主な機能

  1. 01スキル適用前後のコード比較
  2. 02Salesforce ベンチマークタスク実行
  3. 035 項目での出力採点
  4. 04静的チェックの実行
  5. 05任意コードの評価

活用シーン

  1. 01Salesforce コードへのスキルの効果測定
  2. 02Salesforce の実践基準に沿ったコード確認
  3. 03独自の Salesforce 実装の評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/clientell-ai/salesforce-skills --skill sf-eval

インストール後、Claude Code で/sf-evalを入力して読み込まれたか確認します。

詳細

Salesforce スキル評価ツール

Salesforce スキルによって、AI が生成するコードの品質が向上するかどうかを評価します。スキルのコンテキストがある場合とない場合に生成されたコードを比較し、両方を採点します。

評価モード

モード 1:ベンチマークタスクを実行する

ユーザーが /sf-eval または /sf-eval <task-id> と入力した場合:

  1. evals/benchmarks/tasks.json から利用可能なタスクを読み込みます。

  2. 各タスク(または指定されたタスク)について、次を実行します。

    ステップ A — ベースラインを生成する(スキルのコンテキストなし): Salesforce のスキル知識がないかのように、タスクのプロンプトに対する Salesforce コードを生成します。一般的な LLM が出力するような、動作するものの、Salesforce 固有のベストプラクティスが不足している可能性の高いコードを作成します。プロンプトで明示的に求められていない限り、WITH USER_MODE、トリガーハンドラーパターン、stripInaccessible は使用しないでください。一般的な AI が書くようなコードを作成してください。

    ステップ B — スキルを使ったコードを生成する: 該当するスキルファイル skills/<skill>/SKILL.md とその参照資料を読み込みます。次に、スキルのルール、パターン、注意点をすべて厳密に守ってコードを生成します。

    ステップ C — 両方を採点する: ルーブリック evals/benchmarks/rubric.md と審査用プロンプト evals/benchmarks/judge-prompt.md を読み込みます。各出力を次の 5 つのカテゴリで採点します(各 0~5 点)。

    カテゴリ確認項目
    セキュリティWITH USER_MODE、stripInaccessible、with sharing、インジェクションなし、認証情報のハードコードなし
    ガバナ制限SOQL/DML をループ内で実行していない、Map/Set コレクションを使用している、クエリが効率的
    一括処理対応200 件以上のレコードを処理できる、コレクションを使用している、Trigger.new[0] を使用していない
    パターントリガーハンドラー、サービス/セレクターレイヤー、命名規則
    完全性要件を満たしている、エッジケースに対応している、エラー処理がある、本番環境で使用できる

    ステップ D — レポートを出力する: 次の比較表の形式で出力します。

    ## Task: <task-id>
    **Prompt**: <prompt text>
    
    ### Baseline (No Skills) — X/25
    | Category | Score | Reason |
    |----------|-------|--------|
    | Security | X/5 | ... |
    | Governor Limits | X/5 | ... |
    | Bulkification | X/5 | ... |
    | Patterns | X/5 | ... |
    | Completeness | X/5 | ... |
    
    ### With Skills — X/25
    | Category | Score | Reason |
    |----------|-------|--------|
    | Security | X/5 | ... |
    | Governor Limits | X/5 | ... |
    | Bulkification | X/5 | ... |
    | Patterns | X/5 | ... |
    | Completeness | X/5 | ... |
    
    ### Improvement: +X points (+XX%)
    
  3. すべてのタスクを実行した場合は、最後に次のサマリー表を作成します。

    ## Summary
    | Task | Baseline | With Skills | Delta |
    |------|----------|-------------|-------|
    | ... | X/25 | X/25 | +X |
    | **Average** | **X/25** | **X/25** | **+X (+XX%)** |
    
  4. 完全なレポートを evals/benchmarks/results/BENCHMARK.md に保存します。

モード 2:静的チェック

ユーザーが /sf-eval --check <file> または /sf-eval check <file> と入力した場合:

bash evals/checks/static-checks.sh <file> を実行し、結果を表示します。

モード 3:カスタムコードを採点する

ユーザーが自分のコードを提示し、評価を依頼した場合:

ルーブリック(同じ 5 カテゴリ、合計 25 点)に基づいてコードを採点し、該当するスキルを参照しながら改善案を提示します。

利用可能なベンチマークタスク

タスクの全一覧は evals/benchmarks/tasks.json を確認してください。タスクには次のものがあります。

  • apex-trigger-bulk — ハンドラーパターンと一括処理対応を備えたトリガー
  • apex-batch-cleanup — エラー処理を備えた Batch Apex
  • apex-rest-api — セキュリティを備えた REST エンドポイント
  • apex-callout-service — Named Credentials + Queueable
  • test-trigger-handler — 包括的なテストクラス
  • test-callout-mock — HttpCalloutMock パターン
  • soql-complex-query — 集計 + 最適化
  • soql-dynamic-search — インジェクションを防止した動的 SOQL
  • lwc-record-list — LDS + エラー状態を備えた LWC
  • flow-opportunity-automation — バイパス機能を備えた Flow XML
  • security-audit-apex — セキュリティ違反の修正
  • schema-custom-object — メタデータ XML の生成
  • deploy-cicd-pipeline — SF 用 GitHub Actions
  • data-migration-plan — Bulk API + リレーション
  • apex-platform-events — イベント駆動アーキテクチャ

ベースライン生成に関する重要なルール

「ベースライン」(スキルなし)のコードを生成する際は、一般的な LLM が出力するようなコードを意図的に作成する必要があります。

  • public class を使用する(with sharing は付けない)
  • SOQL で WITH USER_MODE を省略する
  • DML で stripInaccessible を省略する
  • ロジックをトリガーの本体に直接記述する(ハンドラーは使用しない)
  • 単純なループ内で SOQL を実行する場合がある
  • null チェックとエラー処理を省略する
  • Salesforce 固有の最適化を行わず、基本的なパターンを使用する

これは、意図的に質の低いコードを書くということではありません。Salesforce の専門知識を持たない一般的な AI が書くようなコードを作成するということです。ベースラインは動作するものの、プラットフォーム固有のベストプラクティスが不足している必要があります。

参照資料

ワークフロー

  1. 評価モード(ベンチマーク、静的チェック、またはカスタムコード)を特定します
  2. tasks.json と rubric.md を読みます
  3. ベースラインコードとスキル適用後のコードを生成します
  4. 両方を評価基準に照らして採点します
  5. 書式を整えた比較レポートを出力します
  6. ベンチマーク全体を実行する場合は、evals/benchmarks/results/BENCHMARK.md に保存します

コメント