Skip to content

Commit 870e4af

Browse files
committed
feat: @W-23737112@ Integrate PR #1138 to main
1 parent fbf1c04 commit 870e4af

33 files changed

Lines changed: 15077 additions & 1737 deletions

plugins/builder/salesforce-development/.claude-plugin/plugin.json

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
{
22
"name": "salesforce-development",
33
"displayName": "Salesforce Development",
4-
"version": "1.9.0",
4+
"version": "1.10.0",
55
"description": "Build Salesforce apps and agents using these core building blocks: metadata, Apex, deploy/retrieve, security, reporting, and generated installed-versus-available capability discovery.",
66
"author": { "name": "Salesforce", "url": "https://github.com/forcedotcom/sf-skills" },
77
"license": "Apache-2.0",
88
"homepage": "https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development",
99
"repository": "https://github.com/forcedotcom/sf-skills.git",
1010
"keywords": ["salesforce", "apex", "flow", "soql", "metadata", "deploy", "agentforce"],
1111
"dependencies": [],
12+
"userConfig": {
13+
"ui_mode": {
14+
"type": "string",
15+
"title": "Salesforce development UI mode",
16+
"description": "Ambient UI: full (default), compact, plain semantic text, or off. Explicit commands and safety guidance remain available.",
17+
"default": "full"
18+
}
19+
},
1220
"skills": "./skills/",
1321
"commands": "./commands/",
1422
"hooks": {
@@ -18,7 +26,8 @@
1826
"hooks": [
1927
{
2028
"type": "command",
21-
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context detect"
29+
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context detect",
30+
"statusMessage": "Loading local Salesforce project context…"
2231
}
2332
]
2433
}
@@ -76,6 +85,11 @@
7685
"type": "command",
7786
"if": "Bash(sf data query *)",
7887
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context skills-first-advisory"
88+
},
89+
{
90+
"type": "command",
91+
"if": "Bash(sf project generate*)",
92+
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context scaffold-gate"
7993
}
8094
]
8195
},
@@ -103,11 +117,7 @@
103117
"hooks": [
104118
{
105119
"type": "command",
106-
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context reset-dispatch-turn"
107-
},
108-
{
109-
"type": "command",
110-
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context orientation-rail"
120+
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context prompt-dispatch"
111121
}
112122
]
113123
}
@@ -118,12 +128,7 @@
118128
"hooks": [
119129
{
120130
"type": "command",
121-
"if": "Bash(sf project deploy *)",
122-
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context post-deploy"
123-
},
124-
{
125-
"type": "command",
126-
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context wayfinder"
131+
"command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/sf-context post-bash"
127132
}
128133
]
129134
},
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Changelog
2+
3+
All notable changes to this plugin are documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6+
and this plugin adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [1.10.0] — 2026-08-05
9+
10+
### Added
11+
12+
- New ambient UI modes — `full`, `compact`, `plain`, or `off` — so you can match the plugin's
13+
visual style to your terminal or accessibility needs.
14+
- A status line option that shows your current Salesforce project context at a glance.
15+
- Friendlier progress messages while the plugin loads your project context at the start of a
16+
session.
17+
18+
### Changed
19+
20+
- Session startup is faster and now works from local project context first, so you see relevant
21+
information sooner.
22+
- This plugin now requires Claude Code 2.1.222 or later.
23+
24+
### Fixed
25+
26+
- Your discovery journey (Connect → Project → Build → Test → Deploy → Observe) now only marks the
27+
Test stage complete after a real, successful Apex test run, so your progress reflects genuine
28+
outcomes. You can review or reset this history at any time.
29+
30+
### Security
31+
32+
- Descriptions of skills you haven't installed are no longer shown through capability discovery —
33+
only skills verified as installed and unmodified reveal their descriptions.

plugins/builder/salesforce-development/README.md

Lines changed: 15 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ The foundation plugin for building apps and agents on the Salesforce Platform. W
66

77
## Quick Start
88

9-
This quick start describes the required software you must install, how to authorize your Salesforce org, and how to add the Salesforce Claude Plugin Marketplace and install this plugin.
9+
This quick start describes the required software you must install, how to authorize your Salesforce org, and how to add the Salesforce Claude Plugin Marketplace and install this plugin.
1010

