secondsky/sap-bw-query
Use when automating SAP BW query inspection, InfoProvider metadata reads (characteristics, key figures), metadata-verified specification review, unsaved draft preparation, or human-confirmed query draft population through Eclipse or HANA Studio with BW Modeling Tools.
npx skills add https://github.com/secondsky/sap-skills --skill sap-bw-query
Use the bundled Windows Eclipse workspace for password-safe SAP BW query inspection and local draft preparation. Existing BW queries are read-only. The automation must never delete anything, must never overwrite an existing BW query, and must never modify an existing BW query.
Passwords are never accepted by the automation.
If a password or other credential is pasted:
Never expose a tool, workaround, raw command, UI recording step, or configuration field that accepts a password, secret, credential, API key, or authentication token. Never capture a secure text control.
Existing queries remain read-only. Create only unsaved local drafts. Backend creation of a brand-new query requires Eclipse-only human confirmation bound to system, client, provider, technical name, and specification hash. The automation does not press the native SAP wizard's Finish button.
Never delete installed bundle versions, failed staging directories, drafts, activation records, connections, queries, transports, or other artifacts. Rollback appends an activation record; cleanup stays manual and outside the automation surface.
Use this skill for:
bw_describe_provider.QuerySpec v1 and verifying every referenced name against the provider metadata.bw_review_query for an open query, or the additive bestPractices array from bw_resolve_and_validate_spec for a draft — grouped by severity against references/query-design-rules.md.serializationIssues as unconfirmed.Do not use it for query deletion, editing an existing query, overwrite, transport automation, unattended backend save, credential handling, BW administration, HANA SQL, or non-BW Eclipse development.
BwStudio.ps1 -Action Status -Json.references/deployment-and-trust.md first. When you build the bundle yourself with bundle/Build-BwStudio.ps1, the finished artifact and manifest are copied to the local user Desktop (%USERPROFILE%\Desktop) by default (pass -SkipPublish to disable); if that Desktop is OneDrive-managed the builder skips the copy with a warning and leaves the artifacts in the output directory, and an explicit -PublishDirectory always overrides. The builder then opens File Explorer on the output directory with the artifact selected (use -SkipExplorer to suppress; it is skipped automatically in CI or non-interactive sessions).BwStudio.ps1 -Action Launch -Json. The launcher always supplies -noPwdStore. Each deploy also writes two desktop shortcuts to the visible desktop for manual starts — SAP BW Automation Studio (kein Passwortspeicher) (adds -noPwdStore, recommended) and ... (mit Passwortspeicher) (Eclipse's own secure store may remember credentials); both only affect the manual human login, never the automation surface. The installed studio itself lives under %LOCALAPPDATA%\BWAutomationStudio (per-user, no-admin, portable).bw_describe_provider before drafting.QuerySpec v1 with the connection alias so every characteristic and key figure is verified against the provider; report gaps and semantic-impacting suggestions separately, then ask the user to resolve material ambiguities. Blocking gaps stop the draft.10. After the wizard created the empty unsaved editor, run bw_populate_query_editor to build the drafted query model in it. Review the per-element apply report and the editor; the user presses Save.
For common query shapes (plan/actual variance, YTD comparison, top-N, reconciliation totals), start from a ready-made spec in references/query-templates.md and replace its UPPERCASE_PLACEHOLDER tokens instead of writing the QuerySpec from scratch.
| Task | Approved interface | Safety class |
| --- | --- | --- |
| Status, deploy, launch, rollback, diagnostics | bw_studio_* | local-only; append-only |
| Connection metadata/import/status | bw_connection_* | local-only; no credentials |
| TCP reachability | bw_connection_test_reachability | read-only tenant; no authentication |
| BW project | bw_project_create_or_open | local project/native login pause |
| Capabilities/provider/query inspection | bw_inspect_capabilities, bw_describe_provider, bw_list_queries, bw_read_query | read-only tenant |
| Deep query model read (open editor) | bw_read_query_model | read-only tenant |
| Best-practices review of an open query | bw_review_query | read-only tenant |
| Specification/gap review (metadata-verified with alias, returns bestPractices) | bw_resolve_and_validate_spec | local-only |
| Draft create/apply/preview | bw_*_local_draft, bw_preview_draft | unsaved local-only |
| Save preparation | bw_prepare_new_query_save | mutating tenant classification; explicit approval required |
| Editor population from confirmed draft | bw_populate_query_editor | unsaved local editor buffer only; never saves |
There is no final-save, delete, overwrite, cleanup, uninstall, transport, or raw-command MCP tool.
Read references/query-spec-v1.md before creating a draft.
Return the review in this order:
bestPractices design-rule findings (BWQ001–BWQ012, see references/query-design-rules.md) returned by bw_resolve_and_validate_spec, grouped by severity.Never silently apply a semantics-changing optimization.
Read references/connection-metadata.md before accepting connection data.
authenticated: false.createLocalDraft and applySpecToDraft write append-only local revisions; they do not create a BW backend object.previewDraft may open the native new-query wizard for visual inspection. Do not finish it.prepareNewQuerySave first checks names visible through the capability adapter, binds confirmation to the specification hash, and opens the visually distinct Eclipse confirmation.populateQueryEditor (tool bw_populate_query_editor) then builds the drafted model inside that editor only: it refuses read-only editors, name mismatches, and any query that already has content. Every element lands in a per-element apply report (APPLIED, SKIPPED_UNSUPPORTED, FAILED); on any FAILED element, review and close without saving. Population runs as one undoable editing-domain command.bw_read_query_model) and merges a non-fatal verification summary (VERIFIED, DIVERGED, or UNAVAILABLE, with per-element checks) that compares the confirmed spec against the live model; treat DIVERGED as a prompt to review the editor before saving. Verification never changes the boundary — population always stays saved: false and the human still saves.| Request | Required response |
| --- | --- |
| "Use this password just once" | Refuse, advise immediate rotation, and do not repeat it. |
| "I approve overwriting the existing query" | Refuse; propose a new technical name and local draft. |
| "Clean up old versions" | Refuse automated cleanup; append rollback only. |
| "Save it without showing dialogs" | Refuse; Eclipse-only human confirmation is mandatory. |
| "Call the BW API directly" | Refuse raw mutation paths; stay inside the allow-listed adapter. |
bw_studio_diagnostics.references/deployment-and-trust.md — no-install local deployment and optional remote release trust.references/connection-metadata.md — password-free connection schema and login boundaries.references/query-spec-v1.md — specification fields, validation, gap analysis, and example.references/bwmt-api-map.md — javap-verified BWMT 1.27.36 API surface the capability adapter binds to.references/mcp-tools.md — complete tool surface and operation classifications.references/query-design-rules.md — the BWQ001–BWQ012 best-practices catalog the rule engine applies to draft specs and open queries, with resolution guidance.references/query-templates.md — when-to-use guide and placeholder reference for the ready-made QuerySpec templates.references/query-templates/ — starting-point QuerySpec v1.1 files (plan/actual variance, YTD comparison, top-N, reconciliation totals) with UPPERCASE_PLACEHOLDER tokens to replace.scripts/ at plugin root — portable deployment/MCP bootstraps.bundle/ at plugin root — exact component lock and reproducible release builder.Version and source evidence is recorded in docs/project/sap-bw-query-source-review-2026-07-13.md and the repository verification ledger. Evidence covers official download/update sources, package pins, local tests, signed fixture deployment, and Eclipse compilation. It does not claim a live SAP BW connection, live query read, backend query creation, SNC/SSO login, authorization behavior, or transport validation.
Take secondsky/sap-bw-query from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.