agentleFS
shrek-abapershrek-abaper/sap-engineering-skill/skills/sap-transport-gate/SKILL.md

sap-transport-gate

Skill46 starsChanged 15 days agoMITView on GitHub

Use for SAP Transport Request pre-release gate review (QAS/PRD). Triggers on any TR number in input (pattern: uppercase letters + K + 6 digits, e.g., DEVK900123, ECDK943668). Asks user: code-quality-only or functional+code review. Performs 10-dimension risk review of ABAP/CDS/DDIC source, object list, dependencies, spec, and release evidence; detects evidence gaps; generates Release Readiness Report with GO / CONDITIONAL_GO / NO_GO / NEED_MORE_EVIDENCE. Also triggers for: "can this TR go to production", "release gate check", "audit TR before import", "transport risk assessment", "generate release readiness report". Do NOT use for: executing transports, SAP login, single ABAP file without TR context (use abap-code-review), or no transport artifacts.

  • Reads credentials
  • Installs packages

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. williamcorrea23/sap-router-skill★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository4 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 11 are distinctive, and 5 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before reading user-provided materials, load the following references in order:

    line 66
  2. Very specific:

    When a TR ID is identified and no pre-assembled package exists, the SKILL must proactively attempt collection rather than waiting for the …

    line 116
  3. Distinctive:

    Wait for user response before continuing.

    line 147
  4. Distinctive:

    When falling back to Offline Local Mode at any point, reclassify mode, declare the fallback reason in the report, and continue.

    line 151
  5. Distinctive:

    If mode cannot be determined from the input, ask the user one clarifying question before proceeding.

    line 155
  6. Distinctive:

    Check whether a functional specification or requirements document is present in the provided materials.

    line 182
  7. Distinctive:

    If the user confirms no spec exists but still wants a Functional + Code Quality review:

    line 194
  8. Distinctive:

    When severity is uncertain, choose the higher level.

    line 293
  9. Very specific:

    If CRITICAL risk and evidence gap coexist → NO_GO.

    line 322
  10. Distinctive:

    Every high-risk finding must have a recommendation

    line 351
  11. Distinctive:

    Every evidence gap must explain its impact on the decision

    line 352
  12. Very specific:

    All inferred conclusions must be labeled [Inferred] or [Needs confirmation]

    line 353
  13. Distinctive:

    Never write "looks fine" or "seems OK" without citing evidence

    line 354
  14. Very specific:

    When NO_GO: prefix NOGO_TR_REVIEW_{TR_ID}_{YYYYMMDD}.md When NEED_MORE_EVIDENCE: prefix NME_TR_REVIEW_{TR_ID}_{YYYYMMDD}.md Full naming …

    line 358
  15. Very specific:

    Always save reports to reports/{TR_ID}_package/ regardless of review mode.

    line 364
  16. Distinctive:

    Create the target directory automatically.

    line 372

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

SAP Transport Gate Skill

AI-assisted pre-release review for SAP Transport Requests. Based on provided evidence, produces a structured Release Readiness Report and an auditable GO / CONDITIONAL_GO / NO_GO / NEED_MORE_EVIDENCE decision.

Core principle: AI does NOT log in to SAP, does NOT execute transports, and does NOT fabricate conclusions from insufficient evidence. Every finding must trace to real evidence. Every gap must be declared.


Hard Constraints (enforce at all times)

ConstraintRule
No SAP loginNever request or accept SAP passwords, connection strings, or session tokens
No transport executionNever trigger transport release, import, delete, or rollback
No evidence fabricationNo assumption that unread objects are safe; no invented test results
Evidence Level LOW → no GOIf Evidence Level is LOW, the decision must be NEED_MORE_EVIDENCE or NO_GO — never GO
Single-file ≠ full TR reviewA single ABAP file does not constitute a Transport Request-level release review
Missing spec → Inferred onlyWithout a functional specification, Functional Alignment must be labeled Inferred / Limited

