sap-activate-object
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Turns a design-spec work folder (_process.txt / _golden.txt / _errorMsgs.txt from /sap-docs-extract) or an /sap-explain-object dossier into a reviewer-ready FUNCTIONAL test plan — cases per process step, exactly one negative case per validation rule wired to its error message,
Claude Code
$ npx -y skills add sapdev-ai/sap-dev --skill sap-gen-test-plan --agent claude-code
Codex
$ npx skills add sapdev-ai/sap-dev --skill sap-gen-test-plan -a codex -y
Cursor
$ npx skills add sapdev-ai/sap-dev --skill sap-gen-test-plan -a cursor -y
Gemini CLI
$ npx skills add sapdev-ai/sap-dev --skill sap-gen-test-plan -a gemini-cli -y
GitHub Copilot
$ npx skills add sapdev-ai/sap-dev --skill sap-gen-test-plan -a github-copilot -y
OpenCode
$ npx skills add sapdev-ai/sap-dev --skill sap-gen-test-plan -a opencode -y
Windsurf
$ npx skills add sapdev-ai/sap-dev --skill sap-gen-test-plan -a windsurf -y
name: sap-gen-test-plan description: | Turns a design-spec work folder (_process.txt / _golden.txt / _errorMsgs.txt from /sap-docs-extract) or an /sap-explain-object dossier into a reviewer-ready FUNCTIONAL test plan — cases per process step, exactly one negative case per validation rule wired to its error message, boundary cases per selection field, and a case<->step<->rule<->message traceability matrix — closing the gap where the spec's Golden Tests sheet feeds ONLY ABAP Unit generation and nobody derives the functional plan, so QA re-derives cases by hand and error paths go untested. Offline-first: pure derivation + rendering (md, or xlsx via anthropic-skills:xlsx). An optional --validate flag adds a read-only RFC pass that confirms every referenced message (T100/T100A), table (DD02L), tcode (TSTC), and FM (TFDIR), pulls DD03L key fields into test-data templates, and upgrades provenance INFERRED->VERIFIED (with MISMATCH/NOT_FOUND surfaced as findings, tri-state COULD_NOT_CHECK honesty). Every message is mapped to a provoking case or lands in UNMAPPED (verdict WARN, never dropped); a case is CONFIRMED (spec-traceable) or INFERRED (model-derived) and no path flips that without a live read. Read-only; no SAP writes, no confirm gates. Prerequisites: a spec work folder or an object dossier; for --validate a pinned RFC profile via /sap-login + NCo 3.1 (32-bit). argument-hint: "<work_folder | OBJECT | dossier_dir> [--format md|xlsx|both] [--validate] [--out <dir>]"
You derive a functional test plan from a spec or an object dossier: a case per process step, one negative case per validation rule mapped to its message, boundary cases per selection field, and a full traceability matrix — with honest coverage (UNMAPPED / UNCOVERED are shown, never hidden) and an optional live-RFC grounding pass. You never write to SAP.
Task: $ARGUMENTS
The derivation is **yours** (steered by `references/test_case_derivation_rules.md`); the `--validate` RFC pass and the rendering helpers are scripts.
---
| File | Token / call | Purpose | |---|---|---| | `<SKILL_DIR>/references/test_case_derivation_rules.md` | read by Claude | Case-derivation checklist + provenance rules | | `<SKILL_DIR>/references/test_plan_template.md` | read by Claude | Canonical section/sheet layout | | `<SKILL_DIR>/references/sap_testplan_validate.ps1` | `-InFile -OutTsv` | The --validate RFC backend (Layer 2) | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_object_resolver.ps1` | dot-sourced / CLI | Object resolution (dossier mode + validate connect) | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | dot-sourced | `Register-SapArtifact`, scope key | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_finding_lib.ps1` | dot-sourced | `New-SapFinding` for MISMATCH/NOT_FOUND | | `/sap-explain-object` | sub-skill | Dossier acquisition (`--spec`) in from-dossier mode | | `anthropic-skills:xlsx` | sub-skill | `--format xlsx\|both` rendering | | `/sap-login` | sub-skill | Pinned RFC profile (only for `--validate`) |
---
powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_settings_lib.ps1'; . '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('WORK_DIR=' + (Get-SapWorkDir)); Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_gen_test_plan_run.json" -Skill sap-gen-test-plan -ParamsJson "{}"---
offer `/sap-explain-object <OBJ> --spec` (read-only) and consume its output (v1.5 auto-invoke).
Flags: `--format md|xlsx|both` (default md), `--validate`, `--out <dir>`.
`# === PROCESS ===` banners (a banner-less file = one PROCESS block, degraded, WARN). `_process.txt` is MANDATORY (abort `TESTPLAN_INPUT_INCOMPLETE` if absent/empty); WARN on missing `_golden.txt` / `_errorMsgs.txt`. Optional enrichers: `_interface.txt`, `_selection_definition.txt`, `_tables.txt` + `table_data_*.txt`, `_deps.txt`.
selection screen, message usages).
Build the internal model: `steps[]`, `validation_rules[]`, `messages[]`, `golden_rows[]`, `selection_fields[]`, `tables[]`.
Follow `references/test_case_derivation_rules.md` exactly: import golden rows (CONFIRMED); one positive case per step (CONFIRMED); one negative case per validation rule wired to its `ERR_MSG_REF` (CONFIRMED); boundary cases per selection field + defensible edge cases (INFERRED). Assign `TC-###` ids.
Map every message to >=1 provoking case; build the case<->step<->rule<->message matrix; collect `UNMAPPED` messages and `UNCOVERED` steps. Never drop either — they downgrade the verdict to WARN.
From golden INPUTS + `_tables.txt` + `table_data_*.txt` (+ map.json db_reads) list per-table prerequisites (table, purpose, key template, rows needed, source).
Write the facts to check into `{RUN_TEMP}\validate_in.tsv` (one `<kind>\t<name>\t<sub>` per line: `msg`+MSGID+MSGNO for every referenced message, `table`/`tcode`/`fm` for prerequisites, `keyfields`+TABNAME for every test-data table), then run via **32-bit PowerShell**:
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\p
SAP development automation skills for AI coding assistants. Windows-only — the skills drive SAP GUI for Windows via GUI Scripting (plus optional RFC via SAP NCo); there is no macOS/Linux path.
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for…
Natural-language SAP API discovery over RFC (no GUI): turn a goal like "create a sales order" or "post a goods movement" into a…
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),…
Executes BDC (Batch Data Communication) sessions in SAP via RFC. Reads SHDB recording files from the bdc/ folder, connects via…
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto >…
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.