transport-release-gate — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited transport-release-gate (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A pre-release quality gate for SAP transport requests, built from sap-adt-mcp tools. The philosophy: the gate decides "ready or not"; the human decides "release". Never call adt_release_transport unless the user explicitly asks for the release after seeing the report.
adt_ping to verify).syntax check, ATC worklist) works on most 7.4x+ systems, but ATC worklist endpoints vary across releases — if adt_run_atc_transport fails, fall back to per-object adt_run_atc.
the system default variant when none is passed; if the system has none, ask the user for a variant name (often DEFAULT or a Z variant).
display), transport read (S_TRANSPRT), ATC execution. Release additionally needs transport release authorization — only relevant if the user requests it.
check (/checkruns), and ATC (/atc/) are whitelisted read-only POSTs. Unit tests (`adt_run_unit_tests`) require write mode — in read-only mode, skip them and note that in the report. adt_release_transport obviously requires write mode too.
Run the steps in order; collect findings as you go instead of stopping at the first problem — the report should show everything wrong at once.
adt_get_transport with the TR id. Verify it exists and is modifiable (already-released TRs can't be gated — say so and stop). Extract the object list. If the TR is empty, report "nothing to check" and stop.
adt_list_inactive_objects — any object of this TR still inactive is aninstant NO-GO (released TRs with inactive objects import broken).
adt_list_locks — objects locked by other users/TRs indicate parallelwork in flight; flag as a warning with the blocking TR if visible.
adt_transport_diff against the target system (if a secondsystem is configured) to preview what would change on import.
For each ABAP source object in the TR (programs, classes, function groups, includes): adt_syntax_check. For includes pass context (the main program) — without it the check returns notProcessed. Any syntax error is a NO-GO; warnings are findings.
adt_run_atc_transport with the TR id — one call covers every object. Use the priority histogram: priority 1 findings are NO-GO, priority 2 are NO-GO unless the user's organization tolerates them (ask once if unclear), priority 3 are listed as advisories. If the abap-clean-core skill is available, classify findings against the clean-core levels for richer framing.
For classes in the TR that have test classes: adt_run_unit_tests. Any failed assertion is a NO-GO. In read-only mode, skip and record "unit tests not run (read-only mode)" in the report — never silently omit.
Produce a compact verdict block first, then details:
TRANSPORT GATE — E4DK900123 (system DEV)
Verdict: NO-GO (2 blockers, 3 warnings)
Blockers
1. ZCL_INVOICE_POSTING — inactive object
2. ZSD_PRICING_UPD — ATC priority 1: SELECT in loop (CI_DYNPRO check)
Warnings
…
Checked: 14 objects | syntax 14/14 ok | ATC: 1×P1 2×P2 5×P3 | tests: 12 passedEnd with next actions: what to fix for each blocker, and — only if the verdict is GO — offer the release: "Say 'release it' and I'll run adt_release_transport." On an explicit release request, run it, then verify with adt_get_transport that the status flipped to released.
syntax-check-only mode and mark the report "ATC unavailable on this system".
unknown, not passed. Show it in the report as such.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.