Skip to content
Development
Skill

/sap-transport-sequencer

Orders a set of transport requests into a safe import sequence and audits code freezes — read-only over RFC, detect-only (never imports, never releases). `sequence` reads the TR set from the source system, folds LIMU objects into their R3TR parents, builds an object-overlap

From plugin
sap-dev
8123 skills3 agents
Install
$ npx -y skills add sapdev-ai/sap-dev --skill sap-transport-sequencer --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-sequencer

Context preview

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

Orders a set of transport requests into a safe import sequence and audits code freezes — read-only over RFC, detect-only (never imports, never releases). `sequence` reads the TR set from the source system, folds LIMU objects into their R3TR parents, builds an object-overlap

SKILL.md

sap-transport-sequencer.SKILL.md
name: sap-transport-sequencer
description: |
  Orders a set of transport requests into a safe import sequence and audits code
  freezes — read-only over RFC, detect-only (never imports, never releases). `sequence`
  reads the TR set from the source system, folds LIMU objects into their R3TR parents,
  builds an object-overlap graph, orders by release timestamp under overlap constraints,
  and flags unreleased TRs, same-object overlaps, still-modifiable overtakers, and
  source-side missing predecessors; with `--target` it cross-checks a second system for
  unimported predecessors and first-time-delivery objects. `freeze-audit` finds TRs
  released or changed inside a freeze window minus policy exceptions, with per-violation
  VRSD change-evidence. Emits a sequence + conflicts report with a ready-to-paste
  `/sap-stms import` command list (never executed). Fills the cross-TR gap
  /sap-transport-readiness explicitly defers. Prerequisites: pinned profile via
  /sap-login (+ a second profile for `--target`); SAP NCo 3.1 (32-bit). No GUI, no
  Z-object, no dev-init.
argument-hint: "sequence <TR1,TR2,…|--file=<path>> [--target=<profile>] [--max=200] [--skip-missing]  |  freeze-audit --from=YYYYMMDD --to=YYYYMMDD [--policy=<path>]"

SAP Transport Sequencer & Freeze Auditor

You turn the release manager's hand-sorted import spreadsheet into a computed, explained sequence — and turn "the freeze was enforced by email and hope" into an audit trail. Read-only. **This skill never imports and never releases** — the ordered `/sap-stms import` lines are text the operator runs.

Task: $ARGUMENTS

**Detect-only by design.** No `import`, `release`, or `enforce` verb exists here. Execution stays with /sap-stms and its typed production gates (a human decision).

---

Shared Resources

| File | Token / call | Purpose | |---|---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | *(rule)* | Mandatory operating rules — read-only here | | `<SKILL_DIR>/references/sap_seq_read.ps1` | `-Trs -MaxTrs [-SkipMissing] -OutDir` | Source reads: headers/objects (normalized)/reverse-overlap/tasks | | `<SKILL_DIR>/references/sap_seq_graph.ps1` | `-InDir -OutDir` | **Offline** order + conflict graph | | `<SKILL_DIR>/references/sap_seq_target.ps1` | `-Against -ObjectsTsv -OverlapsTsv -OutDir` | Target predecessor + first-time-delivery check | | `<SKILL_DIR>/references/sap_freeze_audit.ps1` | `-From -To -PolicyJson -OutDir` | Freeze-window violation audit | | `<SKILL_DIR>/references/sap_seq_vrsd.ps1` | dot-source | VRSD materiality (`Get-VrsdInWindow`) | | `<SKILL_DIR>/references/freeze_policy_template.json` | template | Freeze policy shape; override at `{custom_url}\freeze_policy.json` | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_connection_lib.ps1` / `sap_rfc_lib.ps1` / `sap_artifact_lib.ps1` | dot-sourced / Step 5 | RFC, profile resolution, artifact index |

---

Step 0 — Resolve Work Directory & OUT

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)); Write-Output ('CUSTOM_URL=' + (Get-SapSettingValue 'custom_url' ((Get-SapWorkDir) + '\custom')))"

Set `{RUN_TEMP}` via `Get-SapRunTemp`. `{OUT}` = `Get-SapArtifactDir -ScopeKey TRSET_<8-char hash of sorted TR list> -Skill sap-transport-sequencer` (sequence) or `FREEZE_<SID>_<from>_<to>` (audit).

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_sequencer_run.json" -Skill sap-transport-sequencer -ParamsJson "{}"

---

Step 1 — Parse Arguments & Mode Dispatch

First token `sequence` | `freeze-audit`; a bare TR list implies `sequence`. Validate:

  • **sequence**: TR list non-empty, ≤ `--max` (default 200, hard cap 500) else

`SEQ_INPUT_INVALID`. `--file=<path>` reads a newline/comma TR list. `--skip-missing` demotes an unknown TR from hard error to a WARN finding.

  • **freeze-audit**: window both-bounded and ≤ 92 days else `FREEZE_WINDOW_UNBOUNDED`.
  • `--keys` (E071K key-level overlap) and `--deep` (TMS queue + VRSD downgrade) are

**NOT_YET_IMPLEMENTED** (v1.5 / v2) → say so and STOP.

No write modes exist → **no confirm-gate step**.

---

Step 2 (sequence) — Read → Graph → Target

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_seq_read.ps1" -Trs "<TR1,TR2,...>" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>" -OutDir "{OUT}"
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_seq_graph.ps1" -InDir "{OUT}" -OutDir "{OUT}"

Parse the read's `STATUS:` — `SEQ_TR_NOT_FOUND` (exit 1, unless `--skip-missing`) → list the `MISSING:` TRs, STOP. The graph writes `sequence.tsv` + `conflicts.tsv` and emits `SEQ:`/`CONFLICT:`/`STATUS: OK ordered=.. unimportable=.. conflicts=..`.

**With `--target=<profile>`**, run the target check (a second /sap-login profile, read-only):

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_seq_target.ps1" -Against "<profile>" -ObjectsTsv "{OUT}\objects.tsv" -OverlapsTsv "{OUT}\overlaps.tsv" -OutDir "{OUT}"

`SEQ_TARGET_UNREACHABLE` → ask the user: continue source-only (target rows `COULD_NOT_CHECK`, verdict capped at GO_WITH_WARNINGS) or abort. Never silently degrade.

Step 3 (sequence) — Narrate the Sequence (you write this)

Write `sequence_narrative.md` into `{OUT}` from `sequence.tsv` + `conflicts.tsv` (+ `target_check.tsv`). **Grounding rule: every constraint traces to a shared object.** 1. **Ordered import list** — position, TRKORR, release_ts, owner, description, `constrained_by`; explain WHY each is placed there ("must follow S4DK902334 because both touch ZCL_GOLDEN_TAX"). 2. *

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.