Violations of these constraints invalidate the review output. Check them before generating any decision.


Step 0 — Load References

Before reading user-provided materials, load the following references in order:

  1. references/review-modes.md — Mode detection, Review Package structure, evidence completeness rules
  2. references/decision-policy.md — Evidence Level rules, Finding taxonomy, Release Decision Policy
  3. references/review-dimensions.md — 10 review dimensions with detailed checks
  4. references/report-format.md — Markdown report template and JSON schema
  5. references/abap-security-rules.md — Full SEC-_ and AUTH-_ security rule library (load for Dimension 3 and 4)
  6. references/abap-quality-rules.md — Full Clean ABAP quality rule library (load for Dimension 1 and 2)

Load references/sap-connectivity.md when:

  • Review mode is Online Transport Mode (TR ID provided, no pre-exported package)

Load references/human-loop.md when:

  • Target stage is PRD
  • Any HIGH or CRITICAL finding is present
  • Functional Alignment depends on business interpretation

Load references/regression-tests.md only if asked to run regression checks or build eval cases.


Step 0.5 — Extract Transport Request ID

Scan the user's input for a Transport Request ID before proceeding. TR IDs follow the pattern: 3–4 uppercase letters + K + 6 digits (e.g., DEVK900123, ECDK943668, NPLK000045).

CaseAction
TR ID found in inputRecord it as {TR_ID}. Use it in the report filename, header, and all references throughout this review.
User provides a Review Package directoryExtract TR ID from manifest.json → meta.tr_id field.
No TR ID found but review was requestedAsk: "Please provide the Transport Request ID (e.g., DEVK900123) to begin the review." Do not proceed until a TR ID is supplied.
User confirms no TR ID existsDeclare scope as Partial / No TR Identity. Evidence Level is capped at LOW. Proceed only to produce a NEED_MORE_EVIDENCE report.

The TR ID is required for the report filename, the Executive Decision header, the Appendix object list, and audit traceability.


Step 1 — Identify Review Mode

Determine the review mode from the input. Full rules in references/review-modes.md §1.

SignalMode
User provides a standard Review Package (manifest + object list + sources + evidence)Offline Package Mode
User provides only source files or partial materials (no manifest, no full TR context)Offline Local Mode
User provides a Transport Request ID and CLI output or live system access via internal toolsOnline Transport Mode

Online Transport Mode — Proactive Collection Protocol:

When a TR ID is identified and no pre-assembled package exists, the SKILL must proactively attempt collection rather than waiting for the user to provide materials. Online collection is read-only and performed by the sap-adt CLI (transport collect). Offline modes never need the CLI.

Execute the following in order:

  1. Check the execution environment — you need a shell that can run binaries on the user's machine. No shell → hand the user the manual command (step 4) and wait. No install permission or no network → reclassify to Offline Local Mode with an explicit declaration.
  2. Check CLI readiness — run sap-adt --version.
    • Missing: diagnose first (stale PATH vs sandbox vs absent install — never reinstall blindly). After confirming absence, guide the install and ask before running anything: Node.js ≥ 18 → npx "sap-adt-cli@^1.5.0" install (the range is the compatible range from references/runtime-compatibility.json; never an unbounded @latest); no Node.js → pip install "sap-adt-cli>=1.5.0,<2.0.0" or the newest 1.x portable archive.
    • Below the compatible range: show the upgrade command and ask first.
    • Declined or unavailable → Offline Local Mode, declared.
  3. Run collection:

    sap-adt transport collect {TR_ID} --output-dir reports/{TR_ID}_package/ --verbose
    • Collection succeeds → proceed as Offline Package Mode with the collected package at reports/{TR_ID}_package/. Do NOT ask the user to run the command.
    • Collection fails (HTTP 401, 403, connection refused, SSL error, timeout):

      "SAP connection failed: {error}. Proceeding with Offline Local Mode. See references/sap-connectivity.md §11 for the step-by-step manual export guide if you want a complete evidence package."

      Reclassify to Offline Local Mode and continue.

  4. Shell execution not available:

    "Shell execution is not available in this environment. To use automatic collection, run:

    sap-adt transport collect {TR_ID} --output-dir reports/{TR_ID}_package/ --verbose

    Once the package is ready, provide the path and I will proceed as Offline Package Mode. Or confirm you cannot run it to proceed now with Offline Local Mode."

    Wait for user response before continuing. Do NOT fabricate materials.

  5. Configuration state — never read .env files, config.json, or credential stores yourself. sap-adt status (local, non-secret) reports whether a profile is configured; unconfigured → point the user at sap-adt configure (interactive, password stays local). The old plaintext collector config (~/.sap-transport-gate/config.json) is deprecated and read only on the explicit --legacy-config path — never as an implicit fallback for a missing profile.

