sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for reports/programs/function- group…
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
$ npx -y skills add sapdev-ai/sap-dev --skill sap-spau-triage --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-spau-triageContext preview
The summary Claude sees to decide when to auto-load this skill.
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
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.
Repo: sapdev-ai/sap-dev
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for reports/programs/function- group…
Natural-language SAP API discovery over RFC (no GUI): turn a goal like "create a sales order" or "post a goods movement" into a ranked, trap-annotated,…
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), creates an ATC Run Series bound to…
Executes BDC (Batch Data Communication) sessions in SAP via RFC. Reads SHDB recording files from the bdc/ folder, connects via SAP NCo 3.1, calls…
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto > Object Directory Entry). Routes by…
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming (variable conventions), type (DDIC…