Skip to content

abarrow/sf-deploy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

sf-deploy

A Claude Code skill for interactive Salesforce delta deployments using sfdx-git-delta.

What it does

/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

Prerequisites

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@latest

Installation

Copy 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/

Usage

/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

Interactive Flow

  1. Prerequisite checks - Verifies git repo, sf CLI, and authenticated org
  2. Org confirmation - Shows target org alias and username
  3. Branch confirmation - Shows current git branch
  4. Uncommitted changes warning - Alerts if working directory is dirty
  5. Deployment mode - Choose validate-only or deploy
  6. 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
  7. Test mode - Run related tests or skip
  8. Confirmation - Review summary and confirm or cancel
  9. Execution - Generates delta package and deploys

Quick Mode

/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

Configuration

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` |

Settings

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

Output Structure

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]

How it Works

  1. Delta generation: Uses sfdx-git-delta to compare git commits and generate a package containing only changed metadata
  2. Test extraction: Parses the generated package.xml to find Apex test classes
  3. Deployment: Uses sf project deploy start with the generated manifest

Troubleshooting

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

Requirements

  • Claude Code CLI
  • Node.js and npm
  • Git
  • Salesforce CLI (sf)
  • A Salesforce DX project structure

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published