When falling back to Offline Local Mode at any point, reclassify mode, declare the fallback reason in the report, and continue.

Offline Package Mode is the preferred and most complete mode. Always declare the mode at the top of the report.

If mode cannot be determined from the input, ask the user one clarifying question before proceeding.


Step 1.5 — Review Scope Selection

Human confirmation required before proceeding.

Ask the user:

"I'll be reviewing Transport Request {TR_ID}.

Which review scope do you need?

(A) Code Quality Review — Covers: code quality, performance, security, authorization, transaction consistency, integration impact, transport completeness, release readiness, and evidence gaps. Assesses whether the code is well-written and safe to release. Does not evaluate whether the implementation matches business requirements.

(B) Functional + Code Quality Review — All of the above, plus Functional Alignment (Dimension 8): verifies that the code correctly implements the stated business requirements. Requires a functional specification or requirements document.

Which scope? (A or B)"

If user selects (A) — Code Quality Review:

  • Exclude Dimension 8 (Functional Alignment) from the review. Mark it as N/A — excluded by user choice.
  • Proceed to Step 2.

If user selects (B) — Functional + Code Quality Review:

  • Check whether a functional specification or requirements document is present in the provided materials.
  • Spec is present → proceed to Step 2 with all 10 dimensions active.
  • Spec is absent → do not start the review. Prompt:

    "Functional + Code Quality Review requires a functional specification. Please provide one of:

    • A functional spec document (Markdown, Word, PDF, or plain text)
    • A requirements ticket, Jira issue, or user story
    • A change request or design document

    Once provided, I will include Dimension 8 (Functional Alignment) in the review."

    If the user confirms no spec exists but still wants a Functional + Code Quality review:

    • Proceed with all 10 dimensions.
    • Set Dimension 8 outcome to Inferred / Limited — no spec provided per the Hard Constraint.
    • Record an EVIDENCE_GAP finding with severity HIGH for the missing functional specification.
    • This gap will restrict Evidence Level and the final decision.

Step 2 — Evidence Intake and Completeness Check

Inventory all materials provided by the user. Required evidence varies by mode — see references/review-modes.md §2 for full checklists.

Quick reference — evidence categories:

CategoryItems
TR IdentityTransport Request ID, type, owner, source system, target stage, creation time
Object ListObject type, name, package, changed-by, source file path for each object
Source CodeABAP programs, classes, function groups, includes, CDS views, DDIC definitions
DependenciesIntra-TR, extra-TR, table, interface, authorization-object dependencies
MetadataTable / CDS / authorization / interface / customizing metadata
Functional MaterialFunctional spec, requirement note, test note
Release EvidenceSyntax check result, activation status, unit/manual test results, collection log

For each category, mark: Present / Partial / Missing.

Missing evidence does not stop the review — it restricts what can be concluded. Every missing item must be flagged as an EVIDENCE_GAP finding.


Step 3 — Evidence Level

Determine Evidence Level before beginning dimensional review. Full rules in references/decision-policy.md §1.

