mcpField
F
fetching-salesforce-docs

fetching-salesforce-docs

github.com/forcedotcom生産性1.1k3.0k 回インストール1 日前に更新
リポジトリ

fetching-salesforce-docs について

Salesforce公式ドキュメントに基づく回答のための検索スキルです。対象を絞った検索とページ内容の確認を行い、取得が難しい動的なドキュメントにも対応します。ローカル索引は作成しません。

主な機能

  1. 01Salesforce公式情報の絞り込み検索
  2. 02ドキュメント種別の判定
  3. 03対象概念がページにあるか確認
  4. 04JavaScript依存ページへの対応
  5. 05空のシェルページとPDF代替の除外

活用シーン

  1. 01特定のSalesforce APIや機能の参照先を探す
  2. 02Salesforce Helpの設定手順を調べる
  3. 03公式デザインシステム文書に基づいて回答する

インストール

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

$npx skills add https://github.com/forcedotcom/sf-skills --skill fetching-salesforce-docs

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
requirements.txt
scripts/
extract_help_salesforce.py
extract_salesforce_doc.py
runtime_bootstrap.py

詳細

fetching-salesforce-docs

このスキルを使うと、公開ウェブ上のSalesforce公式ドキュメントを取得し、回答の根拠として使用できます。

このスキルでは、特に取得が難しいSalesforceドキュメント(help.salesforce.com、JavaScriptを多用するdeveloper.salesforce.com、lightningdesignsystem.comのLightning Design Systemドキュメント、architect.salesforce.comやadmin.salesforce.comなど、Salesforceが所有するその他の公式ドキュメントページ)を対象に、信頼性の高いオンライン取得手順を提供します。

任意で使用できる抽出スクリプトは scripts/にあります。詳しくは、以下の参照ファイル一覧をご覧ください。

対象範囲

対象Salesforce公式ドキュメントの取得:Apex、API、LWC、メタデータ、Agentforce、設定記事、SLDS、アーキテクト/管理者向けガイダンス
対象外サードパーティーのブログ、PDFによる代替、ローカルコーパスのインデックス作成、ベンチマークワークフロー、コードやメタデータの生成

必要な入力

取得する前に、次の点を特定してください。

  • 要求されている正確な概念、識別子、クラス、メソッド、または機能名
  • 該当する可能性が高いドキュメントの種類(開発者向けドキュメント、ヘルプ記事、デザインシステム、アーキテクト/管理者向け)

このスキルの取得手順を使うために、追加のセットアップは不要です。任意の抽出スクリプトにはplaywrightが必要です。詳しくはrequirements.txtをご覧ください。

公式ソースのみを使用

Salesforceが所有するドキュメントソースを優先してください。

  • developer.salesforce.com
  • help.salesforce.com
  • architect.salesforce.com
  • admin.salesforce.com
  • lightningdesignsystem.com
  • Salesforceが信頼できる情報源として使用している、その他の公式Salesforceドキュメントページ

ユーザーから明示的に求められない限り、サードパーティーのブログ、動画、要約記事は避けてください。

PDFにはフォールバックしないでください。

取得ワークフロー

1. まずリクエストを分類する

何かを取得する前に、該当する可能性が高いドキュメントの種類を特定してください。

種類一般的なソース用途
開発者向けドキュメントdeveloper.salesforce.com/docs/...Apex、API、LWC、メタデータ、Agentforce開発者向けドキュメント
ヘルプドキュメントhelp.salesforce.com/...設定、管理、製品構成
アーキテクト/管理者向けドキュメントarchitect.salesforce.com/...、admin.salesforce.com/...ベストプラクティス、パターン、適切に設計されたアーキテクチャのガイダンス、管理者向けの有効化
デザインシステムのドキュメントlightningdesignsystem.com/...SLDS、Cosmos、デザイントークン、コンポーネントとスタイル設定のガイダンス
旧Atlasドキュメントdeveloper.salesforce.com/docs/atlas.en-us.*旧版の公式ガイドおよびリファレンスドキュメント
2. 正確な概念を特定する

検索する前に、実際の対象を抽出してください。

  • 正確なAPI/クラス/メソッド名
  • 正確な機能名
  • 正確な製品の表現
  • 正確な設定概念

例:

  • Lightning Message Service
  • Wire Service
  • System.StubProvider
  • Agentforce Actions
  • Messaging for In-App and Web allowed domains
3. 対象を絞って公式情報を取得する

Salesforceドキュメントを広範囲にクロールしないでください。

代わりに、次の手順に従ってください。

  1. 最も可能性の高い公式ガイドのルートページまたは記事を特定する
  2. 検索が必要な場合は、Salesforceの公式ドメインのみに対象を絞る
  3. その公式ページを取得する
  4. 正確な概念が実際にそのページに記載されているか確認する
  5. 記載されていない場合は、関連性が最も高い公式の子ページへのリンクを1~3件確認し、そのリンク先をたどる
  6. 根拠を確認できた時点で終了する
4. 概要ページだけで終わらせない

ガイドのランディングページに、要求された正確な概念が明確に記載されていない限り、それだけでは不十分です。

特に、次のドキュメントでは重要です。

  • LWCドキュメント
  • Agentforceドキュメント
  • プラットフォーム全般のガイドのトップページ
  • 実際の記事へのリンクを掲載しているヘルプのランディングページ
5. developer.salesforce.comの場合

次の手順に従ってください。

  • 最も可能性の高い公式ガイドのルートページから始める
  • ページがJavaScriptを多用している場合は、ブラウザーでレンダリングしたコンテンツの抽出を優先する
  • 正確な概念がそのページに記載されているか確認する
  • 概念が見つからない場合は、公式の子ページへのリンクを確認し、最も適切なリンクを1~3件たどる
  • 広範なガイドのルートページより、概念に特化したページを優先する
  • 旧Atlasページがその概念の正式な公式リファレンスであれば、使用してかまいません
