sap-activate-objectActivates 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, t
sap-api-advisorNatural-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'
sap-atcRuns 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 Mana
sap-call-bdcExecutes 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 conn
sap-change-packageChanges 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 automatic
sap-check-abapValidates 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:
sap-check-fixRoutes "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 dispa
sap-cmodManages 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 — f
sap-compareCompare 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). Program
sap-dev-cleanConservative 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
sap-dev-initInitializes 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 eac
sap-dev-statusRead-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, E0
sap-diagnoseIncident 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
sap-doctorRead-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), a
sap-enhancement-advisorFinds 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 sk
sap-error-kbCurate 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 sk
sap-evidence-packGenerates 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,
sap-explain-objectRead-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 targe
sap-file-transferTransfers 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
sap-fix-abapFixes 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-lengt
sap-fix-incidentCloses 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
sap-formsMakes the suite see SAP forms: SmartForms, SAPscript, and Adobe forms — inventory them with real usage evidence, read a 40-node form as a navigable tree/spec, and feed /sap-cc-* scope decisions with counts instead of anecdotes. inventory enumerates all three form families (STXFADM SmartForms, TADIR
sap-function-groupFull 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
sap-gitInstall-free, read-only git backend for custom ABAP: gives Z code the PR-style review, blame, readable TR diffs, and whole-package-on-disk that abapGit would — without installing abapGit (often politically impossible on customer systems) and without ever writing to SAP. snapshot serializes a PACKAGE
sap-gui-inspectInspects the currently active SAP GUI session — structurally and/or visually — so a stuck GUI script (unexpected popup, a control ID that moved between releases, a greyed-out field, a hung transition) can be understood. Two mode families: STRUCTURAL dumps component IDs + properties — `tree` (compone
sap-gui-probeDrive 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-gui-skill-scaffoldAuthor 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 b
sap-impact-analysisPre-change / pre-release impact analysis — answers "if I change this object, what else might break?" from SAP's system-maintained cross-reference index (not by parsing source, which is blocked, nor by driving the slow GUI where-used). Resolves the object, then gathers reverse dependencies (where-use
sap-jobManages ABAP background jobs on a live SAP system — schedule, list, status, log, spool, cancel, delete. Mode-aware: prefers the RFC fast-path (schedule via the RFC-enabled Z_RUN_REPORT; list/status via TBTCO; spool id via TBTCP; delete via BP_JOB_DELETE) and falls through to GUI (SM36 schedule / SM3
sap-log-analyzeSummarize 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. With --builds, instead reconstructs generated-ABAP builds from the same logs and reports
sap-loginOpens 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
sap-rfc-wrapperReaches 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
sap-run-abap-unitExecutes 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 ->
sap-run-reportExecutes 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/s
sap-scratch-runA 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 T
sap-se01Manages SAP transport requests via transaction SE01 (SAP GUI Scripting). Four modes: CREATE (default — a new Workbench TR, Customizing only when explicitly asked; description per userConfig.rule_of_tr_description; the new TRKORR is resolved locale-independently and echoed as RESULT_TR, unresolvable
sap-se11Creates 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 chec
sap-se14SE14 (DB Utility) for stuck DDIC tables — closes the gap /sap-se11 names but never implemented. check is a read-only RFC snapshot of DDIC-vs-DB consistency (DD02L active row + pending version, DWINACTIV inactive worklist, TBATG open conversion/DB-utility request with its state, DBDIFF DDIC/DB diff,
sap-se16nQueries 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,
sap-se19Full 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
sap-se21Creates, 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
sap-se24Deploys ABAP class/interface source to a SAP system via SE24 (SAP GUI Scripting) — creates or updates classes: existence check, source upload (full CLASS DEFINITION … IMPLEMENTATION … ENDCLASS via the source-code view), save, activate. Also three secondary modes on an existing class: check-and-fix (
sap-se37Deploys ABAP function module source to a SAP system via SE37 (SAP GUI Scripting) — creates or updates FMs: existence check, source upload (full FUNCTION … ENDFUNCTION include), save, activate. Also four secondary modes on an existing FM: check-and-fix ("fix FM" / "check and fix FM" with no source —
sap-se38Deploys ABAP source to a SAP system via SE38 (SAP GUI Scripting) — creates or updates programs: existence check, source upload (file path or pasted code), syntax check, save, activate, and (for Report type 1) selection-text update. Also three secondary modes on an existing program: check-and-fix ("f
sap-se41Manages 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 definit
sap-se51Maintains 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
sap-se54Generates 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 (
sap-se91Manages 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-pr
sap-sm12Lists 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` (destruct
sap-snroCreates, 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, cre
sap-sp02Downloads 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 th
sap-sql-queryRuns ONE governed, read-only database JOIN/aggregate over RFC and returns a TSV with provenance — closing the gap that SE16N and RFC_READ_TABLE (single-table only) leave, so "VBAK joined to VBAP where…", "open orders by plant with credit block" stop decaying into several exports + manual Excel match
sap-st22/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 con
sap-stmsMoves 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 / FATA
sap-traceAnalyzes 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- analys
sap-transport-readinessRelease gate for an ABAP transport request — answers "is this transport safe to release?" before it moves to QA / production. Resolves the TR (explicit number, or --current from the dev defaults), builds its object inventory from E071, and runs read-only RFC structural checks: unreleased child tasks
sap-transport-requestResolves 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
sap-update-addonInsert 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
sap-version-historyReads the SAP version store over RFC (no GUI) to answer "who changed this program/FM, when, and what exactly changed" — the same-system TIME axis that complements /sap-compare's cross-system axis. Three read-only modes: `list` (version directory via SVRS_GET_VERSION_DIRECTORY_46 with a TR-status joi
sap-vofmDiagnose SD condition-technique VOFM routines (pricing requirements + condition base/value formulas) — the notorious trap where a routine is registered but the generated include was never wired in by RV80HGEN, or the include+registry don't travel together in a transport, and you burn hours on "routi
sap-where-used-listRuns 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+Shi