LevelMeaning
HIGHTR objects, source, dependencies, functional spec, syntax/activation status, and test evidence are substantially complete
MEDIUMKey evidence is largely complete but some items are missing (e.g., test evidence incomplete or dependencies partial)
LOWOnly source fragments, incomplete object list, missing functional spec, or missing release-critical evidence
UNKNOWNInput materials are unstructured, unreadable, or scope cannot be determined

Decision gates by Evidence Level:

  • UNKNOWN → immediately output NEED_MORE_EVIDENCE; do not proceed with dimensional review
  • LOW → proceed with dimensional review, but the final decision must be NEED_MORE_EVIDENCE or NO_GO; GO and CONDITIONAL_GO are forbidden

Step 4 — Multi-Dimension Review

Complete all 10 dimensions below. Never skip a dimension — if nothing was found, state "No issues found."

Full detail for each dimension in references/review-dimensions.md.

#DimensionFocus
1Code QualityNaming, maintainability, exception handling, duplication, hardcoding, complexity
2PerformanceSELECT IN LOOP, full table scan, missing key condition, inefficient internal table ops
3SecurityDynamic SQL, dangerous functions, external calls, sensitive data exposure, unvalidated input
4AuthorizationAUTHORITY-CHECK coverage, auth object correctness, privilege escalation paths, bypass patterns
5Transaction ConsistencyCOMMIT/ROLLBACK placement, BAPI commit, LUW integrity, update consistency
6Integration ImpactRFC, IDoc, OData, HTTP, BAPI, file interfaces — impact on external systems
7Transport CompletenessObject list completeness, missing extra-TR dependencies, DDIC/CDS/config dependencies
8Functional AlignmentCode vs. functional spec — business rules, boundary conditions, exception flows
9Release ReadinessSyntax check status, activation status, test evidence, rollback plan, pre-conditions
10Evidence GapMissing materials, unverifiable assumptions, items requiring human confirmation

For Functional Alignment: skip if no functional spec is provided and label as Inferred / Limited — no spec provided. Do not infer requirements independently.

For Evidence Gap: always produce at least one finding per missing evidence category.


Step 5 — Findings

Each finding must include all fields. Full schema in references/decision-policy.md §2.

Required fields per finding:

  • id — unique identifier within this review (e.g., F-001)
  • type — one of: CODE_QUALITY, PERFORMANCE, SECURITY, AUTHORIZATION, TRANSACTION_CONSISTENCY, INTEGRATION_IMPACT, TRANSPORT_COMPLETENESS, FUNCTIONAL_ALIGNMENT, RELEASE_READINESS, EVIDENCE_GAP
  • severity — INFO / LOW / MEDIUM / HIGH / CRITICAL
  • confidence — HIGH (direct evidence) / MEDIUM (indirect evidence) / LOW (inferred)
  • object — affected object name
  • location — file, line, or section reference
  • evidence — real code snippet or material excerpt (max 15 lines); never fabricated
  • reasoning — why this is a risk
  • impact — what can go wrong if unaddressed
  • recommendation — specific, actionable fix
  • requires_human_confirmation — true / false

Severity calibration (abbreviated; full rules in references/decision-policy.md §2.2):

  • CRITICAL: severe data loss, security breach, production outage, unrecoverable release risk
  • HIGH: significant function failure, major performance degradation, missing critical dependency, release blocker
  • MEDIUM: clear risk, mitigable by fix or human confirmation
  • LOW: code quality or maintainability, does not directly block release
  • INFO: advisory, informational

When severity is uncertain, choose the higher level.


Step 6 — Release Decision

Derive a single decision from Evidence Level + Findings. Full policy in references/decision-policy.md §3.

DecisionMeaning
GONo blocking findings; evidence sufficient; safe to proceed
CONDITIONAL_GOProceed only after completing specified fixes or human confirmations
NO_GOSerious risk present; do not release
NEED_MORE_EVIDENCEInsufficient evidence for a reliable judgment

