A Claude Code skill for interactive Salesforce delta deployments using sfdx-git-delta.
/sf-deploy provides a guided, interactive experience for deploying only changed Salesforce metadata between git commits. It replaces manual bash scripts with a polished workflow that:
- Validates prerequisites before starting
- Confirms target org and branch
- Warns about uncommitted changes
- Lets you choose deployment mode (validate/deploy)
- Offers flexible commit range selection
- Extracts and runs relevant test classes
- Reports deployment results
Before using this skill, install:
# Salesforce CLI
npm install -g @salesforce/cli
# sfdx-git-delta (installed automatically, but can pre-install)
npm install -g sfdx-git-delta@latestCopy the sf-deploy folder to your Claude Code skills directory:
# Global installation (available in all projects)
mkdir -p ~/.claude/skills
cp -r sf-deploy ~/.claude/skills/
# Or project-local installation
mkdir -p /path/to/your/project/.claude/skills
cp -r sf-deploy /path/to/your/project/.claude/skills//sf-deploy # Full interactive flow
/sf-deploy quick # Validate all changes vs develop (no prompts)
/sf-deploy quick 1 # Validate last 1 commit
/sf-deploy quick 3 # Validate last 3 commits
- Prerequisite checks - Verifies git repo, sf CLI, and authenticated org
- Org confirmation - Shows target org alias and username
- Branch confirmation - Shows current git branch
- Uncommitted changes warning - Alerts if working directory is dirty
- Deployment mode - Choose validate-only or deploy
- Commit range - Select which changes to include:
- All changes vs develop branch
- Last N commits (1, 3, or custom)
- Up to a specific commit hash
- Test mode - Run related tests or skip
- Confirmation - Review summary and confirm or cancel
- Execution - Generates delta package and deploys
/sf-deploy quick uses these defaults:
- Mode: Validate only (dry-run)
- Range: All changes on current branch vs develop
- Tests: Run related test classes
/sf-deploy quick N validates the last N commits:
/sf-deploy quick 1- Validate last commit only/sf-deploy quick 5- Validate last 5 commits
Add a configuration section to your project's CLAUDE.md to customize behavior:
## Salesforce Deployment Configuration
| Setting | Value |
|---------|-------|
| `deploy_base` | `./Delta` |
| `major_version` | `1` |
| `api_version` | `64.0` |
| `base_branch` | `origin/develop` |
| `excluded_bundles` | `lightningDesktopGenAi` || Setting | Default | Description |
|---|---|---|
deploy_base |
prompts | Where to save deployment artifacts |
major_version |
1 |
Major version for output directory naming |
api_version |
64.0 |
Salesforce API version |
base_branch |
origin/develop |
Branch to compare against for delta |
excluded_bundles |
lightningDesktopGenAi |
LWC bundles to exclude |
The skill organizes output by project name (from git repo) and version:
{deploy_base}/
├── project-alpha/
│ ├── v1_0/
│ ├── v1_1/
│ └── v1_2/
└── project-beta/
├── v1_0/
└── v1_1/
Each version folder contains:
v1_0/
├── package/
│ └── package.xml
├── destructiveChanges/
│ └── destructiveChanges.xml
└── [source files]
- Delta generation: Uses sfdx-git-delta to compare git commits and generate a package containing only changed metadata
- Test extraction: Parses the generated
package.xmlto find Apex test classes - Deployment: Uses
sf project deploy startwith the generated manifest
| Error | Solution |
|---|---|
| "Not a git repository" | Run from a git-initialized Salesforce project |
| "sf CLI not installed" | npm install -g @salesforce/cli |
| "No default org" | sf org login web --set-default |
| "No remote branch" | git push -u origin {branch} first |
- Claude Code CLI
- Node.js and npm
- Git
- Salesforce CLI (
sf) - A Salesforce DX project structure
MIT