如何让 Cursor 和 Claude Code 正确编写 Salesforce 代码
如果你尝试过通过 ChatGPT 或标准 Cursor 生成 Apex 触发器或 Lightning Web 组件,你可能已经遇到过这些典型错误。模型搞混触发器上下文、忘记循环内的 SOQL 限制,或者用过时的 API 版本组装 XML 清单。你最终会写出庞大的系统提示词,并在每次请求时手动附加文档片段。
Salesforce 决定系统性地解决这个问题,并发布了一个仓库 sf-skills。这是一组现成的指令、模板和可执行脚本,按照开放的 agent skills 标准打包。
sf-skills/
├── skills/ # Директории с конкретными воркфлоу
│ ├── platform-apex-generate/
│ ├── platform-custom-object-generate/
│ ├── automation-flow-generate/
│ └── ...
├── samples/ # Примеры приложений
└── scripts/
什么是 Agent Skills
格式理念很简单。与其向 LLM 喂入冗长、非结构化的文本,不如将每个 skill 组织为一个单独的文件夹,具有清晰的架构:
SKILL.md— 一个必需的文件,包含 YAML front matter 格式的指令和元数据。它描述了 agent 何时以及如何应用这个 skill。scripts/— 可执行的 Python、Bash 或 JavaScript 脚本,agent 可以运行这些脚本进行验证或制品生成。references/— 特定主题的参考资料和文档摘要。assets/— 现成的模板、元数据模式和映射表。
该仓库遵循 agentskills.io 规范。这意味着这些 skill 并未硬编码到公司的内部服务中。它们可以连接到任何支持此开放格式的工具。
如何连接到你的编辑器
如果你在内部的 Agentforce Vibes 环境中工作,skill 会自动拉取和更新。对于 Claude Code、OpenCode 或 Cursor 等熟悉的开发者工具,只需一个终端命令即可连接:
npx skills add forcedotcom/sf-skills
该工具下载所需的包并在 assistant 配置中注册它们。之后,agent 理解平台特定的命令和规则,无需在聊天中额外澄清。
库里面有什么
该仓库包含针对不同平台层的工作流程。
服务器端代码生成包括创建 Apex 类的规则、考虑 FLS(Field-Level Security)的正确 SOQL 查询编写,以及单元测试模板。assistant 停止仅为行覆盖率生成空断言。
对于声明式开发,有用于创建自定义对象、字段和权限集的 skill。agent 组装有效的 XML 元数据文件,可以通过 Salesforce CLI 立即部署,无需手动编辑标签。
一个单独的部分专门用于自动化和接口。包括创建 Flow 和 Lightning Web Components (LWC) 的工作流程,包括辅助的 React UI 包。
samples 文件夹包含现成应用的示例。例如,一个 UI 包模板通过 GitHub Actions 与 @salesforce/ui-bundle-template-app-react-sample-b2e npm 包直接同步。你可以在本地运行同步:
npm install
npm run sync-react-b2e-sample
需要注意什么
该项目正在积极重构。开发者在 README 中诚实警告:文件夹结构和 skill 名称可能会更改,不提供向后兼容性保证。与 GA Salesforce API 版本不同,这里没有稳定性保证。
如果你 fork 该仓库或进行本地更改,在从上游更新时需要准备解决冲突。目前,该项目在 GitHub 上有不到 900 颗星,但提交基础几乎每天都在更新。
值得尝试吗
如果你经常为 Salesforce 编写代码并在终端或 IDE 中使用 AI 助手,该项目肯定会节省时间。你不再需要手动提醒模型关于 Custom Field 的 XML 结构或解释 Apex 中 HTTP 调用的 mock 类编写规则。
最简单的入门方式是通过 npx skills add 在测试项目中安装,看看你的常用模型在新的指令下如何处理元数据生成。
相关项目