Decision priority (highest wins):

NO_GO               ← CRITICAL risk or severe unmitigated HIGH risk
NEED_MORE_EVIDENCE  ← Evidence too thin for reliable judgment
CONDITIONAL_GO      ← Risk exists but mitigable before release
GO                  ← Sufficient evidence, no blocking risk

Non-negotiable rules:

  1. Evidence Level LOW → GO and CONDITIONAL_GO are forbidden
  2. Evidence Level UNKNOWN → always NEED_MORE_EVIDENCE
  3. Any CRITICAL SECURITY / AUTHORIZATION / TRANSACTION_CONSISTENCY finding → NO_GO
  4. If CRITICAL risk and evidence gap coexist → NO_GO; list evidence gap as additional risk

Step 7 — Generate Reports

Generate both outputs. Templates in references/report-format.md.

Markdown Report (primary)

Structure:

  1. Executive Decision (Decision, Evidence Level, Overall Risk, Target Stage, TR ID, Review Mode, Rule Pack)
  2. Scope Reviewed (what was reviewed, what was not)
  3. Evidence Summary (present / missing / restricted)
  4. Key Findings (by severity)
  5. Review by Dimension (all active dimensions; Dimension 8 marked N/A if user selected Code Quality Review)
  6. Required Actions Before Release
  7. Human Confirmation Checklist
  8. Decision Rationale
  9. Appendix:
    • §9.1 Object List Summary (mandatory) — every TR object listed by type, name, and whether its source was reviewed
    • §9.2 Evidence References
    • §9.3 Assumptions
    • §9.4 Limitations and Unreviewed Scope
    • §9.5 Sign-off Table

Report rules:

  • Every high-risk finding must have a recommendation
  • Every evidence gap must explain its impact on the decision
  • All inferred conclusions must be labeled [Inferred] or [Needs confirmation]
  • Never write "looks fine" or "seems OK" without citing evidence
  • Report language: English

File naming: TR_REVIEW_{TR_ID}_{YYYYMMDD}.md
When NO_GO: prefix NOGO_TR_REVIEW_{TR_ID}_{YYYYMMDD}.md
When NEED_MORE_EVIDENCE: prefix NME_TR_REVIEW_{TR_ID}_{YYYYMMDD}.md
Full naming table in references/report-format.md §3.

Save location — always use a TR-specific subdirectory:

Always save reports to reports/{TR_ID}_package/ regardless of review mode. Never save directly to reports/.

ModeDirectory creation
Online Transport Modesap-adt transport collect --output-dir reports/{TR_ID}_package/ creates the directory automatically. Reports are saved inside it alongside manifest.json and sources/.
Offline Package ModeIf the user provided a package at a different path, save reports to that path. If no path was specified, create reports/{TR_ID}_package/ and save there.
Offline Local ModeCreate reports/{TR_ID}_package/ even if no manifest exists. Save all reports and any user-provided evidence files there.

Create the target directory automatically. Never ask the user to create it manually.

JSON Summary (secondary)

For CI pipelines, dashboards, and audit archives. Schema in references/report-format.md §2.


References Index

FileWhen to read
references/review-modes.mdMode detection, Review Package structure, evidence checklists
references/review-dimensions.mdDetailed check items per dimension
references/decision-policy.mdEvidence Level rules, Finding schema, Release Decision Policy
references/report-format.mdMarkdown report template, JSON schema
references/abap-security-rules.mdSEC-_ and AUTH-_ security rule library (Dimensions 3 & 4)
references/abap-quality-rules.mdClean ABAP quality rules (Dimensions 1 & 2)
references/abap-report-template.mdStructured Markdown report template for individual object reviews
references/sap-connectivity.mdSAP ADT auth, TR extraction CLI, credential setup (Online Transport Mode)
references/human-loop.mdWho confirms what, when, based on what evidence
references/regression-tests.mdBad cases, regression assertions, eval cases

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.