Skip to content
Development
Skill

/sap-cc-analyze

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

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

Context 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

SKILL.md

sap-cc-analyze.SKILL.md
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>]"

SAP Custom-Code Migration — S/4 Readiness Analysis

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

---

Shared Resources

| 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.

---

Step 0 — Resolve Work Directory

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.

---

Step 0.5 — Start Logging

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 "{}"

---

Step 1 — Prepare the Worklist

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).

---

Step 1.5 — Readiness-capability preflight (RFC; before the ATC loop)

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):

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.