From sc4sap
Displays SAP system status snapshot and edits .sc4sap/sap.env for connections, credentials, blocklists, profiles, industries; configures HUD usage limits in Claude settings.
npx claudepluginhub babamba2/superclaude-for-sap --plugin sc4sapThis skill uses the workspace's default tool permissions.
Single entrypoint to **inspect live SAP state** and **edit the values stored in `.sc4sap/sap.env`** — the dotenv file that holds SAP connection credentials, TLS settings, and the `abap-mcp-adt-powerup` blocklist policy for row-extraction safety.
Sets up SuperClaude SAP plugin: migrates legacy profiles to multi-profile, registers SAP connections under ~/.sc4sap/profiles/<alias>/, installs abap-mcp-adt-powerup MCP server, optional tier-gated ABAP handlers and hooks, extracts SPRO customizations.
Guides development of business apps on SAP BTP using CAP (Node.js/Java) or ABAP Cloud, for Cloud Foundry/Kyma deployments, HANA integration, Fiori UIs, CI/CD pipelines, and observability.
Guides handling deprecated SAP BTP Intelligent Situation Automation: unsubscribing service, exporting data, reviewing legacy configurations, and planning migrations.
Share bugs, ideas, or general feedback.
Single entrypoint to inspect live SAP state and edit the values stored in .sc4sap/sap.env — the dotenv file that holds SAP connection credentials, TLS settings, and the abap-mcp-adt-powerup blocklist policy for row-extraction safety.
Users should not edit sap.env blindly; this skill surfaces the current values (masking secrets), explains each option, lets the user pick what to change, and writes the file back safely with a backup.
<Response_Prefix>
Every response triggered by this skill MUST begin with [Model: <main-model> · Dispatched: <sub-summary>] per ../../common/model-routing-rule.md § Response Prefix Convention.
</Response_Prefix>
<Use_When>
<Industry_Selection> (updates SAP_INDUSTRY in sap.env and industry in config.json atomically).<Profile_Management> (see profile-management.md).MCP_BLOCKLIST_PROFILE) or manage MCP_ALLOW_TABLE / MCP_BLOCKLIST_EXTEND./sc4sap:setup if the user wants to adjust without re-running full setup.<HUD_Limits>), which edits ~/.claude/settings.json → env, not sap.env.
</Use_When><Status_Snapshot>
When invoked with status / show / hud (or as the preamble to any edit flow), render this panel. Keep it compact — roughly 10–14 lines — and silence sections that can't be fetched (e.g. MCP disconnected) rather than failing.
Contents (only show rows you could resolve):
<alias> [<tier>] with 🔒 if tier≠DEV — from <project>/.sc4sap/active-profile.txt + ~/.sc4sap/profiles/<alias>/sap.env → SAP_TIER. Show (legacy) when no active-profile.txt is set and a legacy sap.env is in use.<SID> · client <MANDT> · user <BNAME> · lang <SPRAS> (from GetSession)<SAP_URL> · auth <SAP_AUTH_TYPE> · type <SAP_SYSTEM_TYPE> · version <SAP_VERSION> · ABAP <ABAP_RELEASE><SAP_RFC_BACKEND or "odata (default)"> — if odata (or unset), append · <SAP_RFC_ODATA_SERVICE_URL> (with CSRF TTL = <SAP_RFC_ODATA_CSRF_TTL_SEC or "600">s); if native, append · ashost <SAP_RFC_ASHOST>:<SAP_RFC_SYSNR> or · mshost <SAP_RFC_MSHOST>/<SAP_RFC_SYSID>; if gateway, append · <SAP_RFC_GATEWAY_URL> (token masked)<SAP_INDUSTRY or "(not set)"> — drives which industry/*.md consultant agents load<count> (0 = green, >0 = red) (from GetInactiveObjects)<TRKORR> — <description> if present in config.json → activeTransport, else "-"<MCP_BLOCKLIST_PROFILE or "standard (default)"> · extend <n> entries · allow <n> entries<config.json blocklistProfile> · extend/custom file presenceIf the user's intent is status-only (they just said "hud" / "show status"), render the panel and stop. Do not ask follow-up "what to change" questions unless the user continues. </Status_Snapshot>
<File_Path>
${CLAUDE_PLUGIN_ROOT}/.sc4sap/sap.envC:\Users\<user>\.claude\plugins\cache\sc4sap\sc4sap\<version>\.sc4sap\sap.env/sc4sap:setup first. Do NOT create it from scratch here — setup handles the initial interactive credential flow.
</File_Path><Managed_Keys> Connection (required):
SAP_URL — SAP host URL including port (e.g. https://host:44300)SAP_CLIENT — 3-digit client (e.g. 100)SAP_AUTH_TYPE — basic | xsuaaSAP_USERNAME — SAP user IDSAP_PASSWORD — secret — always mask when displayingSAP_LANGUAGE — EN, DE, KO, ...SAP_SYSTEM_TYPE — onprem | cloud | legacySAP_VERSION — S4 | ECCABAP_RELEASE — e.g. 756, 758SAP_INDUSTRY — one of the 15 keys in industry/README.md (retail | fashion | cosmetics | tire | automotive | pharmaceutical | food-beverage | chemical | electronics | construction | steel | utilities | banking | public-sector | other). Mirrored to .sc4sap/config.json → industry whenever changed — both writes must succeed or neither.TLS_REJECT_UNAUTHORIZED — 0 (accept self-signed, dev only) or unsetBlocklist policy (optional — guard for GetTableContents / GetSqlQuery):
MCP_BLOCKLIST_PROFILE — minimal | standard | strict | off (default: standard)MCP_BLOCKLIST_EXTEND — comma-separated extra table names / patterns (always denied)MCP_ALLOW_TABLE — comma-separated whitelist for audited bypassRFC backend (optional — selects transport for Screen / GUI Status / Text Element ops):
SAP_RFC_BACKEND — odata (default) | soap | native | gateway | zrfcPer-backend env blocks (Native / Gateway / OData credentials and knobs) live in rfc-managed-keys.md. Read that file when the user asks to change the RFC backend or edit any SAP_RFC_* field.
XSUAA (only when SAP_AUTH_TYPE=xsuaa):
XSUAA_URL, XSUAA_CLIENT_ID, XSUAA_CLIENT_SECRET, XSUAA_TOKEN_URLDo not manage keys that are not in this list — warn the user and skip. </Managed_Keys>
See [workflow.md](workflow.md).<Profile_Management>
See profile-management.md. Handles multi-environment (Dev/QA/Prod) connection switching, tier-based readonly enforcement, OS-keychain-backed password storage, profile add/edit/remove/purge, and migration from legacy single-profile .sc4sap/sap.env.
</Profile_Management>
<Industry_Selection> See industry-selection.md. </Industry_Selection>
<HUD_Limits> See hud-limits.md. </HUD_Limits>
- `SAP_URL`: must match `^https?://[^ ]+` and not end with `/`. - `SAP_CLIENT`: exactly 3 digits. - `SAP_AUTH_TYPE`: one of `basic` | `xsuaa`. - `SAP_LANGUAGE`: 2-letter uppercase. - `SAP_SYSTEM_TYPE`: one of `onprem` | `cloud` | `legacy`. - `SAP_VERSION`: one of `S4` | `ECC`. - `ABAP_RELEASE`: 3-digit numeric (e.g. `750`, `756`). - `SAP_INDUSTRY`: must be one of the 15 canonical keys listed in ``. Reject unknown values; offer the selection menu from ``. Lowercase, hyphen-separated (e.g., `food-beverage`, not `Food_Beverage`). - `TLS_REJECT_UNAUTHORIZED`: `0` or unset. Warn that `0` is dev-only. - `MCP_BLOCKLIST_PROFILE`: one of `minimal` | `standard` | `strict` | `off`. If user chooses `off`, require explicit confirmation ("This disables ALL row-extraction guards. Type `I UNDERSTAND` to proceed."). - `MCP_BLOCKLIST_EXTEND` / `MCP_ALLOW_TABLE`: comma-separated uppercase table names (`[A-Z0-9_*]+` allowed; `*` is glob). Strip whitespace around commas. - When adding to `MCP_ALLOW_TABLE`, explicitly warn that each entry is audited to stderr and is a soft bypass of the blocklist — user should remove entries when no longer needed. - `SAP_PASSWORD`: no validation on content (may contain anything), but refuse empty. - All `SAP_RFC_*` validation rules live in [`rfc-managed-keys.md`](rfc-managed-keys.md) → "Validation rules". - Never print secrets (`SAP_PASSWORD`, `XSUAA_CLIENT_SECRET`) in chat output, diffs, logs, or confirmation prompts. Always mask. - Never copy `sap.env` to any location outside `.sc4sap/` — no uploads to Notion, no pastes into issues. - After writing, do not display the final file contents. Only summarize which keys changed. - The backup `sap.env.bak` contains secrets — mention its existence but do not open/read it back to the user.<Edge_Cases>
/sc4sap:setup. Do not create.KEY=VALUE or comments) → show the offending lines, ask user to clean manually, abort.<Managed_Keys> → warn, ask to confirm adding as a custom key (append at end with a # custom comment). Do not validate content.SAP_URL) → refuse; required keys can only be changed, not removed.marketplaces/ source tree (dev mode) rather than cache/ → still look up .sc4sap/sap.env relative to the plugin root; if both exist, prefer the one under the currently-running plugin directory and tell the user which path was edited.
</Edge_Cases><Standalone_TUI> See standalone-tui.md. </Standalone_TUI>
See [examples.md](examples.md).