mcpField
S
sf-docs

sf-docs

github.com/jaganpro生产力4241.2k 次安装26 周前更新
代码仓库

关于 sf-docs

sf-docs 用于检索 Salesforce 官方公开文档,为回答提供依据。它限定官方来源、按具体概念定向查找并核验页面内容,也提供浏览器渲染提取方式以处理难以读取的页面。

主要功能

  1. 01检索 Salesforce 官方文档
  2. 02定向查找具体概念和标识符
  3. 03核验页面相关内容
  4. 04提取 JavaScript 密集型文档
  5. 05处理 Salesforce Help 页面

适用场景

  1. 01查找 Apex 或 API 官方指南
  2. 02研究 Salesforce 设置流程
  3. 03核实 Agentforce 文档内容
  4. 04提取难以读取的 Help 页面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jaganpro/sf-skills --skill sf-docs

安装后在 Claude Code 中输入/sf-docs确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

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

详细介绍

sf-docs

使用此技能从公共网络上的 Salesforce 官方文档中检索信息,并以此为依据回答问题。

此技能刻意保持简单:

  • 无本地语料库
  • 无索引
  • 无基准测试工作流
  • 无辅助 CLI 依赖
  • 无 PDF 备用方案

它旨在为难以获取的 Salesforce 文档提供可靠的在线检索指南,尤其是 help.salesforce.com、使用大量 JS 的 developer.salesforce.com、lightningdesignsystem.com 上的 Lightning Design System 文档,以及 architect.salesforce.com 和 admin.salesforce.com 等其他 Salesforce 官方所有的文档页面。

可选的封装脚本位于:

  • skills/sf-docs/scripts/extract_salesforce_doc.py

它会自动将 help.salesforce.com URL 路由到专用的 Help 提取器,并通过通用的浏览器渲染路径支持其他官方文档页面,例如 *.salesforce.com 和 lightningdesignsystem.com。对于对机器人敏感的页面,如果已安装 playwright-stealth,它还支持通过 --stealth 使用尽力而为的可选隐身模式。

也可以直接使用专用的 Help 提取器:

  • skills/sf-docs/scripts/extract_help_salesforce.py

核心目标

在线查找最佳的 Salesforce 官方 HTML 页面,并提取足够的实际内容,以便有把握地回答问题。

如果证据不足,请明确说明,不要勉强给出依据薄弱的答案。

何时使用

当用户询问以下内容时,使用 sf-docs:

  • Salesforce 官方文档
  • Apex、API、LWC、元数据、Agentforce、设置或帮助文章
  • developer.salesforce.com 上的文档
  • help.salesforce.com 上的文档
  • 使用大量 JS、由 Shell 渲染或难以通过常规抓取读取的页面

仅限官方来源

优先使用 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 文档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 文档
  • 宽泛的平台指南主页
  • 指向实际文章的 Help 入口页面
5. 对于 developer.salesforce.com

请使用以下操作指南:

  • 从最可能的官方指南根页面开始
  • 如果页面大量依赖 JS,优先使用浏览器渲染提取
  • 检查页面上是否出现确切概念
  • 如果缺少该概念,请检查官方子链接,并继续访问最匹配的 1–3 个链接
  • 优先选择概念完全匹配的页面,而不是宽泛的指南根页面
  • 如果旧版 atlas 页面是该概念的真正官方参考资料,则可以使用
6. 对于 help.salesforce.com

使用简单抓取通常会导致帮助页面加载失败。

请使用以下操作指南:

  • 如果有精确的 articleView?id=... URL,优先使用
  • 如果普通抓取返回的是外壳内容,请使用浏览器渲染提取
  • 将 Loading、Sorry to interrupt、CSS Error 或大部分为界面框架/导航文本的输出视为提取失败,而非证据
  • 查找真正的文章正文,而不只是页眉、导航或页脚文本
  • 拒绝外壳页面和软 404 页面,例如:
    • “我们找遍各处,但找不到该页面”
    • 通用的空白帮助页外壳
  • 如果从相关指南或中心页面开始,请沿着链接的帮助文章继续查找,直到找到真正的文章正文
  • 如果针对性重试后仍提取失败,请返回找到的最佳官方帮助 URL,并明确说明文章正文提取未成功

验收规则

只有满足以下至少一项,页面才足以作为回答依据:

  • 页面上出现确切标识符
  • 页面上出现完全匹配的概念短语
  • 多个与查询相关的短语出现在正确的官方上下文中

以下情况说明页面不够充分:

  • 页面只是宽泛的着陆页
  • 页面是几乎没有真实文章文本的外壳页面
  • 页面来自错误的产品领域
  • 页面不包含请求的标识符或概念
  • 应当存在官方页面,却只找到了第三方说明

拒绝规则

拒绝将以下内容作为最终证据:

  • 不包含确切概念的宽泛指南首页
  • 预期应有概念/参考页面,却提供了发行说明
  • 用户要求开发者文档,却提供了管理员博客文章
  • 有官方文档时却提供了第三方博客
  • 没有真实文章正文的外壳渲染页面
  • 标题看似相关,但正文不包含请求概念的页面

依据要求

回答时,请包含:

  1. 指南/文章标题
  2. 精确的官方 URL
  3. 来源类型:
    • 开发者文档页面
    • atlas 参考页面
    • 帮助文章页面
  4. 如果提取不完整或使用了浏览器渲染,请注明任何相关限制

如果证据薄弱,请明确说明。

示例

示例:Lightning Message Service

不要停留在通用的 LWC 指南根页面。 请找到介绍 Lightning Message Service 的精确 LWC 页面,或者沿着 LWC 文档中最相关的子链接继续查找,直到出现确切概念。

示例:Wire Service

除非 LWC 主页上确实出现 Wire Service,否则不要依据该页面回答。 请访问介绍 wire service 或 wire adapters 的相关子文档页面。

示例:Agentforce Actions

不要依据宽泛的 Agentforce 着陆页或博客文章回答。 请找到介绍 actions 的官方 Agentforce 开发者页面,或者沿着官方 Agentforce 文档中最匹配的子页面继续查找。

示例:Messaging for In-App and Web allowed domains

优先使用官方帮助文章和浏览器渲染提取。 拒绝通用帮助页外壳。如有需要,请从附近的官方 messaging 文档出发,沿着链接的帮助文章继续查找。

示例:System.StubProvider

优先使用包含确切标识符的官方 Salesforce 参考/开发者页面。 如果更宽泛的 Apex 着陆页不包含该标识符,请勿用它替代。

非目标

此技能不应:

  • 维护本地文档语料库
  • 依赖本地索引
  • 使用 PDF 备用方案
  • 运行基准工作流
  • 依赖特定仓库脚本才能发挥作用

跨技能职责

其他 sf-* 技能在需要权威 Salesforce 文档时,应使用 sf-docs,而不是只依赖通用搜索。

评论

支持 Markdown