bootstrap-system-context
Ground the assistant in the target SAP system before any coding work by producing a local system-info.md that captures SID, release, components, detected features, RAP constraints, and ARC-1 lint preset. Use when asked to "set up system context", "bootstrap the SAP system", "create system-info.md", or when starting a session against an unfamiliar SAP system.
How do I install this agent skill?
npx skills add https://github.com/arc-mcp/arc-1 --skill bootstrap-system-contextIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill gathers SAP system metadata and writes it to a local file. It is vulnerable to indirect prompt injection if data returned from the SAP system APIs contains malicious instructions, as it lacks sanitization or boundary markers when writing the output.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Bootstrap System Context
Ground the assistant in the target SAP system before any coding work. Produces a local system-info.md file that captures SID, release, installed components, detected features, RAP-relevant constraints, and ARC-1's active lint preset — so later prompts stop guessing at constraints.
Run this once per session when working against an unfamiliar system, or again after a system upgrade.
Smart Defaults (apply silently, do NOT ask)
| Setting | Default | Rationale |
|---|---|---|
| Output path | ./system-info.md | Sidecar to the project root |
| Overwrite | Yes, if file exists | Fresh probe results are authoritative |
| Probe features | Yes | Feature flags (RAP, UI5, transports) drive downstream decisions |
| Include lint preset | Yes | Cloud vs on-prem lint rules matter for generated code |
| Include RAP constraints snapshot | Yes | Helps RAP skills avoid known 7.5x pitfalls immediately |
Input
No input required. Optionally:
- Output path (default:
./system-info.md) - Skip feature probe — if the user only wants identity info and the system is slow
Step 1: Read System Identity
SAPRead(type="SYSTEM")
Returns: SID, system type (onprem | btp), release, kernel version, current user, client, language.
Step 2: Read Installed Components
SAPRead(type="COMPONENTS")
Returns an array of { name, release, description }. Capture at minimum: SAP_BASIS, SAP_UI, SAP_ABA, SAP_GWFND. These set the safe ABAP syntax ceiling and available APIs.
Step 3: Probe Feature Availability
SAPManage(action="probe")
Returns feature flags for: hana, abapGit, rap, amdp, ui5, ui5repo, transport, flp. Each has available (bool), mode, and a message. These drive decisions like "can I generate a RAP stack?" or "is FLP catalog management wired in?"
If the user requested to skip this step, mark features as "not probed" in the output.
Step 3b: Derive RAP Constraints Snapshot
Derive a compact RAP constraints block from release + probe + lint context. This is heuristic guidance for skill prompts, not a hard API contract.
Include at minimum:
- Is RAP creation likely viable (
rap.available, plus whether DDLS/BDEF reads work) - On-prem 7.5x guardrails (TABL typing pitfalls, projection BDEF header limits, DDLX annotation scope caveats)
- Whether pre-write lint likely covers DDLS only vs broader RAP artifacts
- Whether ARC-1 RAP preflight/scaffolding helpers should be the default path (
preflightBeforeWrite,scaffold_rap_handlers) - Whether draft should default to deferred/two-pass for safety
Step 4: Read Lint Preset
SAPLint(action="list_rules")
Returns { preset, abapVersion, enabledRules, disabledRules, ... }. The preset (cloud or onprem) reflects the system type detection; abapVersion is the target ABAP dialect (e.g., v754, cloud, standard). Generated code should stay within this dialect.
Step 5: Write system-info.md
Create the file at the chosen path. Use exactly this layout:
# System Info: <SID>
_Generated: <ISO timestamp>_ · _Source: ARC-1_
## Identity
| Field | Value |
|---|---|
| SID | <SID> |
| System type | <onprem / btp> |
| Release | <release> |
| Kernel | <kernel> |
| Client | <client> |
| Language | <lang> |
| User | <username> |
## Core Components
| Component | Release | Description |
|---|---|---|
| SAP_BASIS | <release> | <description> |
| SAP_UI | <release> | <description> |
| SAP_ABA | <release> | <description> |
| SAP_GWFND | <release> | <description> |
<additional rows for any other captured components>
## Feature Availability
| Feature | Available | Mode | Note |
|---|---|---|---|
| RAP / CDS | <yes/no> | <auto/on/off> | <message> |
| abapGit | <yes/no> | <auto/on/off> | <message> |
| HANA | <yes/no> | <auto/on/off> | <message> |
| AMDP | <yes/no> | <auto/on/off> | <message> |
| UI5 | <yes/no> | <auto/on/off> | <message> |
| UI5 Repository | <yes/no> | <auto/on/off> | <message> |
| Transports | <yes/no> | <auto/on/off> | <message> |
| FLP | <yes/no> | <auto/on/off> | <message> |
## Lint Configuration
- **Preset**: <cloud / onprem>
- **ABAP dialect**: <abapVersion>
- **Enabled rules**: <count>
- **Disabled rules**: <count>
## RAP Constraints Snapshot
- **RAP endpoint status**: <available / unavailable / not probed>
- **Recommended build mode**: <single-pass / two-pass>
- **TABL admin type guidance**: <syuname+timestampl on on-prem, abp_* on BTP>
- **Known projection BDEF caveat**: <e.g., use `projection;` header only on 7.5x>
- **Known DDLX scope caveat**: <e.g., headerInfo/search/objectmodel placement limits>
- **Lint coverage hint**: <ABAP+DDLS only / broader>
- **RAP helper path**: <`scaffold_rap_handlers` available / use quick-fix fallback>
## Coding Guidance
- Target ABAP dialect: **<abapVersion>** — do not use syntax beyond this level without verifying per object.
- System type is **<onprem / btp>**:
- If `btp`: prefer released APIs (check with `SAPRead(type="API_STATE", ...)`); avoid non-cloud object types (PROG, INCL, FUGR).
- If `onprem`: full type range available; still prefer released APIs for forward compatibility.
- Transports <enabled / disabled>: <if disabled, note that writes stay on `$TMP`>.
- RAP stack <available / not available>: <if not available, skip RAP generation skills>.
Step 6: Summarize To The User
After writing the file, report in 3-5 lines:
- Which system was probed (SID, type, release)
- The ABAP dialect ceiling
- Which headline features are available (RAP, UI5, transports)
- Key RAP constraints (for example: two-pass recommendation or strict/draft cautions)
- File path written
Do not dump the full file contents into chat — the user can open the file.
Error Handling
| Error | Cause | Fix |
|---|---|---|
SAPRead(type="SYSTEM") fails with auth error | User lacks S_ADT_RES for discovery | Continue without identity block; note in output that SID is unknown |
SAPRead(type="COMPONENTS") empty or 404 | Endpoint unavailable on this system | Note "components endpoint unavailable"; continue with probe + lint |
SAPManage(action="probe") blocked (read-only mode with no write scope) | Safety config | Fall back to SAPManage(action="features") for cached results |
SAPLint(action="list_rules") returns no preset | ARC-1 lint config not yet loaded | Report "lint preset: not configured"; still write the file |
Notes
When To Re-Run
- Starting work against a new or unfamiliar system
- After a support package upgrade (SAP_BASIS release changes)
- When features added (e.g., abapGit installed, RAP runtime enabled)
- When migrating from on-prem to BTP (or vice versa)
What This Skill Does NOT Do
- No source code is read — identity/components/features only
- No package enumeration — use
setup-abap-mirrororSAPRead(type="DEVC")for that - No SAP system-level configuration changes — every call is read-only
Pairing With Other Skills
- Run before
generate-rap-service-researched— the researcher uses system-info.md to pick the right RAP pattern - Run before
setup-abap-mirror— the mirror skill references system-info.md in its header - Run before
migrate-custom-code— migration checks depend on knowing the target release
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/arc-mcp/arc-1/bootstrap-system-context">View bootstrap-system-context on skillZs</a>