Three findings from wiring an Agent Script service agent to an apex://
invocable (API v67.0, sf CLI 2.145.6):
1. `sf agent validate authoring-bundle` returns success:true for an action
param with the wrong numeric type. Only the server-side check during the
publish step catches it, so a green validate is not evidence the action
I/O types are correct.
2. Apex Integer and Apex Decimal do not behave the same. An Integer param
as bare `number` is rejected at publish; a Decimal output as bare
`number` publishes and runs correctly. The existing "bare number fails
at publish in action inputs/outputs" note reads as universal, which
sends authors hunting for a complex type a Decimal does not need.
3. Preview started with --api-name writes trace files containing only {}.
Only the --authoring-bundle path produces readable traces. This is not
academic: a service agent cannot always be previewed via
--authoring-bundle, leaving --api-name as the only option and making the
"read the trace after every utterance" rule unsatisfiable. Documented a
discriminating-value fallback for that case.
All additive; no existing guidance removed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| .claude-plugin | ||
| .github | ||
| plugins/builder/salesforce-development | ||
| samples | ||
| scripts | ||
| skills | ||
| .gitignore | ||
| .nvmrc | ||
| .template-versions.json | ||
| CHANGELOG.md | ||
| CODE_OF_CONDUCT.md | ||
| CODEOWNERS | ||
| CONTRIBUTING.md | ||
| LICENSE.txt | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
| sfdx-project.json | ||
Salesforce Skills Library
This repository provides a curated collection of Salesforce agent skills for building applications. It includes skills for Agentforce agents, Lightning apps, Flow, Apex, SOQL, Lightning Web Components (LWC), UI bundles, objects and fields, permission sets, and related areas.
The skills are contributed by Salesforce and the broader community. It’s optimized for Agentforce Vibes and can be used with any AI tool that supports skills.
⚠️ Expect frequent changes. The Salesforce skills library is evolving rapidly as we refine patterns and incorporate feedback. Skills may be renamed, restructured, or removed between releases — they do not follow the same stability guarantees as GA platform APIs. If you’ve forked or synced the repository, be prepared for upstream changes that may conflict with local modifications. This repository is always the source of truth.
🗂️ Structure
sf-skills/
├── skills/ # Directory-based executable workflows
│ ├── platform-apex-generate/
│ ├── platform-custom-object-generate/
│ ├── automation-flow-generate/
│ └── ...
├── samples/ # Synced sample apps (e.g. from npm)
│ └── ui-bundle-template-app-react-sample-b2e/
│ └── ...
├── scripts/
│ └── ...
└── README.md
🚀 Usage
| Tool | Usage |
|---|---|
| Agentforce Vibes | Skills are auto-installed and auto-updated |
| OpenCode, Claude Code, Codex, Cursor, more | npx skills add forcedotcom/sf-skills |
📦 Samples
The samples/ folder contains synced sample apps. For example, samples/ui-bundle-template-app-react-sample-b2e/ tracks the npm package @salesforce/ui-bundle-template-app-react-sample-b2e (nightly and on manual trigger via GitHub Actions).
To run the same sync locally from the repository root:
npm install
npm run sync-react-b2e-sample
The GitHub Action runs the same commands and opens a pull request when the npm package version changes. For more information, see samples/README.md.
🛠️ Agent Skills
Agent Skills package executable workflows, scripts, and reference material into self-contained directories. This repository follows the open Agent Skills specification and can be used with OpenCode, Claude Code, Codex, Cursor, and other tools that support skills.
Directory Structure
Each skill is a folder that can include:
SKILL.md(required): Instructions and YAML front matter.scripts/(optional): Executable scripts (For example, Python, Bash, or JavaScript).references/(optional): Extra reference documentation.assets/(optional): Templates, schemas, and lookup data
🤝 Contributing
See Contributing.
💬 Feedback
- Open an issue in this repository
- Open a pull request with suggested changes
- Use GitHub Discussions or the pull request thread for broader conversation