2.8 KiB
Configuration Reference
Advanced configuration for the salesforce-development plugin: ambient UI modes, the optional
status line, and deploy/delete guard rails. Everyday usage only needs the Quick
Start — start here if you want to customize the experience or
understand a safety prompt.
Ambient UI Modes
Ambient SessionStart output is configured by plugin userConfig.ui_mode (transported to hooks as
CLAUDE_PLUGIN_OPTION_UI_MODE):
| Mode | Ambient SessionStart and wayfinding |
|---|---|
full (default) |
signature banner and evidence rail |
compact |
one bounded project/stage/next line |
plain |
semantic text without ANSI or journey glyphs |
off |
hidden |
NO_COLOR removes ANSI without changing mode. Explicit status, setup, discovery, safety
advisories/gates, failures, and install guidance remain available in every mode.
Optional Main Status Line
You can opt in to a main status line showing your current project context. Copy the helper to a stable user path so plugin updates cannot invalidate the configured command:
mkdir -p "$HOME/.claude/statusline"
cp "${CLAUDE_PLUGIN_ROOT}/scripts/salesforce-statusline.py" \
"$HOME/.claude/statusline/salesforce-development.py"
Then manually add this to ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "python3 ~/.claude/statusline/salesforce-development.py"
}
}
The plugin never edits or writes user settings — this is a manual, reversible opt-in. Remove the
statusLine entry and copied file to opt out.
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.
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.
LSP Scope
This plugin vendors the Apex + SOQL language servers only. The LWC language server is intentionally not bundled.