6. help.salesforce.com の場合

ヘルプページは、単純な取得方法では失敗することがよくあります。

次の手順に従ってください。

  • 利用できる場合は、正確な articleView?id=... URL を優先します
  • 通常の取得でシェルコンテンツが返される場合は、ブラウザーでレンダリングした内容を抽出します
  • Loading、Sorry to interrupt、CSS Error、または大部分がブラウザーの枠組みやナビゲーションテキストで占められている出力は、証拠ではなく抽出失敗として扱います
  • ヘッダー、ナビゲーション、フッターのテキストだけでなく、実際の記事本文を探します
  • 次のようなシェルページやソフト404ページは除外します。
    • "We looked high and low but couldn't find that page"
    • 一般的な空のヘルプシェル
  • 関連するガイドやハブページから調査を始めた場合は、実際の記事本文にたどり着くまで、リンク先のヘルプ記事をたどります
  • 対象を絞った再試行を行っても抽出に失敗する場合は、見つかった最も適切な公式ヘルプ URL を提示し、記事本文の抽出に失敗したことを明記します

受け入れルール

次のいずれかを満たす場合に限り、そのページを回答の根拠として十分とみなします。

  • 正確な識別子がページに記載されている
  • 正確な概念フレーズがページに記載されている
  • クエリに固有の複数のフレーズが、適切な公式コンテキストに記載されている

次の場合、そのページは十分ではありません。

  • 広範なランディングページにすぎない
  • 実際の記事テキストがほとんどないシェルページである
  • 対象の製品領域が異なる
  • 要求された識別子や概念が含まれていない
  • 公式ページがあるはずなのに、サードパーティの説明である

却下ルール

次のものは最終的な証拠として却下します。

  • 正確な概念が記載されていない広範なガイドのトップページ
  • 概念やリファレンスページが期待される場合のリリースノート
  • 開発者向けドキュメントが求められている場合の管理者向けブログ記事
  • 公式ドキュメントが利用できる場合のサードパーティのブログ
  • 実際の記事本文がないシェル表示のページ
  • タイトルは適切に見えても、本文に要求された概念が含まれていないページ

根拠の要件

回答には次の項目を含めてください。

  1. ガイドまたは記事のタイトル
  2. 正確な公式 URL
  3. ソースの種類:
    • 開発者向けドキュメントページ
    • atlas リファレンスページ
    • ヘルプ記事ページ
  4. 抽出が部分的だった場合やブラウザーでレンダリングした場合は、その注意事項

根拠が弱い場合は、その旨を明確に伝えてください。

例

例:Lightning Message Service

一般的な LWC ガイドのトップページで調査を終えないでください。 Lightning Message Service の正確な LWC ページを見つけるか、正確な概念が記載されたページにたどり着くまで、LWC ドキュメント内の最も関連性の高い子ページへのリンクをたどってください。

例:Wire Service

Wire Service が実際に記載されていない限り、LWC のホームページを根拠に回答しないでください。 wire service または wire adapter に関する該当の子ドキュメントページをたどってください。

例:Agentforce Actions

広範な Agentforce のランディングページやブログ記事を根拠に回答しないでください。 アクションに関する公式の Agentforce 開発者向けページを見つけるか、公式の Agentforce ドキュメントから最も関連性の高い子ページをたどってください。

例:アプリ内およびウェブ向けメッセージングの許可ドメイン

公式ヘルプ記事を優先し、ブラウザーでレンダリングした内容を抽出してください。 一般的なヘルプシェルは除外してください。必要に応じて、近接する公式メッセージングドキュメントからリンク先のヘルプ記事をたどってください。

例:System.StubProvider

正確な識別子が記載された公式の Salesforce リファレンスページまたは開発者向けページを優先してください。 識別子が記載されていない場合、より広範な Apex のトップページで代用しないでください。

対象外

このスキルでは、次のことを行いません。

  • ローカルのドキュメントコーパスを維持する
  • ローカルインデックスに依存する
  • PDF にフォールバックする
  • ベンチマークのワークフローを実行する
  • 有用であるためにリポジトリ固有のスクリプトに依存する

出力要件

取得ごとに、次の項目を含めてください。

  1. ガイドまたは記事のタイトル
  2. 正確な公式 URL
  3. ソースの種類(開発者向けドキュメントページ/atlas リファレンスページ/ヘルプ記事ページ)
  4. 抽出が部分的だった場合やブラウザーでレンダリングした場合は、その注意事項

根拠が弱い場合は、無理に回答せず、その旨を明確に伝えてください。


リファレンスファイル一覧

ファイル読むタイミング
scripts/extract_salesforce_doc.pySalesforce の公式ドキュメント URL を取得する場合に使用します。help.salesforce.com は専用のヘルプ抽出スクリプトに自動的に振り分けられ、Salesforce が所有するすべてのドキュメントホストについて、ブラウザーでレンダリングされたページの抽出に対応しています
scripts/extract_help_salesforce.pyhelp.salesforce.com の articleView URL を対象とする場合に直接使用します。ラッパーが適切でない場合に使用します
scripts/runtime_bootstrap.py抽出スクリプトからインポートされ、Salesforce ドキュメント取得専用の Python ランタイムと Playwright ブラウザーのパスを解決します。直接呼び出すことはありません
requirements.txt抽出スクリプトの実行に必要な Python 依存関係(playwright、playwright-stealth)を記載しています

コメント