Skip to content
Development
Skill

/sap-transport-readiness

Release gate for an ABAP transport request — answers "is this transport safe to release?" before it moves to QA / production. Resolves the TR (explicit number, or --current from the dev defaults), builds its object inventory from E071, and runs read-only RFC structural checks:

From plugin
sap-dev
8123 skills3 agents
Install
$ npx -y skills add sapdev-ai/sap-dev --skill sap-transport-readiness --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/sap-transport-readiness

Context preview

The summary Claude sees to decide when to auto-load this skill.

Release gate for an ABAP transport request — answers "is this transport safe to release?" before it moves to QA / production. Resolves the TR (explicit number, or --current from the dev defaults), builds its object inventory from E071, and runs read-only RFC structural checks:

SKILL.md

sap-transport-readiness.SKILL.md
name: sap-transport-readiness
description: |
  Release gate for an ABAP transport request — answers "is this transport safe to
  release?" before it moves to QA / production. Resolves the TR (explicit number,
  or --current from the dev defaults), builds its object inventory from E071, and
  runs read-only RFC structural checks: unreleased child tasks, inactive objects,
  local / $TMP objects inside a transportable request, and a multi-package note.
  Optionally chains /sap-atc and /sap-run-abap-unit and folds their verdicts in.
  Gates every finding via the customer brief's Quality bar (--strict promotes
  warnings) and rolls up to GO / GO_WITH_WARNINGS / NO-GO. Writes a reviewer report
  + findings TSV/JSON + object inventory, registered for /sap-evidence-pack.
  Read-only; never releases the TR — release stays a deliberate /sap-se01 step.
  Prerequisites: SAP profile via /sap-login (RFC); SAP NCo 3.1 (32-bit) in GAC
  (Z_GENERIC_RFC_WRAPPER_TBL not required — all checks use RFC_READ_TABLE).
argument-hint: "<TR> | --current  [--strict] [--run-atc] [--include-unit-tests] [--brief <path>]"

SAP Transport Readiness Skill

You run a **release gate** over a transport request and report GO / NO-GO with the evidence. You are read-only — you NEVER release the TR. Release is a deliberate, separate `/sap-se01 release` step the user takes after a GO.

Task: $ARGUMENTS

This skill is the first of the **delivery-assurance** family and is built on the Phase-0 primitives: the object resolver (TR → E071 inventory), the finding model

  • gate policy, and the artifact index.

---

Shared Resources

| File | Token / call | Purpose | |---|---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | *(rule)* | Mandatory operating rules — read-only here, no writes to SAP | | `<SKILL_DIR>/references/sap_transport_readiness.ps1` | `-Tr -SharedDir [-Strict] [-AtcVerdict] [-UnitVerdict] [-BriefPath]` | The RFC readiness engine | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_object_resolver.ps1` | dot-sourced by the engine | TR `--Expand` → E071 object inventory | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_finding_lib.ps1` | dot-sourced by the engine | Reconciled finding model + verdict roll-up | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_gate_policy.ps1` | dot-sourced by the engine | Gate computation from `customer_brief.md` §6 | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | dot-sourced by the engine | Registers outputs for `/sap-evidence-pack` | | `/sap-atc` | sub-skill | Optional ATC run (`--run-atc`) | | `/sap-run-abap-unit` | sub-skill | Optional ABAP Unit run (`--include-unit-tests`) |

---

Step 0 — Resolve Work Directory and Settings

Resolve `work_dir` via the env-aware helper (do NOT read `settings.json` directly — that ignores `SAPDEV_AI_WORK_DIR` and `userconfig.json`):

powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_settings_lib.ps1'; . '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('WORK_DIR=' + (Get-SapWorkDir))"

Set `{WORK_TEMP}` = `{work_dir}\temp`; ensure it exists:

cmd /c if not exist "{WORK_TEMP}" mkdir "{WORK_TEMP}"

Set `{RUN_TEMP}` = the per-run scratch dir (`Get-SapRunTemp` mints + creates `{work_dir}\temp\run_<id>`):

powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"

Per the CLAUDE.md "Two-bucket temp model" write this skill's `_run.json` log state under `{RUN_TEMP}`.

---

Step 0.5 — Start Logging

powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_transport_readiness_run.json" -Skill sap-transport-readiness -ParamsJson "{}"

---

Step 1 — Resolve the Transport Request

Parse `$ARGUMENTS` for the TR and flags:

  • **Explicit TR** (e.g. `DEVK900123`, `S4DK900123`) → use it.
  • **`--current`** → read `sap_dev_transport_request` (per-connection first:

`connections.json[pinned].dev_defaults`, then the two-file settings merge per `shared/rules/settings_lookup.md`). If blank → tell the user to pass an explicit TR or run `/sap-transport-request`, and STOP.

  • Flags: `--strict` (promote warnings to blockers), `--run-atc`,

`--include-unit-tests`, `--brief <path>` (override the customer brief).

Prerequisite check: a SAP RFC profile must be pinned (`/sap-login`). The engine self-connects via the pinned profile (no creds needed on the command line).

---

Step 2 — (Optional) Run ATC and ABAP Unit first

These are opt-in because they are slower / heavier than the RFC structural checks. Run them BEFORE the engine so their verdicts can be folded into one unified readiness verdict.

  • **`--run-atc`**: run `/sap-atc PACKAGE <pkg>` (or per object) over the TR's

scope. Capture its pass/fail as a single verdict string: `GO` (within the brief's `MAX_PRIORITY`) or `NO_GO`. If ATC could not run, use `ERROR`.

  • **`--include-unit-tests`**: run `/sap-run-abap-unit` over the TR's

programs / classes. Capture `GO` / `NO_GO` / `ERROR`.

If a flag is not given, pass nothing for that verdict — the engine records it as "not run" (no finding), and you note it in the report under *not run*.

> Do NOT invent these verdicts. Only pass `GO`/`NO_GO` when the sub-skill > actually produced a result; pass `ERROR` if it failed; pass nothing if you > did not run it.

---

Step 3 — Run the Readiness Engine

Run via **32-bit PowerShell** (NCo 3.1 is in `GAC_32`). Pass the resolved TR, the shared dir, and any flags / sub-skill verdicts:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_transport_readiness.ps1" -Tr "THE_TR" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>"

Append, as applicable: `-Strict`, `-AtcVerdict GO|NO_GO|ERROR`, `-UnitVerdict GO|NO_GO|ERROR`, `-BriefPath "<path>"`. Cr

Read more
Ships withsap-dev

SAP development automation skills for AI coding assistants. Windows-only — the skills drive SAP GUI for Windows via GUI Scripting (plus optional RFC via SAP NCo); there is no macOS/Linux path.

Get the whole plugin

Other skills on sap-dev.