11-
1. Install these required prerequisites:
12-
- [Claude Code](https://claude.ai/code)
13-
- [Node.js LTS](https://nodejs.org). The bundled language servers run under `node`.
14-
- [Salesforce CLI](https://developer.salesforce.com/tools/salesforcecli). The MCP host and deploy hooks shell out to `sf`.
15-
- Python 3.8+. The the `org-detection` and `deploy-safety` hooks use Python under the hood.
11+
1. **Install prerequisites:**
12+
- [Claude Code](https://claude.ai/code) — requires Claude Code 2.1.222 or later
13+
- [Node.js LTS](https://nodejs.org). The bundled language servers run under `node`.
14+
- [Salesforce CLI](https://developer.salesforce.com/tools/salesforcecli). The MCP host and deploy hooks shell out to `sf`.
15+
- Python 3.8+. The org-detection, deploy-safety, and agent-validation hooks use Python under the hood.
1616

1717
2. Authorize your Salesforce org. From a terminal or command window, use the `org login web` Salesforce CLI command which opens a browser where you log into your org with your authentication credentials:
1818
```bash
@@ -46,39 +46,9 @@ Once you're all set up, use natural language to describe what you want to do; th
4646

4747
## Verify, Update, and Uninstall the Plugin
4848

49-
To check that the plugin is installed, run this command in Claude Code:
50-
51-
```text
52-
/plugin
53-
```
54-
55-
You should see `salesforce-development` listed. Skills are available automatically.
56-
57-
To show the org/project banner, run this command:
58-
59-
```text
60-
/salesforce-development:status
61-
```
62-
63-
To check the bundled language-server host:
64-
65-
```bash
66-
"${CLAUDE_PLUGIN_ROOT}"/bin/lsp-doctor
67-
```
68-
69-
To update the plugin:
70-
71-
```text
72-
/plugin marketplace update salesforce
73-
/plugin update salesforce-development@salesforce
74-
```
75-
76-
To uninstall the plugin and remove the Salesforce marketplace:
77-
78-
```text
79-
/plugin uninstall salesforce-development@salesforce
80-
/plugin marketplace remove salesforce
81-
```
49+
- **Verify:** `/plugin` lists `salesforce-development`. `/salesforce-development:status` shows the org/project banner. `"${CLAUDE_PLUGIN_ROOT}"/bin/lsp-doctor` checks the bundled language-server host.
50+
- **Update:** `/plugin marketplace update salesforce` then `/plugin update salesforce-development@salesforce`.
51+
- **Uninstall:** `/plugin uninstall salesforce-development@salesforce` then `/plugin marketplace remove salesforce`.
8252

8353
## What's Included
8454

@@ -103,18 +73,15 @@ To uninstall the plugin and remove the Salesforce marketplace:
10373
### What Else Is in the Box
10474

10575
- **Agents**`salesforce-dev`, the primary Salesforce development agent (activates automatically in Salesforce projects — `sfdx-project.json` present — and routes requests skills-first, then SF CLI, then direct API as a last resort); `architecture-review`, a read-only Well-Architected reviewer that grades a project against the Trusted / Easy / Adaptable pillars and hands back a pillar-scored report plus a governance checklist; and the Agentforce ADLC agents — `adlc-orchestrator` (plan-mode lifecycle coordinator) delegating to `adlc-author` (writes `.agent` files), `adlc-engineer` (scaffolds Flow/Apex and deploys bundles), and `adlc-qa` (tests, optimizes, and security-assesses agents).
106-
- **Slash commands**`/salesforce-development:discovery` (computed public-channel capability overview/drilldown and optional on-demand `features [--target-org <alias>] [--refresh] [--json]`), `:setup`, `:status`, `:org`, `:login`, `:logout`, `:set-default`, `:project`, `:reset-source-tracking`, `:welcome`. The checked discovery artifact is generated from an exact Git-tracked public-release manifest pinned to release `1.32.0` plus the physical foundation roster, not the internal authoring tree. Runtime discovery re-hashes bundled foundation trees and counts only valid standalone skill directories as installed; invalid same-name observations do not suppress public add. Feature probes never run at SessionStart; they use a normalized OS/XDG user cache outside `.sf`/`.sfdx` and report `unknown` rather than inferring absence from permission or coverage gaps.
76+
- **Slash commands**`/salesforce-development:discovery` (computed public-channel capability overview/drilldown and optional on-demand `features [--target-org <alias>] [--refresh] [--json]`), `:setup`, `:status`, `:org`, `:login`, `:logout`, `:set-default`, `:project`, `:reset-source-tracking`, `:welcome`.
10777
- **MCP servers**`salesforce-api-context` and `salesforce-metadata-experts` (API/metadata guidance), and `salesforce-lsp`, a local host that lazily spawns the **Apex** and **SOQL** language servers and exposes their semantic capabilities as MCP tools. See the `platform-lsp-integrate` skill for the tool contract.
10878
- **Hooks** — org-context detection on session start; a production deploy-safety gate and an Apex pre-deploy diagnostics gate on `sf project deploy`; skills-first advisories; and an Agent Script (`.agent`) syntax validator that runs after `Write`/`Edit` and surfaces non-blocking findings.
10979

110-
### Other Important Notes
111-
112-
- **Guard rails vs. Claude Code's auto-mode classifier.** This plugin's gates fire **only** on `sf project deploy`, `sf project delete`, and destructive-changes deploys — they **never block read-only commands** (`sf org list/display`, `sf data query`, `sf project retrieve`, source-tracking probes). Every gate emission is prefixed `[salesforce-development · deploy-gate]`. A denial on a *read-only* command with **no such prefix** is Claude Code's auto-mode classifier, not this plugin — a separate layer the plugin cannot rewrite. If reads get gated, the fix is to retarget a **sandbox** (the classifier reclassifies `production``sandbox` and the reads pass) or to allowlist them via `/permissions`. Routing around a denial by re-shaping the command defeats the control while technically satisfying it — don't.
113-
- **Opt-in auto-deploy.** Set `SFDX_AUTO_DEPLOY=1` to have `sf-deploy-gate auto-deploy` push a saved `force-app/**` edit (`Write`/`Edit`/`MultiEdit`) to your default org automatically after each save. Off by default. It refuses to run against orgs classified `production` or `unknown` regardless of the flag — the same production guard rail above still applies.
114-
- **LSP scope:** This plugin vendors the Apex + SOQL language servers only. The LWC language server is intentionally not bundled.
80+
Your progress through **Connect → Project → Build → Test → Deploy → Observe** is tracked from real, successful actions in your project — never assumed. Run `/salesforce-development:discovery journey inspect` to review it, or `journey reset` to clear it.
11581

11682
## More Information
11783

118-
To skip Claude Code's permission prompts for the CLI commands that this plugin runs (`sf`, `node`,`npm`, read-only `git`), add the equivalent allow-rules to your DX project's `.claude/settings.json`. [Settings](https://code.claude.com/docs/en/settings#permission-settings) in the Claude Code docs. This plugin doesn't ship a `settings.json` of its own.
119-
120-
Third-party code bundled with this plugin (such as the vendored Apex language server and a few esbuild-bundled MCP dependencies) is attributed in [`NOTICE`](./NOTICE).
84+
- **[Configuration reference](./docs/configuration.md)** — ambient UI modes, the optional status line, and deploy/delete guard rails.
85+
- **[Changelog](https://github.com/forcedotcom/sf-skills/blob/main/plugins/builder/salesforce-development/CHANGELOG.md)** — what's new in each release.
86+
- To skip Claude Code's permission prompts for the CLI commands this plugin runs (`sf`, `node`, `npm`, read-only `git`), add the equivalent allow-rules to your DX project's `.claude/settings.json`. See [Settings](https://code.claude.com/docs/en/settings#permission-settings) in the Claude Code docs. This plugin doesn't ship a `settings.json` of its own.
87+
- Third-party code bundled with this plugin (such as the vendored Apex language server and a few esbuild-bundled MCP dependencies) is attributed in [`NOTICE`](./NOTICE).

0 commit comments

Comments
 (0)