
Claude Skills by sapdev-ai
github.com/sapdev-aiActivates 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. l...
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 th...
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.
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. 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 link...
Routes "check and fix" / "check" / "fix" requests for an existing SAP object to the correct workbench skill (sap-se38, sap-se37, sap-se24, or sap-se11) based on an explicit object-type keyword in the user's request. When no keyword is given, probes SE38 → SE37 → SE24 → SE11 (table → data type → domain) via the Display button to auto-detect the object type, then dispatches. Invoke when the user says any of: - "check and fix <kind> <name>" - "check <kind> <name>" - "fix <kind> <name>" where <k...
Manages SAP Enhancement Projects via CMOD and edits exit includes via SE38 using SAP GUI Scripting. Creates enhancement projects, assigns SAP enhancements (exits), and deploys ABAP source to exit includes. Existence check, project creation with enhancement assignment, and include source upload/activate. Prerequisites: Active SAP GUI session (use /sap-login first).
Conservative cleanup of the artefacts /sap-dev-init created. Walks reverse dependency order — wrapper FM, then DDIC structure + table type, then utility program, then function group, then package — and deletes only what the operator confirms. Skips any artefact whose dependents were extended by the operator (e.g. function group that contains user-added FMs, package that contains user-added Z* tables) unless --force is set. By default the transport request is left untouched (other work may liv...
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)...
Read-only status report for the sap-dev-init artefacts: transport request, package, function group, the wrapper FM Z_GENERIC_RFC_WRAPPER_TBL plus its DDIC parameter structure / table type, and the ZCMRUPDATE_ADDON_TABLE utility program. Queries via RFC (TLIBG, TDEVC, TFDIR, DD02L, DD40L, PROGDIR, E070, TADIR) and emits one parseable line per artefact plus a summary STATUS line. Auto-invokable as a pre-flight from any sap-dev skill — exit code 0 = healthy, 1 = gaps, 2 = RFC failure. Pure read-...
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...
Drive a SAP transaction step by step against a natural-language scenario, dumping each screen's full property tree via /sap-gui-object-details 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. Two safety modes:...
Author a new transaction-specific SAP skill from multiple natural-language scenarios. Runs /sap-gui-probe for each scenario, then merges the resulting probe folders into one coherent skill folder: SKILL.md with mode dispatch, one references/sap_<name>_<mode>.vbs per probe, parameter tokens derived by cross-probe diff (values that vary across probes become %%TOKEN%%; values that stay constant bake in), popup-branch guards at every step where any probe observed a wnd[1] popup. Output is a ready...
Summarize sap-dev JSONL log files. Aggregates per-skill counts, success/fail rates, p50/p95 duration, top error_class, and recent FAILED runs (with parent_run_id chain). Filters by --since / --skill / --status. Reads log_dir from sap-dev-core/settings.json.
Opens a SAP GUI connection and logs in using SAP GUI Scripting. Multi-profile connection store (Phase 4): save multiple SAP connections (different SID / Client / User / endpoint) at `{work_dir}\runtime\connections.json`, with passwords DPAPI-encrypted at rest. Picks the right one for this AI session via a 4-step identity compare and an AI-session pin. Also verifies SAP NCo 3.1 RFC connectivity (direct or load-balanced via MessageServer + LogonGroup + SystemID). Supports three connection metho...
Manages SAP transport requests via transaction SE01 using SAP GUI Scripting. Two modes: (a) CREATE — default. Creates a new TR. Defaults to Workbench (W); only creates Customizing (C) when the user explicitly asks. Description is rendered per userConfig.rule_of_tr_description (ASK/PATTERN/FIXED/ RANDOM) and truncated to the 60-char SE01 limit. After creation the VBS itself resolves the new TRKORR via SE16N on E070 (filter by AS4USER + AS4DATE today, sort by AS4TIME desc, first row with TRFUNC...
Creates and updates ABAP Dictionary objects in SAP via SE11 using SAP GUI Scripting. Supports all 9 DDIC object types: Database table, View, Data element, Structure, Table type, Type group, Domain, Search help, and Lock object. Uses tab-delimited definition files for structured input. Existence check, create or update, save, and activation. Also supports delete mode: when the user asks to delete a DDIC object (e.g. "delete table ZTABLE", "drop structure ZSTRUCT", "remove domain ZDOM"), routes...
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 marke...
Creates BAdI implementations via SE19 (New BAdI / Enhancement Framework) and deploys method source to the implementing class via SE24 using SAP GUI Scripting. Two-level creation: Enhancement Implementation (container) then BAdI Implementation (element) with implementing class. Uploads full class source via SE24 source-code-based view Upload menu. Prerequisites: Active SAP GUI session (use /sap-login first).
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 pac...
Deploys ABAP class source code to a SAP system via SE24 using SAP GUI Scripting. Creates new classes or updates existing ones. Existence check (SE24 Display), source upload via source-code-based view, save, and activation. Source is the complete class definition and implementation (CLASS ... DEFINITION through CLASS ... IMPLEMENTATION ... ENDCLASS). Also supports check-and-fix mode: when no source file is provided and the task is "fix Class" or "check and fix Class", opens the class in SE24, ...
Deploys ABAP function module source code to a SAP system via SE37 using SAP GUI Scripting. Creates new function modules or updates existing ones. Existence check (SE37 Display), source upload to the Source code tab, save, and activation. Source is the full function include (FUNCTION <name>. through ENDFUNCTION.). Also supports check-and-fix mode: when no source file is provided and the task is "fix FM" or "check and fix FM", opens the FM in SE37, runs a syntax check (Ctrl+F2), downloads the s...
Deploys ABAP source code to a SAP system via SE38 using SAP GUI Scripting. Creates new programs or updates existing ones. Includes program existence check (SE16N on TRDIR), source upload, syntax check, save, and activation. For Report programs (type 1), also updates selection text elements after activation. Source can be a file path or pasted ABAP code. Also supports check-and-fix mode: when no source file is provided and the task is "fix PGM" or "check and fix PGM", opens the program in SE38...
Deploys PF-STATUS (GUI status) definitions to a SAP system via SE41 using SAP GUI Scripting. Creates new statuses or updates existing ones with standard toolbar codes, function key assignments, save, and activation. SE41 has no Upload/Download for status definitions — function codes are entered field by field via a pipe-delimited definition file. Prerequisites: Active SAP GUI session (use /sap-login first).
Deploys screen (dynpro) flow logic to a SAP system via SE51 using SAP GUI Scripting. Creates new screens or updates existing ones. Existence check (SE51 Display), flow logic paste via Windows clipboard, save, and activation. Source is the flow logic text (PROCESS BEFORE OUTPUT / PROCESS AFTER INPUT blocks). 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 th...
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 / curren...
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, F2 to open contents, then Save (tbar[1]/btn[48]) — 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 ...
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). Hon...
Insert, update, or delete records in SAP add-on tables (Y/Z prefix). 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.
Runs SAP's Where-Used List (Verwendungsnachweis, Ctrl+Shift+F3) for any ABAP repository object across SE11, SE38, SE37, SE24, and SE91 — i.e. before deleting an object, find every program / class / FM / DDIC reference. Routes to the right initial screen by OBJECT_TYPE, fills the name, sends Ctrl+Shift+F3, ticks every scope on the popup, then branches: NOT_FOUND when SAP says no usages, FOUND_LIST when the list is rendered, or SPOOL_CREATED:<num> when called with TO_SPOOL=X (so the operator ca...
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming (variable conventions), type (DDIC type validity), unused (dead variables), sql (SELECT/UPDATE/DELETE fields vs table defs), contract (offline generation rules), spec (offline: code covers every dependency / message / text / selection field in the design spec), fm (CALL FUNCTION params / sections / types vs the live FM over RFC — absorbed from the former sap-check-fm), s...
Applies customer-specific normalisation rules to the extracted spec files in a work folder. Reads `spec_conversion_rules.tsv` (default at sap-dev-core/shared/tables/, override at {custom_url}/spec_conversion_rules.tsv) and rewrites the affected `_*.txt` files in place. Three rule categories: * field_rename — legacy field name → canonical name * type_rename — legacy DDIC type token → canonical token * flag_mapping — legacy flag value → one or more KEY=VALUE pairs Plus optional schema mig...
Reads a SAP design document (Excel .xlsx, Word .doc/.docx, PDF), or an existing work folder, and extracts structured information into separate text files by information type: program summary, domains, data elements, tables, error messages, text elements, and process logic. Input — any of: * Path to a design document (.xlsx / .doc / .docx / .pdf) — extract creates a fresh work folder, dumps the document to {doc_name}_raw.txt, then proceeds with structuring. * Path to an existing work folder c...
Edits the structural layout of a SAP design spec template (.xlsx) by writing to the workbook's `(Meta) Layout` sheet. Lets customers customize sheet names, column orders, and output mappings without editing Markdown rules or skill code. The meta sheet becomes the per-workbook source of truth that `/sap-docs-extract` reads on its next run. Operations: inspect Print the current layout in human-readable form. bootstrap Copy a `(Meta) Layout` sheet from the canonical `spec_template.xls...
Fixes ABAP source code issues found by sap-check-abap (all dimensions). Reads the check result file(s), builds a fix plan, and applies fixes: - NAMING violations: renames variables throughout the file - UNUSED variables: comments out declarations - SYNTAX-SAFE rewrites (SQL_STRICT_COMMA / line-length / DECL_ORDER) - CALL FUNCTION param fixes (UNKNOWN_PARAM rename / MISSING_MANDATORY stub / WRONG_SECTION move) from the `fm` dimension — absorbed from the former sap-fix-fm - SYNTAX errors: a bou...
Generates ABAP source code from a process text file ({doc_name}_process.txt) produced by sap-docs-extract. Supports generating: - Dialog/Module Pool programs - ABAP Reports (帳票/バッチ) - Function Modules / RFC Uses variable naming conventions from sap-dev-core/shared/tables/abap_naming_rules.tsv (or custom override from {custom_url}). Prerequisites: Run /sap-docs-convert and /sap-docs-extract first.
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).
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 (...
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, paste-ready shortlist of BAPIs / function modules / classes — with released state (S/4), interface + documentation for the top candidates, the team's known traps inlined, and a ready-to-paste CALL FUNCTION snippet. Reads the BAPI catalog (BAPI_MONITOR_GETLIST), TFDIR/TFTIT name+text, SEOCLASS, ARS_W_API_STATE (S/4 released state), FUPARAREF/FU...
Compare the SAME ABAP object across two SAP systems — the pinned connection (LEFT) and a second saved profile selected with --against <hint> (RIGHT). DDIC objects (table / structure / data element / domain / table type) are compared field-by-field over RFC on BOTH sides (DDIF_FIELDINFO_GET). Programs / includes / function modules are compared by source over RFC via RPY_PROGRAM_READ (sap_rfc_read_source.ps1). Emits a structured field diff (diff.json), a unified source diff, and an AI summary t...
Incident triage orchestrator for SAP support. From a single anchor (time window, user, transaction, background job, business-object key, or a known short-dump) it fans out across its read-only evidence readers — the internal RFC set (SM13 update-task failures, SM12 locks, SLG1 application log, SM37 jobs, SMQ tRFC/qRFC queues, Gateway/OData error-log preflight) plus the GUI dump reader /sap-st22 — correlates the evidence into incident clusters, and produces ranked root-cause hypotheses with a ...
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 fal...
Finds the safest extension point for a requested SAP behavior change and recommends which enhancement mechanism to use — so a project doesn't fail by modifying the wrong place (copying standard, editing a fragile exit, missing the right BAdI). Complements /sap-se19 (which IMPLEMENTS a BAdI): this skill DECIDES. Three auto-detected modes: inspect one BAdI / enhancement spot (classify classic/new/migrated + list implementations); inspect one SMOD enhancement (components + the CMOD projects usin...
Curate the team frequently_errors knowledge base — the per-object store of recurring FM / class-method / codegen mistakes that sap-gen-abap reads to steer generation away from known traps. Deploy skills (sap-se38/se37/se24) and sap-atc auto-record new FM/METHOD errors here as CANDIDATE rows; this skill lets a human review and promote them. Four operations: - list show CANDIDATE rows awaiting review (default; --all also shows CONFIRMED) - promote mark a CANDIDATE row CONFIRMED so it starts ...
Generates a reviewer / customer / audit-ready delivery evidence pack from the artifact index — answers "what did we change, how was it checked, and why is it safe?". It does NOT run checks; it COLLECTS what the other delivery-assurance skills already registered (transport-readiness, impact-analysis, ATC, check-abap, ABAP Unit, …) for a scope (TR / object / package), a ticket, or a date range, into one categorized pack folder + a human-readable index.md with an executive summary, a verdicts ta...
Read-only comprehension aid for an EXISTING ABAP object. Auto-detects the type (program / include / function module / class) via RFC, acquires the active source, resolves the include tree, and builds a structure + call/data map (units, PERFORM / CALL FUNCTION / CALL METHOD edges, DB read/write targets, SUBMIT / CALL TRANSACTION, selection screen); optionally pulls callers via /sap-where-used-list. Emits an explanation dossier + machine-readable map.json. Never modifies SAP. With --spec it enr...
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...
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 GUAR...