mirror of
https://github.com/forcedotcom/afv-library.git
synced 2026-08-11 18:38:22 +08:00
71 lines
2.8 KiB
Markdown
71 lines
2.8 KiB
Markdown
# 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](../README.md#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:
|
|
|
|
```bash
|
|
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`:
|
|
|
|
```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.
|