sf-debug について
sf-debug は、Salesforce のデバッグログを調べ、障害の根本原因を追う開発者向けスキルです。例外、ガバナー制限、クエリ、リソース負荷を順に分析し、修正案と検証手順を示します。
主な機能
- 01Salesforce ログ取得の案内
- 02スタックトレースと例外の分析
- 03ガバナー制限の診断
- 04SOQL、DML、CPU、ヒープの確認
- 05重大度分類と修正案
活用シーン
- 01Salesforce トランザクション失敗の原因特定
- 02低速クエリやSOQL・DML反復の調査
- 03ログに基づくCPU・ヒープ負荷の診断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jaganpro/ sf-skills --skill sf-debugインストール後、Claude Code で/sf-debugを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
CREDITS.mdREADME.mdassets/benchmarking-template.clscpu-heap-optimization.clsdml-in-loop-fix.clsnull-pointer-fix.clssoql-in-loop-fix.clsreferences/analysis-playbook.mdbenchmarking-guide.mdcli-commands.mdcommon-issues.mddebug-log-reference.mdlog-analysis-tools.mdscoring-rubric.md詳細
sf-debug:Salesforce デバッグログの分析とトラブルシューティング
デバッグログから根本原因を分析する必要がある場合に、このスキルを使用します。対象には、ガバナ制限の診断、スタックトレースの解釈、低速クエリの調査、ヒープ/CPU 負荷の分析、ログの証拠に基づく再現から修正までの一連の作業が含まれます。
このスキルが担当する作業
次の作業には sf-debug を使用します。
- Salesforce の
.logファイル - スタックトレースと例外の分析
- ガバナ制限
- SOQL/DML/CPU/ヒープのトラブルシューティング
- ログから抽出したクエリプランやパフォーマンスの証拠
次の場合は、ほかのスキルに委任します。
- Apex テストの実行や修復 → sf-testing
- コード修正の実装 → sf-apex
- Agentforce セッショントレース/parquet テレメトリのデバッグ → sf-ai-agentforce-observability
最初に収集する必要があるコンテキスト
次の情報を確認するか、推測します。
- 組織のエイリアス
- 失敗したトランザクション/ユーザーフロー/テスト名
- おおよそのタイムスタンプまたはトランザクションの時間範囲
- 分かる場合は、ユーザー/レコード/リクエスト ID
- 目標が診断のみか、診断と修正までの一連の作業か
推奨ワークフロー
1. ログを取得する
sf apex list log --target-org <alias> --json
sf apex get log --log-id <id> --target-org <alias>
sf apex tail log --target-org <alias> --color
2. 次の順序で分析する
- エントリーポイントとトランザクションの種類
- 例外/致命的エラー
- ガバナ制限
- 繰り返される SOQL/DML のパターン
- CPU/ヒープのホットスポット
- コールアウトの所要時間と外部エラー
3. 重大度を分類する
- Critical — 実行時の失敗、ハードリミット、データ破損のリスク
- Warning — 制限値に接近している、非選択的クエリ、低速な処理経路
- Info — 最適化の機会または衛生上の問題
ワークフローの詳細:references/analysis-playbook.md
重要度の高い問題パターン
| 問題 | 主な兆候 | 基本的な修正方針 |
|---|---|---|
| ループ内の SOQL | 繰り返される呼び出し経路で SOQL_EXECUTE_BEGIN が繰り返し発生する | クエリを一度だけ実行し、マップ/グループ化したコレクションを使用する |
| ループ内の DML | DML_BEGIN パターンが繰り返し発生する | レコードを収集し、DML を一度にまとめて実行する |
| 非選択的クエリ | スキャンされた行数が多い/選択性が低い | インデックス付きのフィルターを追加し、対象範囲を絞る |
| CPU 負荷 | CPU 使用量が同期実行の制限に接近している | アルゴリズムの複雑さを軽減し、キャッシュを使用し、適切な場合は非同期処理にする |
| ヒープ負荷 | ヒープ使用量が同期実行の制限に接近している | SOQL の for ループでストリーミングし、メモリ内データを減らす |
| Null ポインター/致命的エラー | EXCEPTION_THROWN/FATAL_ERROR | null の可能性を考慮し、クエリ結果が空の場合の処理を修正する |
詳細な例:references/common-issues.md
出力形式
分析を終える際は、次の順序で報告します。
- 何が失敗したか
- どこで失敗したか(クラス/メソッド/行/トランザクションの段階)
- なぜ失敗したか(症状だけでなく、根本原因)
- 重大度
- 推奨する修正
- 検証手順
推奨形式:
Issue: <summary>
Location: <class / line / transaction>
Root cause: <explanation>
Severity: Critical | Warning | Info
Fix: <specific action>
Verify: <test or rerun step>
スキル間の連携
| 必要な作業 | 委任先 | 理由 |
|---|---|---|
| Apex の修正を実装する | sf-apex | コード変更の生成/レビュー |
| テストで再現する | sf-testing | テストの実行とカバレッジ確認の繰り返し |
| 修正をデプロイする | sf-deploy | デプロイのオーケストレーション |
| デバッグ用データを作成する | sf-data | 対象を絞ったシードデータ/再現用データ |
リファレンスマップ
まずはこちら
詳細なリファレンス
評価基準
スコアガイド
| スコア | 意味 |
|---|---|
| 90+ | 修正に関する具体的な指針を含む、専門的な分析 |
| 80–89 | 軽微な不足はあるものの、優れた分析 |
| 70–79 | 許容できるものの、二次的な問題を見落とす可能性あり |
| 60–69 | 部分的な診断のみ |
| < 60 | 不完全な分析 |
コメント
Markdown 対応