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…
Read-only DB growth + archivability evidence over RFC — the table-growth watch nobody does until the disk is full. `growth` ranks tables by row count (EM_GET_NUMBER_OF_ENTRIES, fast DB-stat counts that work on cluster tables too), diffs against a persisted local snapshot for a
$ npx -y skills add sapdev-ai/sap-dev --skill sap-data-volume --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-data-volumeContext preview
The summary Claude sees to decide when to auto-load this skill.
Read-only DB growth + archivability evidence over RFC — the table-growth watch nobody does until the disk is full. `growth` ranks tables by row count (EM_GET_NUMBER_OF_ENTRIES, fast DB-stat counts that work on cluster tables too), diffs against a persisted local snapshot for a
name: sap-data-volume description: | Read-only DB growth + archivability evidence over RFC — the table-growth watch nobody does until the disk is full. `growth` ranks tables by row count (EM_GET_NUMBER_OF_ENTRIES, fast DB-stat counts that work on cluster tables too), diffs against a persisted local snapshot for a rows/day trend, and flags known log-table offenders (BALDAT, EDID4, CDPOS, DBTABLOG) and Z tables that lack housekeeping. `archivability` maps each archiving object to its tables (ARCH_DEF), pulls its run history (ADMI_RUN/ADMI_STATS), and reports whether a TAANA age analysis exists. Replaces manual DB02/DB15/SARA spelunking. Prerequisites: pinned profile via /sap-login (RFC); SAP NCo 3.1 (32-bit). No GUI, no Z-object, no dev-init — safe to point at production. `analyze` (schedule TAANA) is v1.5; `archive-run` (SARA write/delete) is v2 and refused in v1. argument-hint: "growth [--top N] [--tables A,B] [--z-only] [--max-tables N] [--physical] | archivability [--object O] [--table T] [--residence-days N]"
Automate the read-only DB-volume evidence pass: ranked table growth with a local snapshot trend, log-table + Z-housekeeping flags, and per-archiving-object history + analysis coverage — all over RFC with honest COULD_NOT_CHECK where a source is absent on the release.
Task: $ARGUMENTS
**Pure read-only on SAP** in every v1 mode (RFC_READ_TABLE + EM_GET_NUMBER_OF_ENTRIES). The only local write is the growth snapshot file. `--physical` delegates report RSTABLESIZE to /sap-run-report, which asks its **own** Rule-5 confirm — this skill never pre-answers it.
---
| 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_data_volume_rfc.ps1` | `-Action growth\|archivability … -OutDir` | The two RFC modes → growth.tsv / archivability.tsv | | `<SKILL_DIR>/references/sap_data_volume_offenders.tsv` | catalog | Known log/growth tables + archiving object + ECC physical cluster; override at `{custom_url}\sap_data_volume_offenders.tsv` | | `/sap-run-report` (Skill tool) | RSTABLESIZE / RSSPACECHECK | `--physical` size pass (its own Rule-5 confirm) | | `/sap-sp02` (Skill tool) | spool → file | `--physical` spool collection | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | Step 6 | Artifact index for /sap-evidence-pack | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_log_helper.ps1` | Step 0.5 / Final | Structured run logging |
---
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 ('STAMP=' + (Get-Date -Format 'yyyyMMddHHmmss')); Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"Resolve the pinned connection's SID+client. Set `{RUN_TEMP}` = the `RUN_TEMP=` value printed above (`Get-SapRunTemp` mints + creates the per-run scratch dir holding the log state file; mint it once here and reuse — re-minting breaks the `-Action end` state-file lookup); `{OUT}` = `Get-SapArtifactDir -ScopeKey SYS_<SID>_<CLIENT> -Skill sap-data-volume`. **Snapshot dir (Bucket A, durable — NOT temp):** `{work_dir}\cache\data_volume\<SID>_<CLIENT>` (the engine derives the real SID+client live from RFC_SYSTEM_INFO / USR02, so pass this dir and it self-creates).
powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_data_volume_run.json" -Skill sap-data-volume -ParamsJson "{}"---
scope; else offenders + Z*/Y* tables), `--z-only` (only Z*/Y*), `--max-tables N` (default 200), `--physical` (Step 5 size pass), `--z-threshold N` (Z-housekeeping row threshold, default 1000000).
neither (default = objects with run history), `--residence-days N`.
ships in v1.5 with a recorded GUI leg` and STOP.
deferred to phase 2; refused in v1` and STOP. Never attempt it.
Pinned via /sap-login. A GUI session is required **only** for the `--physical` delegation chain (/sap-run-report), not for the RFC reads.
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_data_volume_rfc.ps1" -Action growth -MaxTables <N> -OffenderFile "<SKILL_DIR>\references\sap_data_volume_offenders.tsv" -SnapshotDir "{work_dir}\cache\data_volume\<SID>_<CLIENT>" -SharedDir "<SAP_DEV_CORE_SHARED_DIR>" -OutDir "{OUT}"Add `-Tables "A,B"` / `-ZOnly` / `-ZThreshold N` per args. Parse `DATAVOL:` (per-table row/class/sizecat/delta/perday), `DATAVOL_FLAG:` (Z_TABLE_NO_HOUSEKEEPING / LOG_TABLE_LARGE), `DATAVOL_SNAPSHOT:` (BASELINE_CREATED first run — trend `n/a`, honest — else DELTA), `DATAVOL_SKIP:` (table not in DD02L), and `STATUS:`. A connect failure → exit 2, `RFC_LOGON_FAILED`, **no verdict**. A `COUNT_FAILED` row is tri-state — never rendered as 0. The engine writes `growth.tsv` and the snapshot.
Render `growth_report.md` into `{OUT}`: top-N table with rows / class / size-cat / delta / per-day, then the flags section, then (on ECC) the cluster-attribution note for CDPOS/EDID4 (physical size is on CDCLS/EDI40 — `EM_GET_NUMBER_OF_ENTRIES` still counts them fine, verified live). **Grounding rule: every row traces to gr
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…