sf-apex
Salesforce の Apex コードを生成・レビューし、150点満点で採点するスキル。ユーザーが Apex クラス、トリガー、テストクラス、バッチ/Queueable/スケジューラブルジョブの作成・修正を行う場合や `.cls`/`.trigger` ファイルを編集する際にトリガーされます。LWC の JavaScript(sf-lwc)、Flow XML(sf-flow)、SOQLクエリ単体(sf-soql)、Salesforce 以外のコードには使用しないでください。
description の原文を見る
> Generates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
SKILL.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 アクション |
| フローが複雑なロジックを必要とする | @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 がすでにインストールされて使用されている場合は、2 番目のトリガーパターンを発明する代わりに拡張します。
- トリガーはロジックを委譲する必要があります; トリガー本体で重いビジネスロジックを避けます。
非同期の選択
| シナリオ | デフォルト |
|---|---|
| 標準的な非同期作業 | Queueable |
| 非常に大規模なレコード処理 | Batch Apex |
| 繰り返しスケジュール | Scheduled Flow または Schedulable |
| ジョブ後のクリーンアップ | Finalizer |
| 長時間実行 Lightning コールアウト | Continuation |
テスト最小要件
すべての機能に PNB パターンを使用します:
- 肯定的な パス
- 否定的な / エラーパス
- バルク パス (該当する場合は 251+ レコード)
モダン Apex の期待値
利用可能な場合は現在のイディオムを優先します:
- セーフナビゲーション:
obj?.Field__c - null 合体:
value ?? fallback - レガシーアサーションスタイルより
Assert.* - 関連する場所で
WITH USER_MODEと明示的なセキュリティ処理
出力形式
完了時に、この順序で報告します:
- 作成またはレビューされたもの
- 変更されたファイル
- 主要な設計判断
- リスク/ガードレール ノート
- テストガイダンス
- 展開ガイダンス
推奨される形式:
Apex work: <概要>
Files: <パス>
Design: <パターン/フレームワーク選択>
Risks: <セキュリティ、バルク化、非同期、依存関係ノート>
Tests: <実行/追加するもの>
Deploy: <ドライラン またはこれ以降のステップ>
LSP バリデーション ノート
このスキルは .cls および .trigger ファイル用の LSP 支援オーサリングループをサポートします:
- 書き込み/編集直後に構文の問題を検出できます
- スキルは短いループで一般的な構文エラーを自動修正できます
- セマンティック品質は 150 ポイント レビュー ルーブリックに依存します
完全なガイド: references/troubleshooting.md
クロススキル統合
| 必要な機能 | 委譲先 | 理由 |
|---|---|---|
| オブジェクト/フィールドを最初に説明 | sf-metadata | 誤ったスキーマに対するコーディングを回避 |
| バルクまたはエッジケースデータをシード | sf-data | 現実的なテストデータセットを作成 |
| Apex テスト実行/失敗テスト修正 | sf-testing | 実行して失敗に対する反復 |
| オーグに展開 | sf-deploy | バリデーションと展開オーケストレーション |
| Apex を呼び出すフロー構築 | sf-flow | 宣言型オーケストレーション |
| Apex を呼び出す LWC 構築 | sf-lwc | UI/コントローラー統合 |
リファレンス マップ
ここから開始
references/patterns-deep-dive.mdreferences/security-guide.mdreferences/bulkification-guide.mdreferences/testing-patterns.md
高いシグナル チェックリスト
references/code-review-checklist.mdreferences/anti-patterns.mdreferences/naming-conventions.md
特別なパターン
references/trigger-actions-framework.mdreferences/automation-density-guide.mdreferences/flow-integration.mdreferences/triangle-pattern.mdreferences/design-patterns.mdreferences/solid-principles.md
トラブルシューティング/バリデーション
references/troubleshooting.mdreferences/llm-anti-patterns.mdreferences/testing-guide.md
スコア ガイド
| スコア | 意味 |
|---|---|
| 120+ | 本番環境対応の強力な Apex |
| 90–119 | 良好な実装、展開前にレビュー |
| 67–89 | 許容可能だが改善が必要 |
| < 67 | 展開をブロック |
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jaganpro
- リポジトリ
- jaganpro/sf-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/jaganpro/sf-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。