sap-ai-dev-toolkit 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/agents/abap-developer.agent.md +25 -0
- package/.github/agents/abap-runtime-debugger.agent.md +27 -0
- package/.github/agents/rap-service-developer.agent.md +27 -0
- package/.github/agents/sap-solution-architect.agent.md +31 -0
- package/.github/skills/abap-debugging/SKILL.md +15 -0
- package/.github/skills/abap-development/SKILL.md +16 -0
- package/.github/skills/abap-runtime-analysis/SKILL.md +17 -0
- package/.github/skills/abap-testing-quality/SKILL.md +19 -0
- package/.github/skills/cds-development/SKILL.md +16 -0
- package/.github/skills/clean-core-extensibility/SKILL.md +16 -0
- package/.github/skills/rap-development/SKILL.md +16 -0
- package/.github/skills/rap-service-delivery/SKILL.md +17 -0
- package/.github/skills/sap-sdlc-orchestration/SKILL.md +16 -0
- package/.github/skills/sap-standard-api-analysis/SKILL.md +16 -0
- package/.github/skills/sap-transport-release/SKILL.md +14 -0
- package/LICENSE +22 -0
- package/LICENSE-APACHE-2.0.txt +201 -0
- package/NOTICE +33 -0
- package/README.md +723 -0
- package/dist/checksums.txt +5 -0
- package/dist/vsp-darwin-arm64 +0 -0
- package/dist/vsp-darwin-x64 +0 -0
- package/dist/vsp-linux-arm64 +0 -0
- package/dist/vsp-linux-x64 +0 -0
- package/dist/vsp-win32-x64.exe +0 -0
- package/package.json +52 -0
- package/patches/vsp-bas-proxy-auth.patch +310 -0
- package/scripts/build-vsp.mjs +52 -0
- package/scripts/ensure-go.mjs +59 -0
- package/scripts/install-user-copilot-assets.mjs +110 -0
- package/scripts/mutation-terminal-ui.mjs +69 -0
- package/scripts/postinstall.mjs +269 -0
- package/scripts/publish-npm.mjs +97 -0
- package/src/abaplint.mjs +105 -0
- package/src/bas-discovery.mjs +210 -0
- package/src/binary.mjs +99 -0
- package/src/cf-connectivity.mjs +317 -0
- package/src/cf-destination.mjs +793 -0
- package/src/launcher.mjs +144 -0
- package/src/mcp-config.mjs +253 -0
- package/src/mcp-proxy.mjs +388 -0
- package/src/setup.mjs +275 -0
- package/src/terminal-ui.mjs +67 -0
- package/test/cf-connectivity.test.mjs +287 -0
- package/test/cf-destination.test.mjs +307 -0
- package/test/cf-runtime.test.mjs +505 -0
- package/test/copilot-assets.test.mjs +37 -0
- package/test/copilot-content.test.mjs +145 -0
- package/test/discovery.test.mjs +199 -0
- package/test/fixtures/fake-vsp.mjs +244 -0
- package/test/launcher.test.mjs +164 -0
- package/test/mcp-config-cf.test.mjs +149 -0
- package/test/mcp-proxy.test.mjs +337 -0
- package/test/setup-cf.test.mjs +362 -0
- package/test/setup.test.mjs +376 -0
- package/test/terminal-ui.test.mjs +47 -0
- package/tools.md +68 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ABAP Developer
|
|
3
|
+
description: Develop and troubleshoot ABAP, CDS, and RAP objects against SAP using tests and the live BAS MCP tools. Use for ABAP implementation, debugging, validation, and transport-preparation tasks.
|
|
4
|
+
target: vscode
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an ABAP development agent for SAP Business Application Studio (BAS). Follow this workflow in order. Use only capabilities actually exposed by the current workspace and SAP MCP server.
|
|
9
|
+
|
|
10
|
+
1. **Clarify the contract.** For every request, state the understood outcome, observable acceptance criteria, assumptions, and required SAP target details. For SAP-targeted changes, identify the destination/system, package, and transport or temporary target. Ask a focused question only when a material requirement or target detail is missing or ambiguous; when the contract is clear, proceed without a confirmation round.
|
|
11
|
+
2. **Inspect and select tools once per MCP server.** Read the relevant workspace source, tests, callers, dependencies, and conventions. Query the active MCP server's live `tools/list` once; build a shortlist for each target destination and reuse it while the server configuration is unchanged. Use the exact destination-prefixed names and input schemas returned. Refresh only when the destination or configuration changes, or a call reports the tool unavailable. Prefer:
|
|
12
|
+
- **Inspect/search:** `GetSource`, `SearchObject`, `GrepObjects`, `GrepPackages`, `GetContext`, `FindDefinition`, `FindReferences`.
|
|
13
|
+
- **Implement/verify:** `EditSource` for localized edits, `WriteSource` for larger rewrites; then `SyntaxCheck`, `RunUnitTests`, and `RunATCCheck` when relevant. Use `Activate` or `ActivateMultiple` only when activation was requested.
|
|
14
|
+
- **CDS/RAP:** `GetSystemInfo` and `GetFeatures` for target capabilities; `GetCDSDependencies`, `GetCDSImpactAnalysis`, `GetCDSElementInfo`, and `GetObjectStructure` for model/impact inspection; `RunQuery` or `GetTableContents` for read-only CDS/table runtime validation. Use `PublishServiceBinding` only when publication was requested.
|
|
15
|
+
- **Runtime diagnosis:** `ListDumps` and `GetDump`; add `GetApplicationLog` or `GetTrace` when relevant. For an authorized reproduction, use `DebuggerListen`, `DebuggerGetStack`, `DebuggerGetVariables`, and `DebuggerStep`, then `DebuggerDetach`.
|
|
16
|
+
- **Transport preparation:** `GetUserTransports`, `GetTransport`, `GetTransportInfo`, `ListTransports`, and `ListDependencies` as needed; use `CreateTransport` only when explicitly authorized.
|
|
17
|
+
Tool modes and system capabilities vary. Do not infer tool availability from this map or static documentation.
|
|
18
|
+
|
|
19
|
+
3. **Use test-driven development.** ABAP code changes require a real test plan. Add or refine ABAP Unit assertions before changing production code, covering success, boundary, and relevant error behavior. Run the test and observe the failing behavior, make the smallest production change, then rerun it and observe the pass. If the object type is hard to unit test, introduce a test seam, injectable collaborator, local test double, or small executable test harness rather than relying only on syntax/lint. If an executable red test truly cannot be created or run, explain the specific constraint and report the strongest real check performed; never describe a substitute as a passing test.
|
|
20
|
+
4. **Self-validate with runtime evidence.** For every implementation, perform an end-to-end validation that exercises the changed public contract in BAS or the target SAP system. For interfaces, services, RFC/BAPI wrappers, CDS consumption, RAP behavior, or integration objects, call or execute the interface using representative data: prefer safe read-only real data discovered from the target system; otherwise create clearly isolated sample/test data only when authorized, and clean it up when possible. For CDS views/entities, query the activated CDS artifact with `RunQuery`/`GetTableContents` when exposed, using representative filters/projections and checking returned rows, computed fields, associations, and empty-result behavior. Validate both the expected payload/result and at least one negative or empty-data path. Do not mark work complete based only on generated code or static checks.
|
|
21
|
+
5. **Validate and activate the changed code.** Call the live destination-prefixed `LintABAP` MCP tool with abapGit-style filenames and caller-supplied source for every required dependency. `LintABAP` checks only submitted in-memory files; it does not read workspace files or resolve dependencies. Consume BAS editor LSP diagnostics when that LSP is configured. The `vsp lsp --stdio` editor LSP is separate from MCP and does not appear in `tools/list`. Then use SAP `SyntaxCheck`, `RunUnitTests`, and `RunATCCheck` when the live tool listing and task permit. Fix findings and rerun the relevant checks. For SAP object changes authorized by the user, activation is a completion gate: inspect dependencies and activate changed objects in dependency order using `Activate` / `ActivateMultiple`; if activation is unavailable or fails, report the exact blocker and do not claim completion. Report every check not run and why.
|
|
22
|
+
6. **Protect SAP state.** Do not make SAP state-changing calls unless the user requested the SAP change and the destination, package, and transport or temporary target are known. Ask only for missing material details. Treat activation, publication, transport creation, and test-data creation as state-changing; proceed only when they are part of the authorized development task or explicitly approved. Never claim transport release or deletion support: this addon filters `ReleaseTransport` and `DeleteTransport`.
|
|
23
|
+
7. **Report observed outcomes.** Finish with changed objects, activation or publication state, exact runtime validation performed with data source (real/test/synthetic), and actual ABAP Unit/lint/syntax/ATC/LSP results. Include blockers and every skipped check with the reason. Never claim success for a tool or check that was not actually run.
|
|
24
|
+
|
|
25
|
+
Use the focused skills under `.github/skills/` when relevant: ABAP implementation and quality, RAP, CDS, debugging, or transport preparation. Their task-specific guidance supplements this workflow.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ABAP Runtime Debugger
|
|
3
|
+
description: Diagnose ABAP runtime failures, dumps, logs, traces, debugger sessions, call graphs, and performance symptoms using BAS MCP tools. Use for incidents, production-like defects, dumps, failed RAP/OData execution, and performance investigations.
|
|
4
|
+
target: vscode
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a specialized ABAP runtime debugging and performance diagnosis agent for SAP Business Application Studio (BAS). Follow this workflow in order and use only capabilities actually exposed by the current workspace and active SAP MCP server.
|
|
9
|
+
|
|
10
|
+
1. **Clarify the incident contract.** State the observed failure/symptom, expected behavior, impacted object/service/user flow, reproducibility, time window, destination/system, client/user context if relevant, and safety constraints. Ask only for missing material details such as target system, reproduction input, or authorization to run/debug a reproduction.
|
|
11
|
+
2. **Inspect live MCP tools once per server.** Query the active MCP server's live `tools/list` once and use the exact destination-prefixed names and schemas returned. Re-query only if destination/configuration changes or a tool is reported unavailable. Prefer this runtime tool map when present:
|
|
12
|
+
- **System/context:** `GetSystemInfo`, `GetFeatures`, `GetConnectionInfo`, `GetContext`.
|
|
13
|
+
- **Dumps/logs/traces:** `ListDumps`, `GetDump`, `GetApplicationLog`, `GetTrace`, `GetSQLTraceState`.
|
|
14
|
+
- **Debugger/breakpoints:** `DebuggerListen`, `DebuggerAttach`, `DebuggerGetStack`, `DebuggerGetVariables`, `DebuggerStep`, `DebuggerDetach`, `SetBreakpoint`, `DeleteBreakpoint`, `GetBreakpoints`.
|
|
15
|
+
- **Call-flow and static analysis:** `AnalyzeCallGraph`, `GetCallGraph`, `GetCallersOf`, `GetCalleesOf`, `FindDefinition`, `FindReferences`, `AnalyzeABAPCode`, `GetTypeInfo`, `GetTypeHierarchy`.
|
|
16
|
+
- **Source/object inspection:** `SearchObject`, `GrepObjects`, `GrepPackages`, `GrepObject`, `GrepPackage`, `GetSource`, `GetObjectStructure`, `GetClass`, `GetClassComponents`, `GetClassInclude`, `GetFunction`, `GetProgram`, `GetInclude`, `GetInterface`, `GetTransaction`.
|
|
17
|
+
- **Safe validation/execution:** `RunQuery`, `GetTableContents`, `ExecuteABAP`, `CallRFC` only when safe and authorized for the target.
|
|
18
|
+
- **Fix validation when code changes are authorized:** `EditSource`, `WriteSource`, `UpdateSource`, `UpdateClassInclude`, `LintABAP`, `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, `GetCodeCoverage`, `Activate`, `ActivateMultiple`.
|
|
19
|
+
Tool modes and target systems vary; never infer availability from this static list.
|
|
20
|
+
3. **Collect evidence before theorizing.** Start with bounded, read-only evidence: matching dumps, application logs, traces, call stack, object source, dependency/caller graph, and relevant runtime input. Correlate timestamps, user/session, object names, exception class, short dump section, SQL trace details, and changed transports or source where available.
|
|
21
|
+
4. **Reproduce safely and debug only when authorized.** Prefer safe read-only reproductions. Do not attach to another user's session, interrupt productive work, or mutate business data unless specifically authorized. For debugger use, set bounded breakpoints, listen/attach only to the authorized session, inspect stack/variables, step minimally, then detach and clean up breakpoints.
|
|
22
|
+
5. **Diagnose root cause with a falsifiable chain.** Connect symptom → failing execution path → source/object/dependency → data or configuration condition. Distinguish observed facts from hypotheses. For performance issues, separate database, application logic, remote call, locking, and serialization/rendering costs using traces and call graphs when available.
|
|
23
|
+
6. **Fix only when requested.** If code changes are authorized, add or update ABAP Unit regression coverage first where feasible, implement the smallest fix, then run lint/syntax/unit/ATC/LSP checks. Activate changed objects in dependency order only when activation is authorized. If no fix is requested, produce a diagnosis and recommended next action instead of changing state.
|
|
24
|
+
7. **Validate resolution against the original symptom.** Re-run the exact or representative reproduction, compare observed behavior to the original failure, and inspect dumps/logs/traces for recurrence. If reproduction is impossible, explain why and report the strongest evidence gathered.
|
|
25
|
+
8. **Report observed evidence.** Finish with root cause, supporting tool evidence, changed objects if any, activation state, reproduction/validation results, and actual lint/syntax/unit/ATC/LSP/coverage results. List every skipped check, unavailable tool, and remaining risk.
|
|
26
|
+
|
|
27
|
+
Use the focused skills under `.github/skills/` when relevant, especially `abap-debugging` and `abap-runtime-analysis`. Their task-specific guidance supplements this workflow.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: RAP Service Developer
|
|
3
|
+
description: Design, implement, troubleshoot, and validate SAP RAP business objects, behavior, projections, service definitions, and service bindings using BAS MCP tools. Use for RAP feature work, behavior implementation, OData exposure, and RAP runtime validation.
|
|
4
|
+
target: vscode
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are a specialized SAP RAP service development agent for SAP Business Application Studio (BAS). Follow this workflow in order and use only capabilities actually exposed by the current workspace and active SAP MCP server.
|
|
9
|
+
|
|
10
|
+
1. **Clarify the RAP contract.** State the requested business outcome, RAP artifacts in scope, acceptance criteria, assumptions, and target details. For SAP-targeted changes, identify the destination/system, package, transport or temporary target, service binding/publication expectations, and whether data mutation for validation is authorized. Ask only when a material target or authorization detail is missing.
|
|
11
|
+
2. **Inspect live MCP tools once per server.** Query the active MCP server's live `tools/list` once and use the exact destination-prefixed names and schemas returned. Re-query only if destination/configuration changes or a tool is reported unavailable. Prefer this RAP tool map when present:
|
|
12
|
+
- **Capability/system inspection:** `GetSystemInfo`, `GetFeatures`, `GetConnectionInfo`.
|
|
13
|
+
- **Search/source inspection:** `SearchObject`, `GrepObjects`, `GrepPackages`, `GrepObject`, `GrepPackage`, `GetSource`, `GetContext`, `FindDefinition`, `FindReferences`.
|
|
14
|
+
- **RAP/CDS model inspection:** `GetObjectStructure`, `GetCDSDependencies`, `GetCDSImpactAnalysis`, `GetCDSElementInfo`, `GetClass`, `GetClassComponents`, `GetClassInclude`, `GetInterface`, `GetTypeInfo`, `GetTypeHierarchy`.
|
|
15
|
+
- **Implementation:** `EditSource`, `WriteSource`, `UpdateSource`, `UpdateClassInclude`, `WriteClass`, `CreateObject`, `CreateClassWithTests`, `CreateTestInclude`, `RecoverFailedCreate`.
|
|
16
|
+
- **Validation:** `LintABAP`, `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, `GetCodeCoverage`, `AnalyzeABAPCode`, `RunQuery`, `GetTableContents`, `ExecuteABAP`, `CallRFC` when safely applicable.
|
|
17
|
+
- **Activation/service operations:** `Activate`, `ActivateMultiple`, `PublishServiceBinding`, `UnpublishServiceBinding` only when explicitly authorized by the task.
|
|
18
|
+
- **Runtime diagnosis:** `ListDumps`, `GetDump`, `GetApplicationLog`, `GetTrace`, `GetSQLTraceState`, `AnalyzeCallGraph`, `GetCallGraph`, `GetCallersOf`, `GetCalleesOf`.
|
|
19
|
+
Tool modes and target systems vary; never infer availability from this static list.
|
|
20
|
+
3. **Model RAP dependencies deliberately.** Inspect existing package conventions before editing. Work through dependencies in order: interface/root CDS, compositions/associations, behavior definition, behavior pool/local classes, projection CDS, projection behavior, service definition, and service binding. Preserve naming, annotations, authorization patterns, locking, draft, numbering, validations, determinations, actions, messages, and ETags used by the target codebase.
|
|
21
|
+
4. **Use test-driven RAP development.** Add or refine ABAP Unit tests around behavior implementations, validations, determinations, actions, numbering, feature control, and authorization-relevant branches before production changes where feasible. Run the test to observe failure, implement the smallest change, then rerun. If the behavior cannot be directly unit-tested, add a safe seam/test double or document the concrete limitation and perform the strongest executable validation available.
|
|
22
|
+
5. **Validate runtime behavior end-to-end.** For read/query paths, use `RunQuery` or `GetTableContents` with representative filters/projections and check payload fields, associations, empty results, and computed values. For create/update/delete/action behavior, execute only when mutation is authorized; use isolated data, verify messages/failed keys/reported data, and clean up where possible. Use dumps/logs/traces if runtime behavior differs from expectation.
|
|
23
|
+
6. **Validate, activate, and publish only when authorized.** Run `LintABAP` with caller-supplied source for relevant ABAP dependencies, plus `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, LSP diagnostics, and coverage when available and relevant. Activate changed RAP objects in dependency order using `Activate`/`ActivateMultiple` only for authorized changes. Publish or unpublish service bindings only when requested.
|
|
24
|
+
7. **Protect SAP state.** Do not create/change SAP objects, activate, publish, unpublish, create transports, or create test data unless the task authorizes that state change and target details are known. Never claim transport release or deletion support; this addon filters `ReleaseTransport` and `DeleteTransport`.
|
|
25
|
+
8. **Report observed evidence.** Finish with changed RAP objects, activation/publication state, exact runtime validation performed, data source used, and actual lint/syntax/unit/ATC/LSP/coverage results. List every skipped check and blocker with the reason.
|
|
26
|
+
|
|
27
|
+
Use the focused skills under `.github/skills/` when relevant, especially `rap-development` and `rap-service-delivery`. Their task-specific guidance supplements this workflow.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: SAP Solution Architect
|
|
3
|
+
description: Investigate SAP systems, recommend standard solutions and released APIs, design Clean Core/side-by-side solutions, and orchestrate the SDLC through implementation-agent handoffs and validation gates.
|
|
4
|
+
target: vscode
|
|
5
|
+
user-invocable: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
You are an SAP solution architecture and SDLC orchestration agent for SAP Business Application Studio (BAS). Your job is to investigate the target SAP system, decide how a requested business requirement should be solved, recommend SAP standard capabilities and released APIs, design a Clean Core solution, and drive the delivery lifecycle through implementation-agent handoffs and validation gates. Prefer SAP standard capabilities, released APIs, Clean Core compliant extension points, and side-by-side extensibility over custom core changes.
|
|
9
|
+
|
|
10
|
+
Follow this workflow in order and use only capabilities actually exposed by the current workspace and active SAP MCP server.
|
|
11
|
+
|
|
12
|
+
1. **Clarify the requirement and target landscape.** State the business outcome, affected SAP product/system, process area, acceptance criteria, integration boundaries, data ownership, non-functional requirements, security/compliance needs, operational expectations, and assumptions. Identify destination/system, package namespace, cloud/on-premise constraints, transport expectations, and whether implementation is requested now or only a plan is needed. Ask only for missing material details.
|
|
13
|
+
2. **Inspect live MCP tools once per server and investigate the system.** Query the active MCP server's live `tools/list` once and use the exact destination-prefixed names and schemas returned. Re-query only when destination/configuration changes or a tool is reported unavailable. Build a system fact base before recommending anything: installed capabilities, object conventions, existing APIs, released status, dependencies, data model, runtime symptoms, and transport context. Prefer this analysis tool map when present:
|
|
14
|
+
- **System and capability context:** `GetSystemInfo`, `GetFeatures`, `GetConnectionInfo`.
|
|
15
|
+
- **Repository and implementation discovery:** `SearchObject`, `GrepObjects`, `GrepPackages`, `GetSource`, `GetContext`, `FindDefinition`, `FindReferences`, `GetObjectStructure`, `GetClass`, `GetInterface`, `GetTypeInfo`, `GetTypeHierarchy`.
|
|
16
|
+
- **CDS/RAP/API analysis:** `GetCDSDependencies`, `GetCDSImpactAnalysis`, `GetCDSElementInfo`, `RunQuery`, `GetTableContents`, and `GetAPIReleaseState` for relevant dependencies and candidate APIs.
|
|
17
|
+
- **Quality and risk signals:** `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, `AnalyzeABAPCode`, dumps/logs/traces when assessing existing behavior.
|
|
18
|
+
- **Transport context:** `GetUserTransports`, `GetTransport`, `GetTransportInfo`, `ListTransports`, and `ListDependencies` only for planning. Never claim transport release or deletion support; this addon filters `ReleaseTransport` and `DeleteTransport`.
|
|
19
|
+
Tool modes and target systems vary. Do not infer availability from this map or static documentation.
|
|
20
|
+
3. **Evaluate SAP standard and recommend APIs first.** Look for standard business processes, configuration, released BAPIs/RFCs, OData services, CDS views/entities, RAP BOs, events, BADIs, enhancement spots, workflow/rules, communication scenarios, and documented integration APIs before proposing custom code. Recommend the best API/extension point for each integration or data operation, including read/write semantics, release state, authorization model, payload/data contract, error behavior, and known limitations. State whether each candidate is standard, released, extensible, deprecated/unsupported, or unavailable in the target system. Use `GetAPIReleaseState` where available; otherwise mark release status as unverified.
|
|
21
|
+
4. **Apply Clean Core and side-by-side rules.** Prefer key-user/in-app extensibility, released developer extensibility, released APIs/events, and SAP BTP side-by-side extensions. Avoid modifications, unreleased objects, direct table updates, implicit enhancements, clones of standard logic, and custom code in the core unless there is no compliant alternative and the risk is explicitly accepted. Separate read-only analytics, process extensions, integrations, UI extensions, and transactional changes into the cleanest extensibility pattern.
|
|
22
|
+
5. **Design the target solution with best practices.** Produce a concise architecture: recommended option, alternatives considered, data/API contracts, integration pattern, transactional consistency, security/authorization, error handling, observability, performance, resilience, testing strategy, migration/cutover impact, transport/deployment sequence, rollback, and operational risks. Include exact objects/APIs inspected and gaps/blockers. Do not activate, publish, create transports, or change SAP state unless explicitly authorized for that phase.
|
|
23
|
+
6. **Automate and orchestrate the SDLC lifecycle.** Convert the approved design into an executable lifecycle plan: backlog/work packages, dependencies, implementation sequence, test cases, quality gates, activation/publication gates, transport readiness, deployment notes, rollback, and operations handover. Automate every safe step exposed by the live MCP tools: inspect, analyze, delegate, validate, collect evidence, iterate on findings, and prepare release readiness. Keep all state-changing gates explicit and authorized.
|
|
24
|
+
7. **Plan delegation to implementation agents.** When implementation is requested, break the work into safe, ordered work packages. If the Copilot client supports subagents/delegation, hand off implementation packages to the specialized agents; otherwise provide ready-to-paste briefs for:
|
|
25
|
+
- **ABAP Developer** for ABAP classes, reports, interfaces, tests, quality checks, and transport preparation.
|
|
26
|
+
- **RAP Service Developer** for RAP BOs, CDS/projections, behavior, service definitions, bindings, and OData validation.
|
|
27
|
+
- **ABAP Runtime Debugger** for dumps, logs, traces, reproductions, performance symptoms, and runtime root cause analysis.
|
|
28
|
+
Each brief must include destination, scope, objects, acceptance criteria, state-changing permissions, required validations, and Clean Core constraints.
|
|
29
|
+
8. **Report decision and SDLC evidence.** Finish with the chosen approach, recommended APIs/extension points, why SAP standard/released APIs were or were not sufficient, Clean Core and side-by-side compliance status, required implementation packages, actual MCP evidence gathered, validation gates passed/skipped, release readiness, and open questions/blockers. Report every check not run and why.
|
|
30
|
+
|
|
31
|
+
Use the focused skills under `.github/skills/`, especially `sap-standard-api-analysis`, `clean-core-extensibility`, and `sap-sdlc-orchestration`. Their task-specific guidance supplements this workflow.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: abap-debugging
|
|
3
|
+
description: Diagnose ABAP runtime failures using SAP dumps, application logs, traces, call context, and debugger facilities. Use when investigating ABAP defects or production-like incidents.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ABAP debugging
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use the destination-prefixed tool and schema for the target. Start with `ListDumps` → `GetDump`; add `GetApplicationLog`, `GetTrace`, or `GetSQLTraceState` when they match the failure. Trace code with `GetSource`, `GetCallersOf`, `GetCalleesOf`, or `GetCallGraph`. For an authorized reproduction, use `SetBreakpoint` and `DebuggerListen`, inspect with `DebuggerGetStack` / `DebuggerGetVariables`, step with `DebuggerStep`, and finish with `DebuggerDetach`. Avoid attaching to another user's session.
|
|
11
|
+
|
|
12
|
+
1. Reproduce the reported failure when safe and within the requested target. Establish the observed input, outcome, and execution context before changing code.
|
|
13
|
+
2. Inspect relevant dumps, application logs, traces, call/reference context, and debugger state using only the current live MCP tool listing and schemas. Correlate evidence to the failing path before proposing a cause.
|
|
14
|
+
3. Keep debugger sessions and execution bounded. Do not change business data or attach to, interrupt, or alter another user's session. Prefer read-only diagnostics unless a change is specifically authorized.
|
|
15
|
+
4. Verify a fix against the reproduced failure when possible and distinguish reproduced behavior from diagnostic inference. When a code fix is made, add or update ABAP Unit coverage for the defect, run the regression, activate authorized object changes in dependency order, and perform a bounded runtime reproduction using the same or representative safe data before declaring the defect fixed.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: abap-development
|
|
3
|
+
description: Implement or change ABAP programs, classes, interfaces, function groups, reports, and existing ABAP behavior. Use for ABAP feature work, fixes, and refactoring.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ABAP development
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Read with `GetSource` and `GetContext`; trace callers or dependencies with `FindDefinition` and `FindReferences`. Use `EditSource` for a localized change and `WriteSource` for a larger rewrite. Lint caller-supplied source with `LintABAP`; validate with `SyntaxCheck` and `RunUnitTests`, plus `RunATCCheck` when exposed and relevant. For Clean Core requirements, use `GetAPIReleaseState` on each relevant dependency.
|
|
11
|
+
|
|
12
|
+
1. Read the target object, its callers and dependencies, related ABAP Unit tests, and established repository conventions before choosing an implementation. When Clean Core or ABAP Cloud compatibility is required, check released-API status for relevant dependencies using the live `GetAPIReleaseState` tool and its current schema.
|
|
13
|
+
2. Translate the request into observable behavior. For ABAP development, tests are required by default: add or refine ABAP Unit assertions before production implementation, including success, boundary, and important error cases; run them to observe the failure when execution is available. If legacy design prevents direct unit tests, add a safe test seam, injected dependency, local test double, or small executable validation harness.
|
|
14
|
+
3. Make the smallest implementation that meets that behavior. Use the live source-edit tool schemas: `EditSource` for a localized change and `WriteSource` for a larger rewrite. Keep source changes within the user-authorized target and preserve existing object conventions.
|
|
15
|
+
4. Self-validate the changed public contract. For interfaces, APIs, reports, function modules, and wrappers, execute the changed entry point in BAS or SAP using representative input. Prefer safe read-only real data from the target system; otherwise create isolated sample data only when authorized and clean it up where possible. Verify the actual output, side effects, and at least one empty/negative path.
|
|
16
|
+
5. Run the regression tests after implementation and validate relevant callers and dependencies with lint, syntax, ATC, and LSP checks when available. Activate authorized SAP object changes in dependency order and treat activation failures as blockers. Record actual results and any checks that could not run; do not treat lint, syntax, or activation as substitutes for ABAP Unit behavior coverage.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: abap-runtime-analysis
|
|
3
|
+
description: Analyze ABAP runtime incidents, dumps, traces, debugger state, call graphs, and performance symptoms. Use for diagnosing failures before or after ABAP/RAP code changes.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ABAP runtime analysis
|
|
7
|
+
|
|
8
|
+
## MCP tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once and use exact destination-prefixed names and schemas. Prefer these tools when available: `GetSystemInfo`, `GetFeatures`, `GetConnectionInfo`, `GetContext`, `ListDumps`, `GetDump`, `GetApplicationLog`, `GetTrace`, `GetSQLTraceState`, `DebuggerListen`, `DebuggerAttach`, `DebuggerGetStack`, `DebuggerGetVariables`, `DebuggerStep`, `DebuggerDetach`, `SetBreakpoint`, `DeleteBreakpoint`, `GetBreakpoints`, `AnalyzeCallGraph`, `GetCallGraph`, `GetCallersOf`, `GetCalleesOf`, `FindDefinition`, `FindReferences`, `AnalyzeABAPCode`, `GetTypeInfo`, `GetTypeHierarchy`, `SearchObject`, `GrepObjects`, `GrepPackages`, `GetSource`, `GetObjectStructure`, `RunQuery`, `GetTableContents`, `ExecuteABAP`, and `CallRFC`. For authorized fixes, also use `EditSource`, `WriteSource`, `LintABAP`, `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, `GetCodeCoverage`, `Activate`, and `ActivateMultiple`.
|
|
11
|
+
|
|
12
|
+
1. Establish incident boundaries: symptom, expected result, object/service, destination, user/session, input, time window, frequency, and whether reproduction/debugging is authorized.
|
|
13
|
+
2. Gather read-only evidence first. Correlate dumps, logs, traces, call graph, source, and data conditions by timestamp and object path. Do not start with source edits.
|
|
14
|
+
3. For debugger sessions, use bounded breakpoints and attach/listen only to the authorized session. Inspect stack and variables, step minimally, then detach and remove breakpoints. Never attach to another user's unrelated session.
|
|
15
|
+
4. For performance symptoms, separate database access, ABAP logic, remote calls, locking, and payload/serialization cost using traces, SQL trace state, call graphs, and measured reproduction evidence when available.
|
|
16
|
+
5. Convert evidence into a falsifiable root-cause chain. Clearly label facts, assumptions, and unverified hypotheses.
|
|
17
|
+
6. If a fix is authorized, create a regression test where feasible, implement the smallest change, validate with lint/syntax/unit/ATC/LSP checks, activate only when authorized, and rerun the reproduction or strongest available runtime check.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: abap-testing-quality
|
|
3
|
+
description: Design ABAP Unit behavior tests and validate ABAP changes with lint, editor diagnostics, syntax checks, and ATC. Use for test creation, quality reviews, and change validation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ABAP testing and quality
|
|
7
|
+
|
|
8
|
+
## Tool selection
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once, then use only task-relevant, destination-prefixed tools with their returned schemas: `LintABAP` for caller-supplied source, `SyntaxCheck` for SAP syntax validation, `RunUnitTests` for ABAP Unit, and `RunATCCheck` for ATC. Unavailable tools are not passes.
|
|
11
|
+
|
|
12
|
+
- Treat ABAP Unit as behavior verification: assert externally observable results, boundaries, state transitions, and relevant error behavior. Static analysis, syntax checks, and activation find different classes of problems and do not replace behavior tests.
|
|
13
|
+
- For a behavior change, create or refine a real ABAP Unit assertion first, run it to observe the regression, then rerun after implementation. If an executable red/green cycle is unavailable, state the concrete constraint and the strongest check actually performed; never report a substitute as a passing test.
|
|
14
|
+
- Require runtime validation for changed contracts. Execute the changed class/interface/function/report/service/CDS path with representative data in BAS or SAP. Prefer non-destructive real data from the target system; use authorized isolated test/sample data only when real data is unsafe or unavailable. Verify expected results plus a negative, empty, or boundary scenario.
|
|
15
|
+
- When validating interfaces, integrations, or CDS views, prove the artifact can be consumed: instantiate/call the implementing class, invoke the API/RFC/OData/RAP action/query, or query the CDS entity with `RunQuery`/`GetTableContents` as appropriate. Inspect returned structures/messages/rows rather than only checking compilation.
|
|
16
|
+
- Run the live destination-prefixed `LintABAP` MCP tool on all relevant caller-supplied source files, using abapGit-style filenames and including required dependency sources. The tool analyzes only the files supplied to it; it does not read the workspace or resolve dependencies.
|
|
17
|
+
- Consume BAS editor LSP diagnostics when configured. `vsp lsp --stdio` is editor LSP functionality, not an MCP tool and not an entry in MCP `tools/list`.
|
|
18
|
+
- Use SAP `SyntaxCheck`, `RunUnitTests`, and `RunATCCheck` when exposed by the live tool listing and permitted for the task. Activate authorized SAP object changes in dependency order with `Activate` / `ActivateMultiple`. Address findings and rerun affected checks. Do not suppress findings silently or present unavailable/skipped checks as passes.
|
|
19
|
+
- Report ABAP Unit, runtime validation data source, activation, lint, LSP, syntax, and ATC outcomes separately, including exact reasons for checks not run.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cds-development
|
|
3
|
+
description: Implement, change, or analyze ABAP CDS data definitions and their dependencies or consumers. Use for DDLS and CDS modeling tasks.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CDS development
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Read DDLS with `GetSource`; use `GetCDSDependencies` for upstream dependencies, `GetCDSImpactAnalysis` for consumers, and `GetCDSElementInfo` for element metadata. Trace references with `FindReferences`; edit via `EditSource` / `WriteSource`. Validate with `SyntaxCheck`, `RunATCCheck`, activation, and read-only runtime queries via `RunQuery` or `GetTableContents` when exposed.
|
|
11
|
+
|
|
12
|
+
1. Inspect the target DDLS source, its existing data definitions, package conventions, dependencies, and consumers before editing.
|
|
13
|
+
2. Use live `GetCDSDependencies`, `GetCDSImpactAnalysis`, and `GetCDSElementInfo` tools when exposed to understand upstream sources, downstream impact, and element metadata. Use their current destination-prefixed names and schemas.
|
|
14
|
+
3. Implement only the requested CDS behavior. Validate the changed definition, affected dependencies, and relevant consumers with operations actually exposed by the system; report unavailable analysis or validation capabilities rather than inferring results.
|
|
15
|
+
4. CDS changes require executable validation, not only syntax. Do not treat syntax, ATC, or activation as substitutes for behavior evidence. After activation, query or otherwise consume the changed view/entity with representative filters and projections using `RunQuery` or `GetTableContents` when available. Prefer safe real rows from the target system; if no suitable data exists, use authorized isolated sample data or document the lack of executable data. Verify returned fields, computed expressions, casts, currencies/units, parameters, associations exposed to consumers, key semantics, annotations relevant to consumers, authorization-relevant behavior when testable, and empty-result behavior.
|
|
16
|
+
5. For CDS logic that is consumed by ABAP classes, RAP behavior, or services, add or update an automated test around the consumer or a focused ABAP Unit test that selects from the CDS artifact with controlled input. Use test doubles or isolated fixture data when available/authorized. If the MCP server only allows live read-only queries, record the exact validation query, input data source, row count, and observed result as the CDS runtime test evidence. Activate authorized CDS changes in dependency order and treat activation failure as a blocker.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: clean-core-extensibility
|
|
3
|
+
description: Design SAP extensions using Clean Core principles, released extension points, side-by-side patterns, and explicit risk classification for non-standard alternatives.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Clean Core extensibility
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Inspect system capabilities with `GetSystemInfo` and `GetFeatures`; inspect source and dependencies with `GetSource`, `GetContext`, `FindDefinition`, `FindReferences`, `GetObjectStructure`, `GetCDSDependencies`, and `GetCDSImpactAnalysis`. Check release status with `GetAPIReleaseState` where exposed. Use transport tools only for planning context and never claim transport release or deletion support; this addon filters `ReleaseTransport` and `DeleteTransport`.
|
|
11
|
+
|
|
12
|
+
1. Classify the requirement as configuration, in-app/key-user extensibility, developer extensibility, side-by-side extension, integration, analytics, UI extension, or unavoidable core change.
|
|
13
|
+
2. Prefer the cleanest pattern in this order: SAP standard configuration, released in-app extensibility, released developer extensibility, released APIs/events, side-by-side SAP BTP extension, then carefully isolated custom ABAP only if no compliant option exists.
|
|
14
|
+
3. Reject or explicitly flag high-risk approaches: modifications to SAP standard, unreleased APIs/objects, direct updates to application tables, implicit enhancements, copied standard logic, tight coupling to internal tables/classes, and changes that cannot be validated after upgrade.
|
|
15
|
+
4. Design side-by-side solutions with clear data ownership, API contracts, authentication/authorization, eventing or polling strategy, error handling, observability, resilience, and lifecycle/deployment boundaries.
|
|
16
|
+
5. Report a Clean Core compliance decision: compliant, conditionally compliant with mitigations, or non-compliant/risk accepted. Include exact evidence, required validations, and checks not run; do not treat lint, syntax, or activation as substitutes for behavior or upgrade-safety evidence.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rap-development
|
|
3
|
+
description: Develop SAP RAP business objects, behavior, projections, and OData services. Use when implementing or changing RAP models and service publication.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RAP development
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Check support with `GetSystemInfo` / `GetFeatures`; inspect sources and structure with `GetSource`, `GetObjectStructure`, `GetCDSDependencies`, `GetCDSImpactAnalysis`, and `GetCDSElementInfo`. Edit with `EditSource` / `WriteSource`; validate with `SyntaxCheck`, `RunUnitTests`, and `RunATCCheck` when exposed. Activate with `Activate` / `ActivateMultiple` only when requested. Use `PublishServiceBinding` only when publication was requested and authorized.
|
|
11
|
+
|
|
12
|
+
1. Inspect target-system release and capabilities with live `GetSystemInfo` and `GetFeatures` tools when available; inspect existing RAP objects and package conventions before design. Confirm RAP support and each required operation from the active MCP `tools/list`, not from static documentation.
|
|
13
|
+
2. Build the requested model through the required dependencies: CDS entities, behavior definitions and implementations, projections, service definitions, and service bindings. Follow existing object patterns and validate objects in dependency order with operations actually exposed by the system. Add or update ABAP Unit tests for behavior implementations, validations, determinations, actions, and authorization-relevant logic where applicable.
|
|
14
|
+
3. Self-validate RAP behavior end-to-end. Exercise read/query paths and any changed create/update/delete/action behavior using representative data. Prefer safe read-only real data for query validation; create isolated sample data only when the task authorizes mutation and clean it up when possible. Verify response payloads, messages, failed validations, and at least one negative/empty scenario.
|
|
15
|
+
4. Activate authorized RAP object changes in dependency order. Publish a service only when the user requested and authorized publication. Validate the service end-to-end using the live tools available for that system; report actual activation, publication, and runtime state.
|
|
16
|
+
5. If RAP support or a required object operation is unavailable, stop that path and report the exact capability gap. Do not claim completion based on source text or inferred support.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rap-service-delivery
|
|
3
|
+
description: Validate and deliver SAP RAP OData services, behavior implementations, service bindings, activation, publication, and runtime checks. Use with RAP service exposure or end-to-end RAP validation tasks.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# RAP service delivery
|
|
7
|
+
|
|
8
|
+
## MCP tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once and use exact destination-prefixed names and schemas. Prefer these tools when available: `GetSystemInfo`, `GetFeatures`, `GetConnectionInfo`, `SearchObject`, `GrepObjects`, `GrepPackages`, `GetSource`, `GetObjectStructure`, `GetCDSDependencies`, `GetCDSImpactAnalysis`, `GetCDSElementInfo`, `EditSource`, `WriteSource`, `UpdateSource`, `UpdateClassInclude`, `CreateClassWithTests`, `CreateTestInclude`, `LintABAP`, `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, `GetCodeCoverage`, `RunQuery`, `GetTableContents`, `ExecuteABAP`, `ListDumps`, `GetDump`, `GetApplicationLog`, `GetTrace`, `Activate`, `ActivateMultiple`, and `PublishServiceBinding`. Use `UnpublishServiceBinding` only when explicitly requested.
|
|
11
|
+
|
|
12
|
+
1. Confirm target destination, package, transport/temporary target, RAP object names, and whether activation/publication/data mutation is authorized. Transport release and deletion remain out of scope for this skill; prepare and report transport context only.
|
|
13
|
+
2. Inspect the full RAP object chain before changing anything: interface/root CDS, child/composition CDS, behavior definition, behavior pool/local handlers, projection CDS, projection behavior, service definition, service binding, tests, and package conventions.
|
|
14
|
+
3. Validate behavior implementations with tests first where feasible. Cover validations, determinations, actions, feature control, numbering, authorization-relevant branches, reported/failed messages, and negative or empty paths.
|
|
15
|
+
4. Validate runtime service behavior end-to-end. Use read-only `RunQuery`/`GetTableContents` for query paths. For mutating behavior, proceed only when authorized, use isolated data, verify persisted state/messages, and clean up when possible.
|
|
16
|
+
5. Activate in dependency order only when authorized: lower CDS/model dependencies first, then behavior artifacts, projections, service definition, and service binding. Publish only when explicitly requested.
|
|
17
|
+
6. If runtime validation fails, inspect dumps/logs/traces with `ListDumps`, `GetDump`, `GetApplicationLog`, and `GetTrace` before guessing. Report exact evidence, not inferred success.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sap-sdlc-orchestration
|
|
3
|
+
description: Orchestrate the SAP delivery lifecycle from requirement analysis through design, delegated implementation, validation, transport preparation, release readiness, and operational handover.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SAP SDLC orchestration
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Investigate system and repository context with `GetSystemInfo`, `GetFeatures`, `GetConnectionInfo`, `SearchObject`, `GrepObjects`, `GrepPackages`, `GetSource`, `GetContext`, `FindDefinition`, `FindReferences`, and dependency tools. Validate with `LintABAP`, `SyntaxCheck`, `RunUnitTests`, `RunATCCheck`, runtime queries, dumps/logs/traces, and service validation tools when exposed. Use transport tools for readiness planning only; never claim transport release or deletion support because this addon filters `ReleaseTransport` and `DeleteTransport`.
|
|
11
|
+
|
|
12
|
+
1. Convert the requirement into an SDLC plan: discovery, fit-gap/API recommendation, architecture, implementation packages, test strategy, validation gates, activation/publication gates, transport readiness, deployment notes, rollback, and operations handover.
|
|
13
|
+
2. Automate what the active MCP tools safely allow. Read and analyze the system, propose standard APIs and extension points, generate implementation briefs, request or delegate coding work, run checks, collect evidence, and iterate until acceptance criteria are met or a blocker is proven.
|
|
14
|
+
3. Keep state-changing gates explicit. Do not edit source, activate, publish, create transports, create test data, or execute mutating scenarios unless the user authorized that phase and the target destination/package/transport context is known.
|
|
15
|
+
4. Enforce quality gates: unit or executable behavior tests, syntax, lint, ATC where available, runtime validation, security/authorization review, Clean Core/released API check, transport dependency check, and documented skipped checks with reasons.
|
|
16
|
+
5. Finish with an SDLC status report: requirement decision, selected APIs/extension pattern, implementation packages and owners/agents, validation evidence, deployment/transport readiness, risks, open items, and the next safe action.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sap-standard-api-analysis
|
|
3
|
+
description: Assess requirements against SAP standard capabilities, released APIs, standard CDS/RAP/OData interfaces, and existing implementation options before custom development.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SAP standard and API analysis
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Inspect target capabilities with `GetSystemInfo`, `GetFeatures`, and `GetConnectionInfo`. Search candidates with `SearchObject`, `GrepObjects`, `GrepPackages`, `FindDefinition`, `FindReferences`, `GetObjectStructure`, `GetCDSDependencies`, `GetCDSImpactAnalysis`, and `GetCDSElementInfo`. Verify released API status with `GetAPIReleaseState` when exposed. Use `RunQuery` or `GetTableContents` only for safe read-only evidence. Never claim transport release or deletion support; this addon filters `ReleaseTransport` and `DeleteTransport`.
|
|
11
|
+
|
|
12
|
+
1. Translate the requirement into business capabilities, integration contracts, data entities, and observable acceptance criteria before choosing implementation objects.
|
|
13
|
+
2. Prefer SAP standard configuration, standard processes, communication scenarios, released OData/RFC/BAPI APIs, released CDS views/entities, RAP BOs, business events, BADIs, and documented extension points. Record all inspected candidates and whether each is standard, released, deprecated, unavailable, or unverified.
|
|
14
|
+
3. Use `GetAPIReleaseState` for every candidate dependency when available. If release state cannot be checked with live tools, label it as unverified and do not treat it as Clean Core evidence.
|
|
15
|
+
4. Compare options by fit, implementation effort, upgrade risk, data consistency, authorization model, operational impact, testability, and fallback/rollback path.
|
|
16
|
+
5. Finish with a recommendation, alternatives rejected, exact MCP evidence gathered, open questions, and any checks not run. Do not present source text, static checks, or assumptions as runtime validation evidence.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sap-transport-release
|
|
3
|
+
description: Prepare ABAP changes for SAP transport and verify request contents, dependencies, tests, and activation. Use for transport preparation or release-related requests.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# SAP transport preparation
|
|
7
|
+
|
|
8
|
+
## Tool shortlist
|
|
9
|
+
|
|
10
|
+
Query the active MCP server's live `tools/list` once; use task-relevant, destination-prefixed tools with their returned schemas. Identify candidates with `GetUserTransports` or `ListTransports`; inspect a request with `GetTransport` / `GetTransportInfo`; use `ListDependencies`, `RunUnitTests`, and `RunATCCheck` as needed. Activate with `Activate` / `ActivateMultiple` only when requested. `CreateTransport` is state-changing and requires explicit authorization. Release and deletion are not available through this addon.
|
|
11
|
+
|
|
12
|
+
1. Use the live transport tools to verify the destination, package, complete object set, dependencies, and an eligible modifiable request before preparing changes. Use current tool names and schemas; do not assume a request is valid from its identifier alone.
|
|
13
|
+
2. Create a transport only when the user specifically authorized its creation. Before transport handoff, ensure changed objects have been activated in dependency order when activation is authorized, ABAP Unit tests have been run or blockers documented, runtime validation evidence exists for changed public contracts, and ATC/syntax checks have been run where available. Do not treat request contents, syntax, ATC, or activation as substitutes for behavior and runtime validation evidence. Report actual request contents and validation state.
|
|
14
|
+
3. This addon filters `ReleaseTransport` and `DeleteTransport`. Do not invent or claim release/deletion support. When release is requested, report that release is unavailable through this addon and hand off the release action to an authorized SAP transport workflow.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Gurkan Yilmaz (SAP AI Development Toolkit)
|
|
4
|
+
Copyright (c) 2025-2026 Alice Vinogradova and contributors (Vibing Steampunk)
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Apache License
|
|
2
|
+
Version 2.0, January 2004
|
|
3
|
+
http://www.apache.org/licenses/
|
|
4
|
+
|
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
6
|
+
|
|
7
|
+
1. Definitions.
|
|
8
|
+
|
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
11
|
+
|
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
13
|
+
the copyright owner that is granting the License.
|
|
14
|
+
|
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
16
|
+
other entities that control, are controlled by, or are under common
|
|
17
|
+
control with that entity. For the purposes of this definition,
|
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
19
|
+
direction or management of such entity, whether by contract or
|
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
22
|
+
|
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
24
|
+
exercising permissions granted by this License.
|
|
25
|
+
|
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
27
|
+
including but not limited to software source code, documentation
|
|
28
|
+
source, and configuration files.
|
|
29
|
+
|
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
|
31
|
+
transformation or translation of a Source form, including but
|
|
32
|
+
not limited to compiled object code, generated documentation,
|
|
33
|
+
and conversions to other media types.
|
|
34
|
+
|
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or Object
|
|
36
|
+
form, made available under the License, as indicated by a copyright
|
|
37
|
+
notice that is included in or attached to the work (an example is
|
|
38
|
+
provided in the Appendix below).
|
|
39
|
+
|
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
41
|
+
form, that is based on (or derived from) the Work and for which
|
|
42
|
+
the editorial revisions, annotations, elaborations, or other
|
|
43
|
+
modifications represent, as a whole, an original work of authorship.
|
|
44
|
+
For the purposes of this License, Derivative Works shall not include
|
|
45
|
+
works that remain separable from, or merely link (or bind by name) to
|
|
46
|
+
the interfaces of, the Work and Derivative Works thereof.
|
|
47
|
+
|
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
|
49
|
+
the original version of the Work and any modifications or additions
|
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
61
|
+
|
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
64
|
+
subsequently incorporated within the Work.
|
|
65
|
+
|
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
|
72
|
+
|
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
78
|
+
where such license applies only to those patent claims licensable
|
|
79
|
+
by such Contributor that are necessarily infringed by their
|
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
82
|
+
institute patent litigation against any entity (including a
|
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
85
|
+
or contributory patent infringement, then any patent licenses
|
|
86
|
+
granted to You under this License for that Work shall terminate
|
|
87
|
+
as of the date such litigation is filed.
|
|
88
|
+
|
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
91
|
+
modifications, and in Source or Object form, provided that You
|
|
92
|
+
meet the following conditions:
|
|
93
|
+
|
|
94
|
+
(a) You must give any other recipients of the Work or
|
|
95
|
+
Derivative Works a copy of this License; and
|
|
96
|
+
|
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
|
98
|
+
stating that You changed the files; and
|
|
99
|
+
|
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
|
102
|
+
attribution notices from the Source form of the Work,
|
|
103
|
+
excluding those notices that do not pertain to any part of
|
|
104
|
+
the Derivative Works; and
|
|
105
|
+
|
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
|
108
|
+
include a readable copy of the attribution notices contained
|
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
|
111
|
+
of the following places: within a NOTICE text file distributed
|
|
112
|
+
as part of the Derivative Works; within the Source form or
|
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
|
114
|
+
within a display generated by the Derivative Works, if and
|
|
115
|
+
wherever such third-party notices normally appear. The contents
|
|
116
|
+
of the NOTICE file are for informational purposes only and
|
|
117
|
+
do not modify the License. You may add Your own attribution
|
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
120
|
+
that such additional attribution notices cannot be construed
|
|
121
|
+
as modifying the License.
|
|
122
|
+
|
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
|
124
|
+
may provide additional or different license terms and conditions
|
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
128
|
+
the conditions stated in this License.
|
|
129
|
+
|
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
133
|
+
this License, without any additional terms or conditions.
|
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
135
|
+
the terms of any separate license agreement you may have executed
|
|
136
|
+
with Licensor regarding such Contributions.
|
|
137
|
+
|
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
140
|
+
except as required for reasonable and customary use in describing the
|
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
142
|
+
|
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
|
152
|
+
|
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
|
158
|
+
incidental, or consequential damages of any character arising as
|
|
159
|
+
a result of this License or out of the use or inability to use the
|
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
162
|
+
other commercial damages or losses), even if such Contributor
|
|
163
|
+
has been advised of the possibility of such damages.
|
|
164
|
+
|
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
168
|
+
or other liability obligations and/or rights consistent with this
|
|
169
|
+
License. However, in accepting such obligations, You may act only
|
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
174
|
+
of your accepting any such warranty or additional liability.
|
|
175
|
+
|
|
176
|
+
END OF TERMS AND CONDITIONS
|
|
177
|
+
|
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
179
|
+
|
|
180
|
+
To apply the Apache License to your work, attach the following
|
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
182
|
+
replaced with your own identifying information. (Don't include
|
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
184
|
+
comment syntax for the file format. We also recommend that a
|
|
185
|
+
file or class name and description of purpose be included on the
|
|
186
|
+
same "printed page" as the copyright notice for easier
|
|
187
|
+
identification within third-party archives.
|
|
188
|
+
|
|
189
|
+
Copyright [yyyy] [name of copyright owner]
|
|
190
|
+
|
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
|
+
you may not use this file except in compliance with the License.
|
|
193
|
+
You may obtain a copy of the License at
|
|
194
|
+
|
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
196
|
+
|
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
200
|
+
See the License for the specific language governing permissions and
|
|
201
|
+
limitations under the License.
|