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…
Runs the S/4HANA-readiness ATC over a migration campaign's REMEDIATE objects and captures per-finding results into findings/findings_raw.tsv, advancing each object to ANALYZED. The ATC run is delegated to /sap-atc --variant=S4HANA_READINESS (so this skill ships no new GUI
$ npx -y skills add sapdev-ai/sap-dev --skill sap-cc-analyze --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-cc-analyzeContext preview
The summary Claude sees to decide when to auto-load this skill.
Runs the S/4HANA-readiness ATC over a migration campaign's REMEDIATE objects and captures per-finding results into findings/findings_raw.tsv, advancing each object to ANALYZED. The ATC run is delegated to /sap-atc --variant=S4HANA_READINESS (so this skill ships no new GUI
name: sap-cc-analyze description: | Runs the S/4HANA-readiness ATC over a migration campaign's REMEDIATE objects and captures per-finding results into findings/findings_raw.tsv, advancing each object to ANALYZED. The ATC run is delegated to /sap-atc --variant=S4HANA_READINESS (so this skill ships no new GUI scripting; /sap-atc fails loud if that variant can't be located on the release, so a non-readiness run is never passed off as readiness). Two actions: `prepare` builds the worklist from scope.tsv; `ingest` parses ATC result exports (from /sap-atc or a manual "Manage Results" export — header-tolerant) into the findings ledger and advances state. Run after /sap-cc-usage, before /sap-cc-triage. Prerequisites: the connected system offers the S4HANA_READINESS variant with the Simplification Database loaded; /sap-atc working (its per-stage recordings target the S/4HANA 1909 ATC layout — re-record a failing stage with /sap-gui-probe --record). argument-hint: "<prepare|ingest> --campaign <id> [--results <file|dir>] [--limit <n>] [--batch-size <n>] [--variant <NAME>]"
You run S/4HANA-readiness ATC across the campaign's REMEDIATE objects and fold the findings (with their simplification-item context) into the campaign ledger. The ATC engine is `/sap-atc`; this skill prepares its worklist and ingests its results.
Task: $ARGUMENTS
---
| File | Token | Purpose | |---|---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | *(rule)* | Mandatory operating rules. | | `<SAP_DEV_CORE_SHARED_DIR>/rules/settings_lookup.md` | *(rule)* | Settings / `work_dir` resolution. | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_settings_lib.ps1` + `sap_connection_lib.ps1` | *(dot-source)* | `Get-SapWorkDir`. | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_log_helper.ps1` | *(invoke)* | Start/step/end JSONL logging. | | `<SKILL_DIR>/references/sap_cc_analyze.ps1` | *(invoke)* | Offline spine: `prepare` (scope→worklist) and `ingest` (ATC results→`findings_raw.tsv`, state→ANALYZED). | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_readiness_probe.ps1` | *(invoke, RFC)* | Step 1.5 readiness-capability preflight — confirms the connected system HAS `S4HANA_READINESS` variants before the ATC loop (shared with `/sap-doctor`). | | `/sap-atc` | *(skill)* | The ATC engine. Run per worklist object with `--variant=S4HANA_READINESS`. Its per-stage VBS are recorded on S/4HANA 1909 — re-record a failing stage via `/sap-gui-probe --record` (see that skill). |
Workspace contract (`findings/findings_raw.tsv` columns, the ANALYZED state) is defined by `/sap-cc-campaign`. This skill **owns** `findings/findings_raw.tsv` and `findings/analyze_worklist.tsv`.
> This skill ships **no GUI VBS** — the GUI work is `/sap-atc`'s. Its own helper > is offline (files only), so it carries no session-broker / attach / Tier-3 > surface.
---
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))"Set `{WORK_TEMP}` = `{work_dir}\temp` (create if needed) and `{CAMPAIGN_DIR}` = `{work_dir}\migrations\{campaign-id}`.
Set `{RUN_TEMP}` = the per-run scratch dir (`Get-SapRunTemp` mints + creates `{work_dir}\temp\run_<id>`):
powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"Per the CLAUDE.md "Two-bucket temp model" write this skill's per-run scratch (the log state file below) under `{RUN_TEMP}`, never at a fixed name under the `{WORK_TEMP}` root.
---
State file: `{RUN_TEMP}\sap_cc_analyze_run.json`. Best-effort.
powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_cc_analyze_run.json" -Skill sap-cc-analyze -ParamsJson "{}"---
Build the list of REMEDIATE objects that still need analysis (state SCOPED):
powershell -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_cc_analyze.ps1" -Action prepare -CampaignDir "{CAMPAIGN_DIR}"Add `-Limit <n>` to cap the batch (useful for a first controlled run). Output: `WORKLIST: total=<n> file=...analyze_worklist.tsv` plus `SKIPPED: total=<m> file=...analyze_skipped.tsv` -- objects whose type has no `/sap-atc` Object-Set category (DEVC, MSAG, bare FUNC) are diverted to the skipped sidecar and kept OUT of the worklist, so they are not later mis-marked ANALYZED. Exit `1`/`STATUS: EMPTY` means nothing is in REMEDIATE/SCOPED -- run `/sap-cc-usage` first (or all objects are already ANALYZED).
**Batched analysis (A5, `--batch-size <n>`).** For large estates, add `-BatchSize <n>` so `prepare` ALSO writes `--object-list` batch files (`findings\atc_raw\batches\analyze_batch_<nnn>.tsv`, `<ATC_TYPE> <OBJ_NAME>` per line, ≤ n objects each) and emits `BATCHES: total=<k> size=<n> dir=<...>`. One batch = one `/sap-atc --object-list` run instead of n single runs — the analyze-phase wall-clock drops by ≈ batch-size. Stale batch files are cleared on each re-prepare. Omit (or 0) for the legacy per-object worklist. Pick n to fit the estate and the ATC run timeout (50–100 is a sane starting point; every object in one batch shares one run series + one poll).
---
The whole step runs `/sap-atc --variant=S4HANA_READINESS` in a loop. If the connected system cannot run that check, EVERY object plan-errors — a run that reads as "clean" (0 findings) while producing nothing. Catch it once, up front, instead of grinding the whole worklist. Run the shared readiness probe against the pinned connection (the same system `/sap-atc` will target):
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.
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…