sapdev-ai
OrganizationSAP GUI automation plugins for AI coding assistants
Categories
Indexed Skills (49)
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 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).
sap-atc
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-record if your release uses different tree node IDs / grid column IDs. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-call-bdc
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.
sap-change-package
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 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).
sap-check-fix
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 <kind> is one of: report / program / pgm, function module / fm, class / interface / method, dictionary / ddic / table / structure / view / data element / domain / table type / type group / search help / lock object, or omitted entirely. Prerequisites: Active SAP GUI session (use /sap-login first). Does not deploy new objects — the target object must already exist in the SAP system.
sap-cmod
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).
sap-dev-clean
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 live in it). Settings.json keys are preserved unless --settings is passed, so a follow-up /sap-dev-init re-creates the same names. The canonical "blow away and rebuild" sequence is: /sap-dev-clean ; /sap-dev-init. Prerequisites: Active SAP GUI session (use /sap-login first); SAP NCo 3.1 (32-bit, .NET 4.0) in GAC. Clean delegates to GUI-driven delete skills like /sap-se37, /sap-se11, /sap-se38, /sap-function-group, /sap-se21.
sap-dev-init
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.
sap-dev-status
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-only; never modifies the SAP system. Prerequisites: SAP NCo 3.1 (32-bit, .NET 4.0) in GAC.
sap-function-group
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.
sap-gui-diagnose
Visual triage for SAP GUI scripts that hit unexpected screens (script hung, "control could not be found by id", or an unrecognised popup). Captures a BMP screenshot of every visible window in the active SAP GUI session via the Scripting API's HardCopy method, composes them into a single annotated PNG that mimics the operator's screen, and optionally chains to /sap-gui-object-details so the orchestrator gets both a visual and a structural view of the same state. The orchestrator (Claude) reads the resulting PNG with the Read tool and reasons about the next action. Pairs with /sap-gui-object-details: this skill is the visual view, that one is the structural view. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-gui-object-details
Inspects components in the currently active SAP GUI session and dumps their IDs and properties. Five modes: full component tree of all windows or a specific window, menu-bar tree, type filter (e.g. all GuiButton, GuiShell, GuiStatusbar, GuiTableControl, GuiMenu, GuiToolbar), or full property dump of a single component by ID. Useful when SAP GUI scripts get stuck because the screen flow did not go as expected (e.g. an unexpected popup appeared, a control ID changed between releases, or a field is greyed-out for unclear reasons). Other skills can call this skill mid-flow to discover the actual current screen state. Prerequisites: Active SAP GUI session (use /sap-login first). RZ11 parameter `sapgui/user_scripting` must be TRUE on the SAP server.
sap-gui-probe
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: * mode=confirm (default) -- read-only actions auto-proceed; write actions (Save / Activate / Delete and the matching VKey codes 11, 14, 27, 28, 33) pause for explicit user confirmation. * mode=auto -- opt-in via trailing `--auto` flag in the scenario; every action proceeds without prompting. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-gui-record
Guides the user to record SAP GUI interactions using the built-in Script Recording and Playback feature, then reads the recorded VBS file to extract component IDs (findById paths), actions, and field names. Includes a comprehensive SAP GUI Scripting API quick reference with component type prefixes, VKey code mappings, and common shell control methods. No SAP login or VBS templates required — the user performs recording manually.
sap-gui-skill-scaffold
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-to-test draft. Prerequisites: active SAP GUI session (use /sap-login first).
sap-login
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 methods: SAP Logon pad entry name (OpenConnection), load-balanced /M/<msrv>/G/<grp>/S/<sid> string, and direct /H/<host>/S/<port>. Checks existing sessions first; reuses the active connection when it matches the saved default. Prerequisites: SAP GUI installed, SAP GUI Scripting enabled (client + server).
sap-rfc-wrapper-class
Generates an RFC wrapper function module for a non-RFC-callable ABAP class method. Reads the class method's parameter interface from SEOPARAM/SEOEXCEP via RFC_READ_TABLE, generates a deployable ABAP function module that internally calls the class method, and deploys it via /sap-se37. The generated FM name follows the pattern Z_CLSWRP_<CLASS>_<METHOD> (truncated to 30 chars). Prerequisites: SAP profile saved via /sap-login (RFC password required). SAP NCo 3.1 (32-bit, .NET 4.0) in GAC. Active SAP GUI session (use /sap-login first) for the /sap-se37 deploy sub-step.
sap-rfc-wrapper-fm
Calls a non-RFC-enabled SAP function module via Z_GENERIC_RFC_WRAPPER_TBL. Reads the target FM's interface using RPY_FUNCTIONMODULE_READ_NEW, validates user-supplied parameter values, builds asXML payloads, invokes the wrapper FM via direct RFC, and returns the deserialized output parameters. Prerequisites: SAP profile saved via /sap-login (RFC password required). SAP NCo 3.1 (32-bit, .NET 4.0) in GAC. Z_GENERIC_RFC_WRAPPER_TBL must already exist in the SAP system (deploy via /sap-dev-init).
sap-se01
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 TRFUNCTION K or W) and echoes `INFO: TRKORR=<...>`. (b) RELEASE — invoked as `/sap-se01 release <TR>`. Releases the TR (and any open tasks) via SE01 Transport Organizer (Display + F9 loop). Asks the user for explicit confirmation before releasing — release is irreversible. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-se11
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 by object type to the correct SE11 radio + name field, presses Shift+F2 from the initial screen, confirms via btnSPOP-OPTION1 (Yes), handles dependent-object and post-delete TR popups, and verifies removal. Deletion is irreversible — the skill asks for explicit confirmation before running the VBS. For database tables, SE14 is the canonical drop path; this skill flags the SE14 fallback if the SE11 delete leaves the table in place. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-se16n
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. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-se19
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).
sap-se21
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).
sap-se24
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, runs a syntax check (Ctrl+F2), downloads the source, fixes all errors, re-uploads, and activates the class (Ctrl+F3). Also supports change-properties mode: when the user asks to change a class's Description, Program Status, Category, or other Properties-dialog fields, opens SE24 in Display, opens the Properties dialog (Goto > Properties), toggles to change mode, updates the supplied fields, then Continues + Saves. Handles the conditional original-language popup and the post-save Workbench-request popup per `/sap-transport
sap-se37
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 source, fixes all errors, re-uploads, and activates the FM. Also supports change-attributes mode: when the user asks to change a function module's Short Text or Processing Type (Regular / Remote-Enabled / Update Module + update kind), opens SE37 in change mode, selects the Attributes tab, updates the supplied fields and saves. Handles the conditional original-language popup and the post-save Workbench-request popup per `/sap-transport-request`. Also supports reassign-function-group mode: when the user asks to move a functi
sap-se38
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, runs a syntax check (Ctrl+F2), downloads the source, fixes all errors, re-uploads, and activates the program (Ctrl+F3). Also supports change-attributes mode: when the user asks to change a program's Title, Status, Type, or other header attributes (no source involved), opens the SE38 Attributes dialog and updates only the supplied fields. Handles the SAPLSETX original-language popup (only shown when logon language differs from MASTERLANG) and the post-save Workbench request popup per `/sap-transport-request`. Also suppor
sap-se41
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).
sap-se51
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).
sap-se54
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).
sap-se91
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).
sap-snro
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).
sap-sp02
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 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-transport-request
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. Prerequisites: SAP profile saved via /sap-login (RFC password required). SAP NCo 3.1 (32-bit, .NET 4.0) in GAC for RFC paths; active SAP GUI session (use /sap-login first) is additionally required when way_to_get_transport_request=CREATE_NEW delegates creation to /sap-se01 (GUI).
sap-update-addon
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.
sap-where-used-list
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 can chain into /sap-sp02 to download the list). Pure read-only — never modifies the SAP system. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-check-abap
Validates ABAP source code quality before deployment. Checks: (1) Variable naming conventions against shared rules file, (2) Data type validity via SAP Dictionary (DDIF_FIELDINFO_GET / DDIF_DTEL_GET), (3) Unused variable detection, (4) SQL field validation — checks SELECT/UPDATE/DELETE field names against table definitions. Writes a tab-delimited result file with fix advice for each issue. SAP connection is optional — offline mode skips type and SQL field validation. Prerequisites: SAP GUI installed (provides SAP.Functions 32-bit COM object).
sap-check-fm
Validates ABAP CALL FUNCTION statements in ABAP source code against the actual function module parameter definitions retrieved via RFC. Checks parameter names (unknown, missing mandatory, wrong section) and data types (compatibility of the passed variable's type with the FM parameter type). For structure parameters, validates every component field by field. Uses RPY_FUNCTIONMODULE_READ_NEW to get FM definitions, DDIF_FIELDINFO_GET for structure/table type details, and DDIF_DTEL_GET for data element details. Prerequisites: SAP GUI installed (provides SAP.Functions 32-bit COM object).
sap-docs-check-ddic
Validates DDIC objects (domains, data elements, tables) extracted from a design document. Checks naming conventions, data type validity, and cross-references between domains, data elements, and table fields. Optionally verifies existence in SAP system via RFC_READ_TABLE on DD01L/DD04L if SAP login info is provided. Input: work folder path containing {doc_name}_domains.txt, _dataElements.txt, _tables.txt Output: {work_folder}/check_result_ddic.txt
sap-docs-check-process
Validates the process logic text file ({doc_name}_process.txt) before ABAP code generation. Checks for unclear/ambiguous parts and inconsistencies in the process logic. Outputs a TAB-separated result file for Excel review. Input: work folder path containing {doc_name}_process.txt Output: {work_folder}/check_result_process.txt
sap-docs-convert
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 migration (legacy customer YAML/TSV layout → Customer Brief layout). Input: work folder containing the extracted `_*.txt` files (output of /sap-docs-extract). Output: same files rewritten in place; a `.pre-convert/` snapshot is taken first. This skill is OPTIONAL — projects already authoring specs in Customer Brief format can skip it entirely.
sap-docs-extract
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 containing {doc_name}_raw.txt. * Path to a {doc_name}_raw.txt file directly. Output: Multiple {doc_name}_*.txt files written to the work folder. Existing files with the same names are silently overwritten without any user confirmation or logging. Optionally chain /sap-docs-convert afterwards to apply customer-specific normalisation rules. If the input file format is not one of .xlsx, .doc, .docx, or .pdf (and is not an existing work folder or `_raw.txt` file), abort with the error: "ERROR: Unsupported file format."
sap-docs-layout
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.xlsx` into a workbook that doesn't have one. add-column Add a column to a section. Updates xlsx + meta in one step. rename-sheet Rename a sheet and update meta so the parser still finds it. validate Reconcile the meta sheet against actual workbook structure. Input: workbook path + operation + op-specific args. Output: in-place modifications to the .xlsx file. A timestamped backup is written next to the original before any write operation.
sap-fix-abap
Fixes ABAP source code issues found by sap-check-abap. Reads the check result TSV, builds a fix plan, and applies fixes: - NAMING violations: renames variables throughout the file - UNUSED variables: comments out declarations - TYPE_NOT_FOUND: flagged for manual review (not auto-fixable) Creates a timestamped backup (.bak) before modifying the source file. Prerequisites: Run sap-check-abap first to produce the result TSV.
sap-fix-fm
Fixes ABAP CALL FUNCTION parameter issues found by sap-check-fm. Reads the sap-check-fm result file, reconnects to SAP to retrieve correct FM parameter definitions, then proposes and applies fixes: - UNKNOWN_PARAM: renames wrong parameter names to the correct FM parameter names - MISSING_MANDATORY: inserts stub lines for missing mandatory parameters - WRONG_SECTION: moves parameter assignments to the correct keyword section Creates a timestamped backup (.bak) before modifying the ABAP source file. Prerequisites: SAP NCo 3.1 (32-bit, .NET 4.0) installed in GAC. Run sap-check-fm first to produce the result file.
sap-gen-abap
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.
sap-bp
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).
sap-mm01
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).
sap-va01
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. Prerequisites: Active SAP GUI session (use /sap-login first).
sap-log-analyze
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.
Bio shown is the top-scored skill's repo description as a fallback — real GitHub bios land in a future update.