sf-apex について
Salesforce の本番向け Apex クラス、トリガー、非同期ジョブ、テストの生成とレビューを行うスキルです。バルク安全性、共有とセキュリティ、テストを重視し、既存のプロジェクト構成に合わせます。
主な機能
- 01Apex の生成とリファクタリング
- 02トリガーと非同期ジョブの設計
- 03バルク安全性とセキュリティのレビュー
- 04テストクラスとアサーションの指針
- 05既存プロジェクトのパターンを適用
活用シーン
- 01Queueable または Batch ジョブの作成
- 02トリガーのバルク処理をレビュー
- 03セキュリティを考慮した Apex ロジックの追加
- 04成功・失敗・バルクテストの作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jaganpro/ sf-skills --skill sf-apexインストール後、Claude Code で/sf-apexを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CREDITS.mdREADME.mdassets/apex-class.clsbatch.clsinvocable-method.clsqueueable.clsselector.clsservice.clstest-class.clstest-data-factory.clstrigger-action.clstrigger.triggerhooks/scripts/apex-lsp-validate.pyllm_pattern_validator.pypost-tool-validate.pyprettier-format.pyvalidate_apex.pyreferences/anti-patterns.mdautomation-density-guide.mdbest-practices.mdbulkification-guide.mdcode-review-checklist.mdcode-smells-guide.mddesign-patterns.mdflow-integration.mdllm-anti-patterns.mdnaming-conventions.mdpatterns-deep-dive.mdsecurity-guide.mdsecurity-quick-reference.md詳細
sf-apex:Salesforce Apex コードの生成とレビュー
ユーザーが本番品質の Apexを必要としている場合に、このスキルを使用します。新規クラス、トリガー、セレクター、サービス、非同期ジョブ、呼び出し可能メソッド、テストクラスの作成や、既存の .cls / .trigger コードの根拠に基づくレビューが対象です。
このスキルが担当するタスク
次の作業には sf-apex を使用します。
- Apex クラスの生成またはリファクタリング
- トリガーの設計やトリガーフレームワークに関する判断
@InvocableMethod、Queueable、Batch、Schedulable、またはテストクラスの作業- バルク化、共有、セキュリティ、テスト、保守性に関するレビュー
次の場合は、ほかのスキルに委任します。
- LWC の JavaScript / HTML / CSS の編集 → sf-lwc
- Flow XML の作成や Flow のオーケストレーション → sf-flow
- SOQL のみの作成 → sf-soql
- 組織へのメタデータのデプロイや検証 → sf-deploy
最初に収集する必須コンテキスト
次の情報を確認するか、推測します。
- クラスの種類:トリガー、サービス、セレクター、バッチ、キュー可能、スケジュール可能、呼び出し可能、テスト
- 対象オブジェクトとビジネス上の目的
- 新規コード、リファクタリング、修正のいずれか
- 判明している場合は、組織や API の制約
- 想定されるテストカバレッジまたはデプロイ先
コードを作成する前に、プロジェクトの構成を確認します。
- 既存のクラス/トリガー
- 現在のトリガーフレームワークまたはハンドラーパターン
- 関連するテスト、フロー、セレクター
- TAF がすでに使用されているかどうか
推奨ワークフロー
1. ローカルのアーキテクチャを把握する
次を確認します。
- 既存のトリガーハンドラー/フレームワーク
- サービス、セレクター、ドメインの規約
- 関連するテストとデータファクトリー
- リポジトリですでに使用されている呼び出し可能または非同期のパターン
2. 最小限で適切なパターンを選ぶ
| 必要なもの | 推奨パターン |
|---|---|
| シンプルで再利用可能なロジック | サービスクラス |
| クエリ中心のデータアクセス | セレクター |
| 単一オブジェクトのトリガー動作 | 1 つのトリガー + ハンドラー/TAF アクション |
| Flow に複雑なロジックが必要 | @InvocableMethod |
| バックグラウンド処理 | 既定では Queueable |
| 非常に大きなデータセット | Batch Apex または Database.Cursor パターン |
| 繰り返し可能な検証 | 専用のテストクラス + テストデータファクトリー |
3. ガードレールを守って作成する
次の条件を満たすコードを生成します。
- バルク処理に安全である
- 共有を考慮している
- 該当する場合、CRUD/FLS に準拠している
- 単独でテストできる
- プロジェクトの命名規則とレイヤー構成に沿っている
4. 検証して採点する
引き渡しの前に、150 点満点の評価基準に照らして評価します。
5. デプロイ/テストの次の手順を引き継ぐ
組織での検証が必要な場合は、次に引き継ぎます。
- テスト実行の反復には sf-testing
- デプロイ/ドライラン/検証には sf-deploy
生成時のガードレール
次のアンチパターンを含むコードは、問題を明確に説明して処理を停止することなく、決して生成しないでください。
| アンチパターン | 禁止する理由 |
|---|---|
| ループ内の SOQL | ガバナ制限に抵触する |
| ループ内の DML | ガバナ制限に抵触する |
| 共有モデルの欠落 | セキュリティ/データ漏えいのリスク |
| ID のハードコード | デプロイと移植性に問題が生じる |
空の catch ブロック | エラーが握りつぶされ、可観測性が損なわれる |
| ユーザー入力を使った文字列ベースの SOQL | インジェクションのリスク |
| アサーションのないテスト | 誤って成功と判定されるテストスイート |
既定の修正方針:
- クエリは 1 回だけ実行し、コレクションを操作する
- 正当な理由がない限り
with sharingを使用する - 適切な場合はバインド変数と
WITH USER_MODEを使用する - 成功ケース、失敗ケース、バルクケースのアサーションを作成する
references/anti-patterns.md と references/security-guide.md を参照してください。
重要な構築ルール
トリガーのアーキテクチャ
- オブジェクトごとにトリガーを 1 つにすることを推奨します。
- TAF がすでにインストールされ、使用されている場合は、別のトリガーパターンを新たに作らず、既存のものを拡張します。
- トリガーはロジックを委譲し、トリガー本体に複雑なビジネスロジックを直接記述しないでください。
非同期処理の選択
| シナリオ | デフォルト |
|---|---|
| 標準的な非同期処理 | Queueable |
| 非常に大量のレコード処理 | Batch Apex |
| 定期的なスケジュール実行 | Scheduled Flow または Schedulable |
| ジョブ後のクリーンアップ | Finalizer |
| 実行時間の長い Lightning コールアウト | Continuation |
テストの最低要件
すべての機能で PNB パターンを使用します。
- Positive(正常系)パス
- Negative(異常系)/エラーパス
- Bulk(一括処理)パス(該当する場合は251件以上のレコード)
最新の Apex に期待されること
利用可能な場合は、現在のイディオムを優先します。
- セーフナビゲーション:
obj?.Field__c - null 合体:
value ?? fallback - 従来のアサーション形式ではなく
Assert.* - 該当する場合は
WITH USER_MODEと明示的なセキュリティ処理
出力形式
作業を終えたら、次の順序で報告します。
- 作成またはレビューした内容
- 変更したファイル
- 主な設計上の決定
- リスク/ガードレールに関する注意事項
- テストのガイダンス
- デプロイのガイダンス
推奨形式:
Apex work: <summary>
Files: <paths>
Design: <pattern / framework choices>
Risks: <security, bulkification, async, dependency notes>
Tests: <what to run / add>
Deploy: <dry-run or next step>
LSP 検証に関する注意
このスキルは、.cls ファイルと .trigger ファイルの LSP 支援による作成・編集ループに対応しています。
- 書き込み/編集の直後に構文上の問題を検出できます
- 短いループで、よくある構文エラーを自動修正できます
- 意味的な品質は、引き続き150点満点のレビュールーブリックに左右されます
完全なガイド:references/troubleshooting.md
スキル間の連携
| 必要な作業 | 委任先 | 理由 |
|---|---|---|
| まずオブジェクト/項目を記述する | sf-metadata | 誤ったスキーマを前提にコーディングするのを防ぐため |
| 大量データまたはエッジケースデータを用意する | sf-data | 現実的なテストデータセットを作成するため |
| Apex テストの実行/失敗したテストの修正 | sf-testing | 実行し、失敗を修正しながら反復するため |
| 組織へのデプロイ | sf-deploy | 検証とデプロイのオーケストレーションのため |
| Apex を呼び出す Flow の構築 | sf-flow | 宣言的なオーケストレーションのため |
| Apex を呼び出す LWC の構築 | sf-lwc | UI/コントローラーの統合のため |
リファレンスマップ
まずはこちら
- references/patterns-deep-dive.md
- references/security-guide.md
- references/bulkification-guide.md
- references/testing-patterns.md
重要度の高いチェックリスト
専門的なパターン
- references/trigger-actions-framework.md
- references/automation-density-guide.md
- references/flow-integration.md
- references/triangle-pattern.md
- references/design-patterns.md
- references/solid-principles.md
トラブルシューティング/検証
スコアガイド
| スコア | 意味 |
|---|---|
| 120以上 | 本番環境に対応できる優れた Apex |
| 90~119 | 良好な実装。デプロイ前にレビューが必要 |
| 67~89 | 許容範囲だが、改善が必要 |
| 67未満 | デプロイをブロック |