sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Pre-assembles the SPDD/SPAU modification-adjustment worklist for an upgrade or S/4 conversion and produces an ADVISORY classification per entry (adopt / reset-candidate / re-implement / unclear) with cited evidence, confidence, and effort band — so the upgrade team walks into
Claude Code
$ npx -y skills add sapdev-ai/sap-dev --skill sap-spau-triage --agent claude-code
Codex
$ npx skills add sapdev-ai/sap-dev --skill sap-spau-triage -a codex -y
Cursor
$ npx skills add sapdev-ai/sap-dev --skill sap-spau-triage -a cursor -y
Gemini CLI
$ npx skills add sapdev-ai/sap-dev --skill sap-spau-triage -a gemini-cli -y
GitHub Copilot
$ npx skills add sapdev-ai/sap-dev --skill sap-spau-triage -a github-copilot -y
OpenCode
$ npx skills add sapdev-ai/sap-dev --skill sap-spau-triage -a opencode -y
Windsurf
$ npx skills add sapdev-ai/sap-dev --skill sap-spau-triage -a windsurf -y
name: sap-spau-triage description: | Pre-assembles the SPDD/SPAU modification-adjustment worklist for an upgrade or S/4 conversion and produces an ADVISORY classification per entry (adopt / reset-candidate / re-implement / unclear) with cited evidence, confidence, and effort band — so the upgrade team walks into the weekend with a triaged list instead of a blank SPAU tree, and the single biggest schedule risk (deciding reset-vs-adopt per entry under time pressure) is front-loaded. Read-only, pure RFC (NCo 3.1, 32-bit): scan builds the worklist from SMODILOG (aggregated per modified object) joined to ADIRACCESS access keys + TADIR packages; --deep pulls before/after version source via the SVRS FMs for AI diff commentary; inspect is a single-entry dossier. A deterministic offline classifier (rule table R1-R6 via the finding lib) fixes class/confidence/coverage BEFORE any LLM prose, so a recommendation never depends on model mood, and a reset-candidate is HIGH only with SVRS source-equal proof (note evidence is advisory LOW, never a reset on its own). It NEVER executes SPAU/SPDD — every recommendation is advisory in v1; a wrong "reset" deletes a customer modification, so every reset row cites its evidence and carries "verify in SPAU first". Fail-loud tri-state (unreadable versions / missing fields => COULD_NOT_CHECK, never a silent classify). No Z objects, no GUI (SPAU's driver diverges by release: SPAU_UI_START on 1909 vs RSUMOD04 on ECC6). Prerequisites: pinned RFC profile via /sap-login; NCo 3.1. argument-hint: "scan [--package=<mask>] [--user=<mask>] [--since=YYYYMMDD] [--max=500] [--deep [--deep-max=25]] | inspect <OBJ_TYPE> <OBJ_NAME> [--deep]"
You pre-triage the modification-adjustment worklist an upgrade will present in SPAU/SPDD: assemble the machine-readable evidence (modification log, access keys, version directory, note status) over RFC, classify each entry with a deterministic rule table, and write an ADVISORY report. You NEVER execute SPAU/SPDD and never reset a modification.
Task: $ARGUMENTS
The class/confidence/coverage of each entry is computed by `sap_spau_classify.ps1` (deterministic); **you** write the per-entry rationale and (--deep) diff commentary on top.
---
| File | Token / call | Purpose | |---|---|---| | `<SKILL_DIR>/references/sap_spau_rfc.ps1` | `-Action worklist\|versions\|notes` | RFC backend (SMODILOG/ADIRACCESS/TADIR/SVRS/CWBNT*) | | `<SKILL_DIR>/references/sap_spau_classify.ps1` | `-WorklistTsv -VersionsTsv -NotesTsv -OutFile` | Offline deterministic classifier (R1-R6) | | `<SKILL_DIR>/references/sap_spau_classify.tests.ps1` | offline | R1-R6 fixture corpus (7 cases) | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_object_resolver.ps1` | dot-sourced | Package/type resolution | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | dot-sourced | `Register-SapArtifact` | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_finding_lib.ps1` | dot-sourced | tri-state coverage model | | `/sap-enhancement-advisor` | sub-skill | `route` re-implement candidates (v1.5) | | `/sap-login` | sub-skill | Pinned RFC profile (no GUI session needed) |
---
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 ('RUN_TEMP=' + (Get-SapRunTemp))"powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_spau_triage_run.json" -Skill sap-spau-triage -ParamsJson "{}"---
Modes: `scan` (default) | `inspect <OBJ_TYPE> <OBJ_NAME>` | `route` (v1.5 -> hard ERROR "not yet shipped"). Flags: `--package=<mask>`, `--user=<mask>`, `--since=YYYYMMDD`, `--max=<n>` (default 500), `--deep [--deep-max=<n>]` (default 25). No GUI session is required — say so.
Needs a pinned RFC profile (`/sap-login`). Read `server_release_marker` to annotate the report (S/4: "new SPAU UI SPAU_UI_START; adjustment-free period applies" vs ECC: "classic RSUMOD04/RSUMOD02 SPAU"). SE95 (`SAPRMOMO`) is the stable manual cross-check tcode on both.
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_spau_rfc.ps1" -Action worklist -PackageMask "<mask>" -UserMask "<mask>" -Since "<YYYYMMDD>" -Max <n> -OutFile "{RUN_TEMP}\spau_worklist_raw.tsv" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>"Parse `WORKLIST: n=<k> partial=<0|1>`. `n=0` -> report "no adjustment-relevant modifications found" with the filters echoed — a SUCCESS with n=0, never a fabricated entry. `partial=1` -> the `--max` cap was hit; mark the report coverage PARTIAL. `SPAU_WORKLIST_READ_FAILED` (exit 1) -> abort, no partial TSV registered.
For the selected entries (cap `--deep-max`) run `-Action versions -ObjType <t> -ObjName <n> -DeepMax 1 -OutDir "{RUN_TEMP}\versions"`; collect `VERSIONS:` (count, newest) + the `active`/`newest` `.abap` source pair per object. Build a versions TSV (`obj_type`, `obj_name`, `equal_source` Y/N from a normalized-source hash compare, `numbered`) to feed the classifier's R1.
For note-referencing entries run `-Action notes -Notes "<n1,n2,...>"`; every `NOTE:` line carries `semantics=ADVISORY`. Build a notes TSV (`num`, `status`) for the classifier's R2.
powershell -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_spau_classify.ps1" -WorklistTsv "{RUN_TEMP}\spau_worklist_raw.tsv" -VersionsTsv "{RUN_TEMP}\versions.tsv" -NotesTsv "{RUN_TEMP}\notes.tsv" -OutFilSAP 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.
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Natural-language SAP API discovery over RFC (no GUI): turn a goal like "create a sales order" or "post a goods movement" into a…
Runs the SAP ABAP Test Cockpit (ATC) end-to-end as a quality gate: builds an SCI Object Set scoped to the target object(s),…
Executes BDC (Batch Data Communication) sessions in SAP via RFC. Reads SHDB recording files from the bdc/ folder, connects via…
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto >…
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.