en un clic
sap-dev
sap-dev contient 123 skills collectées depuis sapdev-ai, avec une couverture métier par dépôt et des pages de détail sur le site.
Skills dans ce dépôt
Creates, maintains, and manages SAP Number Range Objects (NRO) via SNRO using SAP GUI Scripting. Number Range Objects are crucial for generating unique identifiers for SAP master data and document numbers (e.g. material numbers, document numbers, custom Z document IDs). Supports existence check, create new NRO with short text / long text / domain (number length) / warning percentage, update header attributes, and maintain number range intervals (sub-objects with FROMNUMBER / TONUMBER / current number / external flag). Handles the package + transport request popup (3-way pattern: explicit TR, $TMP local object, or new transport). Prerequisites: Active SAP GUI session (use /sap-login first).
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 that set, polls the ATC Run Monitor until the run completes, then reads the Priority 1 / Priority 2 / Priority 3 finding counts from the Manage Results screen and (best-effort) downloads the result text file. Applies the customer brief's MAX_PRIORITY threshold to decide pass / fail. Replaces the legacy SCI-results-tree implementation that lacked a Priority column. Per-stage VBS references are recorded against the S/4HANA 1909 ATC layout — re-record on first failure with /sap-gui-probe --record if your release uses different tree node IDs / grid column IDs. Prerequisites: Active SAP GUI session (use /sap-login first).
Read-only environment preflight ("doctor") for the sap-dev toolchain — diagnoses why skills fail BEFORE they run, across six default groups: gui (GUI + scripting reachable), cfg (32-bit PowerShell, NCo 3.1, work_dir, connections.json), rfc (pinned-profile connectivity), srv (client modifiability), auth (user authorizations vs the required set), devenv (dev-init artefacts). Emits one CHECK line per probe + a verdict (READY / DEGRADED / BLOCKED); a probe that can't run reports SKIP, never a false PASS, each with a copy-pasteable FIX. The default run is pure read-only and safe to chain (exit 0 = ready, 1 = blocked). OPT-IN group --screens replays the golden-screen baselines against the live system to catch control-ID drift before a GUI skill mis-steps (navigates the live session, off by default; --update-baseline writes baselines). Absorbed /sap-gui-screen-check. Prerequisites: SAP GUI; NCo 3.1 (32-bit) for rfc/srv; an active session for gui.
OData/Gateway service diagnosis over RFC — replaces the /IWFND/MAINT_SERVICE + SICF + /IWFND/ERROR_LOG scavenger hunt behind every "the service returns 500" ticket. status reads the hub catalog (/IWFND/I_MED_SRH registration + IS_ACTIVE) x the system-alias assignment (/IWFND/V_MGDEAM) per service and returns a verdict OK / INACTIVE / NO_ALIAS / NOT_REGISTERED — a missing alias is the classic 500 cause. errors surfaces the /IWFND/ERROR_LOG content, clusters it by (service, message), and AI-maps each cluster to a cause (CUSTOM_CODE via the named DPC/MPC source program -> /sap-fix-incident + /sap-explain-object handoff; NO_ALIAS / AUTH / METADATA_CACHE config causes), cross-linking /sap-st22. S/4-only: a DD02L preflight distinguishes GW_NOT_INSTALLED from GW_BACKEND_ONLY (IW_BEP present, hub on another box -> pin it via /sap-login) and refuses loud on ECC rather than faking support. Registers as /sap-diagnose's odata reader. Pure RFC for status (no wrapper, no Z object, no dev-init); smoke (HTTP) is v1.5 and act
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for reports/programs/function- group main programs, SE37 for function modules, SE24 for classes/interfaces /methods, SE11 for DDIC objects (table, view, dataelement, structure, tabletype, typegroup, domain, searchhelp, lockobject). Handles the "inactive objects worklist" popup that SAP shows when there are multiple inactive objects of the same locality (transportable vs. local — SAP filters the popup by package locality of the triggering object). Verifies activation via PROGDIR (programs/FMs include) and DWINACTIV. Prerequisites: Active SAP GUI session (use /sap-login first).
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto > Object Directory Entry). Routes by object type to SE38 / SE37 / SE24 / SE11 / SE91 / CMOD (the last for enhancement projects — used by /sap-cmod). Handles three flows automatically based on current vs new package locality: (a) $TMP → transportable (Z*/Y*): resolves a modifiable TR via /sap-transport-request, then enters the new package + TR. (b) transportable A → transportable B: pre-checks E071/E070 to ensure the object is NOT linked to a modifiable TR (would block the move). (c) transportable → $TMP: confirms the move and presses "Local object". Verifies via TADIR re-query. Prerequisites: Active SAP GUI session (use /sap-login first).
Manages the full lifecycle of SAP Enhancement Projects (classic modifications) via CMOD using SAP GUI Scripting, plus read-only RFC lookups. Operations: check / status, create, change short text, activate, deactivate, delete the project; add and remove SAP enhancement assignments (position-aware — finds the right row by value, never a fixed index); change the project's package (delegates to /sap-change-package); and route "edit an enhancement component" to the correct workbench skill by component type (E function exit -> /sap-se38, S screen -> /sap-se51, T table -> /sap-se11, C GUI code -> /sap-se41). Prerequisites: Active SAP GUI session (use /sap-login first); SAP NCo 3.1 (32-bit, .NET 4.0) in GAC for the RFC lookups.
Full lifecycle for SAP function groups: check existence, create, re-activate, query PROGDIR state, and delete. Mode-aware — picks the RFC fast-path (`RS_FUNCTION_POOL_INSERT`, `RFC_READ_TABLE` on TLIBG / TFDIR / TADIR / PROGDIR) when possible, falls through to GUI scripting (SE37 menus + SE38 delete) when no RFC equivalent exists. Honours `userConfig.sap_dev_mode` (GUI / RFC); the default chain for each operation is documented in the SKILL.md mode dispatch table. Replaces the now-removed `sap-se37-fugr` skill — call this skill for every function-group lifecycle step. Deletion is irreversible: the skill MUST confirm with the user before delegating to /sap-se38. Prerequisites: SAP NCo 3.1 (32-bit, .NET 4.0) in GAC for RFC paths; active SAP GUI session (use /sap-login first) for GUI paths.
Executes an ABAP report/program on a live SAP system and captures the output — foreground (SA38 F8, interactive list) or background (scheduled job), with or without a variant, or ad-hoc selection values. Also maintains variants — create/overwrite (set) and delete via the SAPLSVAR GUI dialogs, list/show via RFC. Mode-aware: prefers the RFC fast-path where present and falls through to GUI (SA38 F8 / Execute-in-Background) when RFC is unavailable, honouring userConfig.sap_dev_mode. Executing a report can change data (UPDATE / COMMITting BAPI / job submit / IDoc / mail) — the skill ALWAYS confirms before it runs, per skill_operating_rules Rule 5. Prerequisites: active SAP GUI session (use /sap-login first). The RFC background path additionally needs SAP NCo 3.1 (32-bit) + Z_RUN_REPORT (deploy via /sap-dev-init); variant list/show route through /sap-rfc-wrapper.
Queries any SAP table via SE16N using SAP GUI Scripting and downloads the result set as a tab-delimited text file. Supports filtering by any combination of table fields with single value, multi-value (IN list), or range (BT) selection, and any of the standard SE16N operators (EQ, NE, GT, LT, GE, LE, BT, NB, CP, NP, IN). Optionally restricts the output columns to a specific set of fields; if no SELECT list is given, all fields are returned. Detects the "no values found" path and writes a marker file instead of an empty download. Typical use: dump rows from any SAP table for inspection or as reference data for development. Snapshot modes add a table-state assertion primitive: `snapshot save <name>` captures a query result under {artifact_dir}\snapshots; `snapshot diff <a> <b>` row-diffs two snapshots on declared key columns (ignoring volatile columns) via the shared keyed-diff engine — ADDED/REMOVED/CHANGED/SAME; `snapshot list` enumerates them. Prerequisites: Active SAP GUI session (use /sap-login first). `sna
Full lifecycle for SAP BAdI implementations via SE19 (BAdI Builder) using SAP GUI Scripting: Create, Update, Display, Delete, Activate, and Deactivate — for BOTH Classic BAdIs (SXS_ATTR / SXC_*) and New BAdIs (Enhancement Framework / BADI_IMPL). Auto-detects the BAdI type via RFC (SXS_ATTR-EXIT_NAME for Classic, BADI_IMPL-BADI_NAME for New); asks the user when a migrated BAdI is genuinely ambiguous (e.g. MB_MIGO_BADI, ME_PROCESS_PO_CUST). For Create the user supplies a BAdI DEFINITION / enhancement-spot name; for all other operations the user supplies a BAdI IMPLEMENTATION name. Implementing-class work (method source, class create/activate) is delegated to /sap-se24; package reassignment is delegated to /sap-change-package. NEVER deletes a BAdI definition or any implementation it did not create. Prerequisites: Active SAP GUI session (use /sap-login first). SAP NCo 3.1 (32-bit) for the RFC type-detection step.
Creates, checks, or deletes SAP development packages via transaction SE21 using SAP GUI Scripting (VBS). First verifies package existence using RFC_READ_TABLE on TDEVC, then creates it via the live GUI session. Delegates transport-request resolution to /sap-transport-request — never prompts the user for a TR or calls /sap-se01 directly. Also supports delete mode: when the user explicitly asks to delete a package (e.g. "delete package <X>", "drop package <X>"), navigates to SE21, fills the package name, presses Shift+F2 (sendVKey 14) from the initial screen, walks the confirmation popup chain, and verifies removal. Deletion is irreversible — the skill MUST confirm with the user (showing TADIR child count from the existence check) before launching the VBS. Connection parameters from settings.json (sap-dev-core plugin). Prerequisites: SAP GUI installed, SAP GUI Scripting enabled, an active logged-in session (run /sap-login first).
Manages PF-STATUS (GUI status) subobjects of an SE41 Menu Painter interface (program / function pool) on a live SAP system via SAP GUI Scripting. Supports the operations CREATE, UPDATE, DISPLAY, DELETE, ACTIVATE, DEACTIVATE, COPY and an existence CHECK. SE41 has no Upload/Download for status definitions — function codes are entered field by field from a pipe-delimited definition file. Package (development class) changes are delegated to /sap-change-package. Prerequisites: Active SAP GUI session (use /sap-login first).
Maintains screens (dynpros) in a SAP system via SE51 using SAP GUI Scripting. Two modes: (a) FLOW LOGIC — create new screens or update an existing screen's flow logic (PROCESS BEFORE OUTPUT / PROCESS AFTER INPUT). Existence check (SE51 Display), flow logic paste via Windows clipboard, save, activate. (b) LAYOUT / ADD ELEMENT — add layout elements (static Text labels, Input/Output fields, checkboxes, pushbuttons, radio buttons) to an existing screen via the ALPHANUMERIC Screen Painter (Edit > Create Element). This is the only scriptable placement path: the graphical drag-and-drop Layout Editor is a non-scriptable ActiveX control the recorder cannot capture, and the element-list grid is read-only for placement. Requires the per-user "Graphical Layout Editor" setting OFF. Prerequisites: Active SAP GUI session (use /sap-login first).
Generates a table maintenance dialog in SAP via SE54 using SAP GUI Scripting. Checks if the maintenance dialog already exists, then generates it with authorization group, function group, maintenance type, and screen number. Existence check and generation flow. Prerequisites: Active SAP GUI session (use /sap-login first).
Manages SAP message classes via SE91 using SAP GUI Scripting. Creates new message classes or updates messages in existing ones. Existence check (SE91 Display), message text editing via inline table, and save. Messages are provided as tab-separated number/text pairs in a file. Also supports change-properties mode: when the user asks to change a message class's header attributes (Short Text, Person Responsible, ...), opens SE91 with the Header radio (radRSDAG-MIDFLAG) in change mode, updates the supplied fields on tabpHEAD, then Saves. Handles the conditional original-language popup and the post-save Workbench-request popup (per /sap-transport-request). Prerequisites: Active SAP GUI session (use /sap-login first).
Downloads a SAP spool request to a local text file via transaction SP02 (Output Controller — own spool requests). Drives the GUI in three steps: locate the spool by number on the SP02 list (matched across all columns, so the driver adapts to whatever column the layout uses), open its contents via the Display-contents button, then Save to local file — picking the export format radio (default Unconverted = plain text) and entering the target path/filename. Works for any list-style spool that SP02 can render (executable reports, ALV grids printed to spool, etc.). Format defaults to Unconverted plain text but accepts Spreadsheet / Rich text / HTML via the FORMAT_INDEX argument. Prerequisites: Active SAP GUI session (use /sap-login first), and the target spool must belong to the logged-in user (or appear in the user's default SP02 selection).
/sap-diagnose reader: ABAP runtime-error (short dump) evidence from ST22 in GUI mode (ADT not used; SNAP is a cluster table, so dumps are read by driving ST22 via SAP GUI Scripting). Read-only: sets the date/user selection, displays the dump list, and scrapes it into the shared diagnose evidence contract. With --deep it also opens each in-scope dump and scrapes the failing source line + snippet into the event's include/line + a dump_detail object (what /sap-fix-incident consumes to root-cause a dump); deep is strictly additive — a deep failure degrades to partial/skipped and never loses the list-level evidence. Component IDs vary by release: the reader tries candidates and degrades to a clean skipped/partial with a /sap-gui-probe --record hint. After scraping, it fingerprints each dump (SHA1 of exception|program[|include|line]) into a team-shareable recurrence ledger and prints a NEW / KNOWN_RECURRING / GONE delta (--no-fingerprint opts out; best-effort, never changes the verdict). Usually invoked by /sap-dia
Moves a released transport request through the landscape (DEV → QAS → PRD) and reads its import status / return code via STMS. Four modes: status (default, READ-ONLY — a target's import queue, or where a TR sits on the route); logs (READ-ONLY — import log + step RC mapped to OK / WARN / ERROR / FATAL); import (WRITE, gated — import one released TR; a PRODUCTION target needs a typed-SID echo + second confirmation, the most outward-facing action in the toolset; never imports an unreleased/NO-GO TR without --force); import-all (WRITE, double-gated, off without --all). Missing import authorization → COULD_NOT_IMPORT (never a faked success); RC 8/12 = failure even if the queue row looks "done". The import VBS is a recording-gated scaffold that fails SAFE — run /sap-gui-probe --record on STMS_IMPORT once per release first. Prerequisites: active /sap-login GUI session; QA/PROD imports need TMS import authorization (status/logs work without it).
Analyzes an already-recorded SAP performance trace and ranks the hotspots. Two sources: --import <file> reads a trace you exported yourself (fully offline, no SAP needed); --source st05|sat drives the GUI to display the latest recorded SQL trace (ST05, "Summarized SQL Statements") or runtime- analysis hit list (SAT) and exports it as a tab file. The analyzer normalizes either shape into a ranked hotspot list, flags anti-patterns (SELECT in loop, SELECT *, full-scan, unguarded FOR ALL ENTRIES, many executions, ABAP-side hotspots), maps each to a rule in abap_code_quality_rules.md and to the object's volume band, and proposes a fix. This v1 reads a trace that ALREADY EXISTS — it does not activate/ deactivate ST05 or start a SAT measurement (capture orchestration is a later phase), and does not read SQL Monitor (SQLM). Pure read-only — never modifies the SAP system. Prerequisites: for --source, an active SAP GUI session (use /sap-login first); for --import, none.
Manages SAP Business Partners via the BP transaction using SAP GUI Scripting. Creates new partners (Organization type) or updates existing ones. Existence check, partner creation with role/grouping selection, and partner update with field values from a definition file. Prerequisites: Active SAP GUI session (use /sap-login first).
Manages SAP material masters via MM01/MM02/MM03 using SAP GUI Scripting. Creates new materials or updates existing ones. Existence check (MM03 Display), material creation (MM01) with view/org-level handling, material update (MM02), and save. Field values are provided as tab-separated section/field/value triples in a definition file. Prerequisites: Active SAP GUI session (use /sap-login first).
PFCG role automation — turns the manual post-diagnosis grind (add a tcode, regenerate, user-compare, assign) into one-line commands where every write is confirm-gated with an explicit delta preview and PROVEN by an authoritative AGR_* RFC re-read (never "thinks" it changed a role). show is a read-only role dossier (AGR_DEFINE/AGR_TEXTS header, AGR_TCODES menu, AGR_USERS assignments, AGR_PROF generated profile + AGR_1251 auth-row count, T000 client modifiability). assign/unassign add/remove users via the released BAPI_USER_ACTGROUPS_ASSIGN read-modify-write path (pure RFC, full-set-replace from a fresh GET_DETAIL + the requested delta ONLY — never over-grants; reuses /sap-su01's verified assignment writer, the binding ownership split: pfcg = role->users, su01 = user->roles). create / add-tcodes / remove-tcodes / generate drive PFCG (SAPLPRGN_TREE) + SUPC (SAPPROFC_NEW) via recorded GUI flows that NEVER enter the authorization tree (Phase 1's make-or-break), behind a confirm gate + a Customizing TR (/sap-transp
Manages SAP sales orders via VA01/VA02/VA03 using SAP GUI Scripting. Creates new sales orders or updates existing ones. Existence check (VA03 Display), order creation (VA01) with header/item handling, order update (VA02), and save. Field values are provided as tab-separated section/field/value triples in a definition file. By default an order that SAP reports as INCOMPLETE at save time is NOT saved (fail-loud); pass --allow-incomplete to save it anyway. Prerequisites: Active SAP GUI session (use /sap-login first).
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 ABAP4_CALL_TRANSACTION, and outputs full BDCMSGCOLL messages to a result file. Connection parameters resolved from the AI session's pinned profile in connections.json (saved via /sap-login). Prerequisites: SAP profile saved via /sap-login (RFC password required). SAP NCo 3.1 (32-bit, .NET 4.0) in GAC.
Routes "check and fix" / "check" / "fix" requests for an EXISTING SAP object to the correct workbench skill (sap-se38 / sap-se37 / sap-se24 / sap-se11) by an explicit object-type keyword, or — when no keyword is given — auto-detects the type by probing SE38 → SE37 → SE24 → SE11 (Display), then dispatches in check-and-fix mode. If the object matches an SAP-enhancement-component pattern (function-exit FM EXIT_SAP*, exit include ZX*, table-enhancement CI_*, SAPLX* screen exit), it is confirmed via MODSAP and routed to /sap-cmod instead (which edits the correct underlying object — for a function exit the ZX* customer include, never the standard FM — and re-activates the CMOD project). Invoke on "check and fix / check / fix <kind> <name>" where <kind> is report/program, FM, class/interface, a DDIC type, or omitted. Prerequisites: active SAP GUI session (/sap-login first). Does not deploy new objects — the target must already exist.
Conservative cleanup of the artefacts /sap-dev-init created. Walks reverse dependency order — wrapper FM, DDIC structure + table type, utility program, function group, package — and deletes only what the operator confirms, skipping any artefact the operator extended (a function group with user-added FMs, a package with user-added Z* tables) unless --force. Deleted objects are unassigned from their transport request (via /sap-se01 remove-objects) and the request is deleted if it ends up empty, so a later /sap-dev-init can re-create the same names cleanly (no lingering name-lock). settings.json keys are preserved unless --settings. The canonical "blow away and rebuild" sequence is /sap-dev-clean ; /sap-dev-init. Pass --reset for a full reset (implies --force + --settings, clears the dev-default keys and deletes the dev TR). Prerequisites: active SAP GUI session (/sap-login first); SAP NCo 3.1 (32-bit). Delegates deletes to /sap-se37, /sap-se11, /sap-se38, /sap-function-group, /sap-se21.
Initializes the SAP development environment after plugin installation. Ensures a transport request, package, and function group exist in SAP, then deploys the ZCMRUPDATE_ADDON_TABLE utility program. Mode-aware: respects `sap_dev_mode` (GUI / RFC / BDC) and selects the preferred skill variant for each step, falling back to the next mode in the chain when no implementation exists for the preferred mode. Prerequisites: Active SAP GUI session (use /sap-login first). SAP NCo 3.1 (32-bit, .NET 4.0) in GAC for RFC sub-steps.
Transfers files between the local PC and the SAP application server, and lists app-server directories. Four modes: upload (CG3Z, PC -> app server), download (CG3Y, app server -> PC), list and exists (headless RFC via EPS2_GET_DIRECTORY_LISTING - no AL11 scraping). Text (ASC) or binary (BIN) transfer, explicit --overwrite flag, popup-guarded (overwrite Query, cannot-open-file Information popup), locale-independent (all outcomes read via control IDs + MessageType, verified for JA logons). Wires the SAP GUI Security precheck/sidecar around the local-file IO. Closes the file-interface test loop: upload test input -> /sap-run-report -> list -> download output -> diff against the spec's expected output (golden rows / Mapping (File Out)). No transport request involved - this skill touches no repository object. Typical asks: "upload <file> to the SAP server", "download /tmp/x from S4D", "list /usr/sap/trans", "does /tmp/out.txt exist on the app server". Prerequisites: active SAP GUI session (use /sap-login first) for
Closes the loop from a /sap-diagnose root cause to a deployed, test-verified fix — conservatively and test-first. Takes a diagnose deliverable (or a dump key) whose top hypothesis is a CUSTOM-CODE DEFECT, acquires the failing source, reasons a minimal patch, reproduces the defect as a RED ABAP Unit test (via /sap-gen-abap-unit), applies the patch, re-checks with /sap-check-abap, deploys to a modifiable DEV system behind a transport, and proves the test GREEN with /sap-run-abap-unit. HARD GUARD RAILS: only custom-code-defect hypotheses on Z*/Y* objects; never patches SAP standard (→ Note/enhancement, analysis only); never writes to a non-modifiable / production system — the fix is made in DEV and handed to /sap-transport-readiness → /sap-se01 release → /sap-stms. Deploy is gated (Rule 2): default is to PROPOSE a diff and wait for confirmation. Prerequisites: a /sap-diagnose deliverable or a dump; pinned DEV /sap-login profile + active GUI session; SAP NCo 3.1 (32-bit) for RFC.
Drive a SAP transaction step by step against a natural-language scenario, dumping each screen's full property tree via /sap-gui-inspect and emitting a synthesized recording-style VBS at the end. Designed as a skill-authoring aid: probe SE37 before writing a new /sap-se37 flow. Captures more than the SAP recorder -- not just findById paths and actions, but also Changeable, Tooltip, IconName, popup transitions, and the program/transaction/screen identity at every step. Capture modes: * drive (default) -- Claude drives the transaction live (Steps 0-4). * --record [<vbs>] -- fallback when Claude can't reliably drive the flow (unfamiliar or write-heavy transaction, or when a real operator's exact clicks are wanted as ground truth): guides you to record it with SAP GUI's built-in Script Recording and Playback, then parses the saved VBS into the same findById/action map. Replaces the former /sap-gui-record skill; parsing an already-saved recording needs no live session. Two safety modes (dr
Reaches non-RFC-callable ABAP code from outside the system (e.g. SAP NCo 3.1), in two modes: `fm` CALLS a non-RFC-enabled function module via the generic wrapper Z_GENERIC_RFC_WRAPPER_TBL (reads the FM interface, builds asXML, invokes it over RFC, returns the deserialized outputs); `class` GENERATES + deploys a dedicated RFC wrapper FM for a non-RFC-callable class method (reads the method interface, emits Z_CLSWRP_<CLASS>_<METHOD>, deploys via /sap-se37). The modes compose: `class` builds a wrapper FM, `fm` then calls any FM. Replaces the former /sap-rfc-wrapper-fm and /sap-rfc-wrapper-class. Prerequisites: SAP profile via /sap-login (RFC password); SAP NCo 3.1 (32-bit) in GAC. `fm` needs Z_GENERIC_RFC_WRAPPER_TBL (deploy via /sap-dev-init); `class` needs an active SAP GUI session for the /sap-se37 deploy.
Executes ABAP Unit tests on a deployed object (program or global class) via SAP GUI Scripting and reports per-method pass / fail with a verdict gate. Opens the object in SE38 / SE24, triggers the ABAP Unit run (via the SE38/SE24 menu), and parses the result display. Closes the generate -> deploy -> activate -> TEST loop for /sap-gen-abap output (Z<PROGRAM_ID>_TEST) and works standalone on any brownfield object. GUI backend, verified on S/4HANA 1909. Results-only by default; with --with-coverage it ALSO measures code coverage (Unit Tests With Coverage), running the suite twice (counts + coverage) since the coverage display has no status-bar summary. The RFC backend (Z_AUNIT_RUN, Phase 2) does both in one headless call. Result/coverage component IDs are release-specific; if the skill emits NEEDS_RECORDING, record them once with /sap-gui-probe --record (see "Result parsing" below). Prerequisites: Active SAP GUI session (use /sap-login first); developer authorization to run ABAP Unit (S_DEVELOP on the object).
A guarded write-run-inspect REPL for SAP so the AI can empirically OBSERVE what the system does instead of guessing (the ABAP debugger is unreachable via GUI Scripting). `run` turns a question into a tiny read-only $TMP probe report, statically guards it (a hard REFUSE on any write / COMMIT / CALL TRANSACTION / SUBMIT / dynamic-write / file / lock construct), syntax- checks it headlessly, deploys it ($TMP, no transport), executes and captures the list, then auto-deletes it and verifies the deletion. `fm` calls a function module with a supplied parameter set and captures the exporting/tables result + wall-clock runtime, routing by TFDIR.FMODE (remote-enabled → direct RFC; classic → the dev-init wrapper). Lets gen-abap / fix-abap / diagnose verify SAP behaviour empirically. Every deploy and every FM call is confirm-gated (an FM may mutate and the skill cannot statically prove otherwise); `run` also refuses on a non-modifiable/production client. Prerequisites: /sap-login; for `run` a GUI session (deploy/execute
Lists and safely releases SAP enqueue locks (transaction SM12) over RFC — no GUI. Two modes. `list` (read-only) dumps current lock entries via ENQUEUE_READ with a computed lock AGE and a best-effort owner-liveness column, filterable by user / table / lock argument / client / age. `release` (destructive, gated) releases a stale lock ONLY after proving the owner has no session on ANY application server (a liveness gate that reads TH_SERVER_LIST + TH_USER_LIST, and TH_SYSTEMWIDE_USER_LIST on multi-instance systems), showing the lock evidence, requiring the operator to TYPE the owner's user name to confirm, deleting via ENQUE_DELETE, then re-reading to verify and writing an audit line. It hard-refuses whenever the owner is still live or liveness cannot be proven — there is no --force. Automates exactly the risky part of the daily "clear a stuck lock" op (the owner-death check operators get wrong on multi-instance systems), so it is safer than the manual SM12 path, not just faster. Use for: stuck / stale enqueue l
Resolves a modifiable SAP transport request, applying the way_to_get_transport_request policy from sap-dev-core settings.json. This is the single entry point that all deploy skills (sap-se11, sap-se38, sap-se37, sap-se24, sap-se91) call when they need a TR — it centralises the DEFAULT / ASK / CREATE_NEW flow so callers never have to ask the user themselves. When a new TR is required, delegates creation to /sap-se01 (GUI mode) or to its built-in RFC creator (CTS_API_CREATE_CHANGE_REQUEST). Honours rule_of_tr_description for the description text. An unverifiable or non-modifiable candidate TR is re-prompted per the policy loop — never silently replaced by a freshly created TR. Resolves Workbench requests by default, or Customizing requests (E070 TRFUNCTION='W') when called with --type customizing (used by /sap-sm30 and /sap-pfcg) — Customizing candidates are additionally validated for request class and client (E070C-CLIENT = the pinned client), and use a separate sap_dev_customizing_request default so one task
Insert or update records in SAP add-on tables (Y/Z prefix); DELETE is not automated on any method path (refused before touching data — drive SM30 manually for row deletion). Automatically detects the best method: 1. SM30 — if a maintenance view exists 2. SE16 — if DD02L-MAINFLAG = 'X' (direct table maintenance allowed) 3. ZCMRUPDATE_ADDON_TABLE — fallback program for any add-on table Requires SAP GUI with an active session. Uses RFC for detection.
Generates an ABAP CDS view (Core Data Services) from a spec or a natural-language description and deploys it to a live SAP system WITHOUT ADT — via the RFC-enabled installer FM Z_CDS_DDL_INSTALL (which hosts CL_DD_DDL_HANDLER_FACTORY). Emits classic DDL (DEFINE VIEW with @AbapCatalog.sqlViewName) on SAP_BASIS 7.50-7.54, and can emit view entities (DEFINE VIEW ENTITY) on 7.55+. Creates the DDL source (DDLS), registers its TADIR entry under a package, activates it (generating the SQL view for classic views), and verifies via RFC (TADIR / DD02L / DD25L). Also supports delete. Part of the D13 clean-core codegen lane. Phase 1 = basic / composite views; RAP behaviour definitions + OData binding are out of scope (demand-gated Phase 2). Prerequisites: SAP profile saved via /sap-login (RFC password required); SAP NCo 3.1 (32-bit, .NET 4.0) in GAC; SAP_BASIS >= 7.50; the installer FM Z_CDS_DDL_INSTALL present + Remote-Enabled (Step 3 bootstraps it if absent).
EXECUTES the retirement of unused custom objects a campaign flagged for decommission — turning "40-60% of custom code is unused" into a realized, audited deletion. /sap-cc-usage only FLAGS; this skill physically deletes, behind a hard signed gate and a per-object safety chain. Two actions: `plan` (behind the decommission_signoff gate — build the retirement worklist from scope.tsv, consumers before providers; nothing deleted) and `record` (after the delegated deletes, advance state + append the decommissioned.tsv audit ledger). Per object it re-verifies safety (no inbound callers, still resolves, not locked in another TR), backs up the source, resolves a TR, deletes via the routed workbench skill, and CONFIRMS it is physically gone before ledgering. Irreversible and transported to QA/PROD — never deletes without the sign-off, never ledgers an object it didn't confirm gone. Run after /sap-cc-usage. Prerequisites: scope.tsv with DECOMMISSION rows; SAP NCo 3.1 (32-bit); the source connection.
Remediates a migration campaign's TRIAGED R1 (mechanical) objects on the SANDBOX — the only sap-migrate skill that changes SAP, and only after a mandatory dry-run review. Four actions: apply — dry-run the deterministic R1 rule pack over each object's source → <obj>.after.abap + diff for the operator to review (this is the gate). assist — R2/R3: assemble a per-object AI context bundle for a recipe-faithful rewrite (never auto-applied; DRAFT patterns advisory-only). revert — roll a deployed fix back to its retained before-image (confirmed). record — after the operator deploys the approved fix + ATC re-check, advance campaign state (TRIAGED → REMEDIATED → VERIFIED). R1 is deterministic; R2/R3 and unclassified '?' objects are AI-assisted / human work, never auto-applied. Run after /sap-cc-triage. Prerequisites: downloaded source per R1 object; deploy via the workbench skills on the sandbox.