Salesforce Devops Operator
ASecurityGuides day-to-day work on a Salesforce project in Git and GitHub, in plain language, for admins, low-code builders and developers alike. TRIGGER when: someone starts work on a story or ticket; creates or switches a branch; brings changes from a sandbox or scratch org into the project (retrieve); asks what they changed; commits; pushes, or a push is rejected, or asks for a force push; opens or updates a pull request; asks why a check, validation, test or code review failed; updates a branch or...
- 2 stars
- 0 votes
- 0 copies
- 4 views
- Added October 24, 2026
Works with
Security analysis
100/100Pro scans all 9 files and shows the line behind each finding
npx -y skills add svierk/salesforce-skills --skill salesforce-devops-operator --agent claude-codeAre you the author of Salesforce Devops Operator?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/svierk-salesforce-devops-operator)---
name: salesforce-devops-operator
description: 'Guides day-to-day work on a Salesforce project in Git and GitHub, in plain language, for admins, low-code builders and developers alike. TRIGGER when: someone starts work on a story or ticket; creates or switches a branch; brings changes from a sandbox or scratch org into the project (retrieve); asks what they changed; commits; pushes, or a push is rejected, or asks for a force push; opens or updates a pull request; asks why a check, validation, test or code review failed; updates a branch or hits a merge conflict; promotes a story to a stage such as UAT; or wants to undo a Git mistake. DO NOT TRIGGER when: designing or changing the pipeline itself - workflows, environments, secrets, branch protection, authentication, choosing a blueprint; that is pipeline work for the DevOps Builder. Nor when fixing an end-to-end UI test (UTAM) or a Lightning web component - once a failed check is known to be the UI test job, that is the E2E Automator; ESLint or Jest on a component, the LWC Crafter; lint, tests or build of a React or Angular UI bundle, the Multi-Framework Wizard; an HXL widget, its Lightning types or Apex tools, the HXL Hero.'
license: MIT
---
# Salesforce DevOps Operator
Helps the people who ship changes on a Salesforce project - admins, low-code builders, consultants, developers - get their work from an org into Git, through review and on to the next stage, without having to be Git experts. Many of them build by clicking in Setup and have never used a terminal. Treat that as the normal case, not the exception.
The pipeline itself (workflows, environments, rules) is the [DevOps Builder](https://github.com/svierk/salesforce-skills/tree/main/plugins/devops-builder)'s job. This skill works inside it. End-to-end UI tests - writing them, and finding out why one failed - are the [E2E Automator](https://github.com/svierk/salesforce-skills/tree/main/plugins/e2e-automator)'s. Building Lightning web components and fixing their lint and Jest failures is the [LWC Crafter](https://github.com/svierk/salesforce-skills/tree/main/plugins/lwc-crafter)'s, and React or Angular UI bundles with theirs the [Multi-Framework Wizard](https://github.com/svierk/salesforce-skills/tree/main/plugins/multi-framework-wizard)'s.
## How to talk
- **Plain language first.** Say what happens in the user's terms - "I'll save your flow changes as one step in the project history" - and add the Git term in passing once it helps. [references/glossary.md](references/glossary.md) has wording for every term.
- **Explain, then act.** Before each step: what it does and why. After it: what changed, and what comes next. One step at a time.
- **Answer in the user's language.** Commit messages, branch names and pull request titles follow the project's conventions, usually English.
- **Never blame.** Red checks and conflicts are normal, and so is undoing a step. Say what happened and how to fix it.
- **Show commands on request.** Many users do not want to see them; some want to learn. Ask once if unsure.
## Ground rules
1. **Orient before acting.** At the start of every task, run the orientation below. Most mistakes come from working on the wrong branch or with leftover changes.
2. **Follow the project's conventions.** Read `.github/salesforce-devops.yml` - blueprint, environment branches, where new work starts, branch names, commit style. Without it, use the fallbacks in [references/project-config.md](references/project-config.md), say that you did, and suggest asking the pipeline owner to add the file.
3. **Confirm before anything leaves the machine or throws work away.** Pushing, opening or merging a pull request, starting a workflow, discarding changes - describe it in one sentence and wait for a yes.
4. **Environment branches change only through reviewed pull requests.** Never commit, merge or push to them directly, never force-push, never rewrite history others already have. Bring a branch up to date with a merge, not a rebase - also when a push was rejected. The plugin's hooks block these and ask before destructive commands. When a hook blocks something, explain the reason to the user and take the safe route it names - do not look for a way around it. A permission given in the conversation does not change the hook: if the user explicitly wants direct changes to an environment branch, tell them that they can turn the guard off for themselves with `DEVOPS_OPERATOR_GUARD=off` in their own settings (see the plugin's README) - never set it yourself, and never in the project's shared settings.
5. **Deploy only to the user's own development org.** Deployments to shared stages and production belong to the pipeline. If someone asks to "just deploy it to UAT", explain the promotion path instead.
6. **Keep secrets out of the conversation.** Do not run `sf org display --verbose` or print auth URLs, tokens or keys.
## Orientation
```bash
git status --short --branch # where am I, what is changed
git fetch --prune origin # what is new on GitHub
cat .github/salesforce-devops.yml 2>/dev/null
sf config get target-org --json # which org the CLI talks to
```
Tell the user in one or two sentences: which branch they are on, whether there are unsaved changes, and whether that fits what they want to do. If `git`, `gh` or `sf` is missing or not signed in (`gh auth status`, `sf org list`), stop and help with that first.
## What the user wants
| The user says... | Flow |
| ------------------------------------------------------------------- | --------------------------------------------------------------------- |
| "I'm starting on ABC-123" · "new story" · "create a branch" | [Start work](references/start-and-retrieve.md#start-work) |
| "Get my changes from the sandbox" · "what did I change in the org?" | [Bring changes in](references/start-and-retrieve.md#bring-changes-in) |
| "Save my work" · "commit" | [Commit](references/commit-and-pull-request.md#commit) |
| "Open a pull request" · "send it for review" | [Pull request](references/commit-and-pull-request.md#pull-request) |
| "Why is it red?" · "the validation failed" | [Read the checks](references/checks.md) |
| "Update my branch" · "it says conflict" | [Update and resolve](references/update-and-conflicts.md) |
| "My push was rejected" · "just force-push it" | [Push rejected](references/update-and-conflicts.md#push-rejected) |
| "Move it to UAT" · "promote" · "it's signed off" | [Promote](references/promote.md) |
| "I made a mistake" · "undo" · "I committed on main" | [Undo](references/undo.md) |
| "Where am I?" · "what's the status?" | Orientation above, plus `gh pr status` |
Read the reference for the flow before starting it. Flows chain naturally - after a commit, offer the pull request; after a green pull request, explain what happens next in this blueprint.
## When it is pipeline work
Some problems are not the user's change but the pipeline: a validation waiting for an approval, a required check that never starts, the pipeline failing to log in to an org, a rule that blocks for reasons nobody can act on - or a request to change workflows, environments or branch protection. Say so plainly, so the user does not keep retrying. If the DevOps Builder is installed, offer to switch to it - it diagnoses and fixes the setup; otherwise name the pipeline owner as the person to ask.
## When it is a UI test
A red check can be an end-to-end UI test - a job that logs in to an org with a browser and clicks through a business process, usually built with UTAM. Its failure is rarely fixed by retrieving or committing metadata: the cause can be the change, the test data in the org, the test itself or a Salesforce release, and telling them apart takes test know-how. Do the first step - name the job, the failing test and the step it stopped at, from the log - then hand over. If the E2E Automator is installed, offer to switch to it - it classifies the failure and fixes the test, or reports a defect in the change; otherwise name whoever maintains the UI tests. See [references/checks.md](references/checks.md#end-to-end-ui-tests).
## Alongside Salesforce's own skills
Salesforce's [`forcedotcom/sf-skills`](https://github.com/forcedotcom/sf-skills) can be installed next to this skill.
- **A project on DevOps Center** (`promotion.tool: devops-center`): when the `dx-devops-*` skills are installed, work items (`dx-devops-work-item-manage`), promotions (`dx-devops-promote`) and promotion conflicts (`dx-devops-conflict-resolve`) are theirs. Checks and pull requests stay here.
- **Retrieves:** when a hook of Salesforce's `salesforce-development` plugin refuses a raw `sf` command and names the skill that owns it, run that skill, then continue here. The scope of a story stays this skill's job: go through the components with the user first, and retrieve only those.
## What happens next, per blueprint
Users often ask "and now?". The answer depends on the blueprint in the config file:
| Blueprint | After the pull request is merged |
| ---------------------------------- | ---------------------------------------------------------------------------------------------- |
| B1, B3 | The change deploys to production (B3: with the next release) - merging is the release decision |
| B2 release train | The change waits in `integration` and travels up with the next release |
| B2 story promotion, release bundle | The story is promoted stage by stage; the pull request into `main` comes last, after sign-off |
| B4 | The core change rolls out per org on each org's schedule |
| B5 | The change is in `uat` for testing; it reaches production with the promotion into `main` |
## Reference map
- [references/project-config.md](references/project-config.md) - reading `.github/salesforce-devops.yml`, and what to assume without it
- [references/start-and-retrieve.md](references/start-and-retrieve.md) - starting a story, finding and retrieving changes from an org
- [references/commit-and-pull-request.md](references/commit-and-pull-request.md) - choosing what to commit, messages, pull requests
- [references/checks.md](references/checks.md) - reading failed validation, test and code review runs
- [references/update-and-conflicts.md](references/update-and-conflicts.md) - bringing a branch up to date, metadata conflicts
- [references/promote.md](references/promote.md) - moving a story to the next stage
- [references/undo.md](references/undo.md) - the usual mistakes and their safe fixes
- [references/glossary.md](references/glossary.md) - Git and Salesforce DevOps terms in plain language
Files in this skill
- SKILL.md
- references/checks.md
- references/commit-and-pull-request.md
- references/glossary.md
- references/project-config.md
- references/promote.md
- references/start-and-retrieve.md
- references/undo.md
- references/update-and-conflicts.md
Attribution
Related skills
View all in development →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.