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…
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,
$ npx -y skills add sapdev-ai/sap-dev --skill sap-gen-test-plan --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-gen-test-planContext preview
The summary Claude sees to decide when to auto-load this skill.
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,
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.
Repo: sapdev-ai/sap-dev
Activates an inactive SAP repository object via SAP GUI Scripting. Routes to the correct transaction by object type: SE38 for reports/programs/function- group…
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,…
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…
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…
Changes the package (TADIR-DEVCLASS) assignment of an SAP repository object via the "Object Directory Entry" dialog (Goto > Object Directory Entry). Routes by…
Validates ABAP source (report / program / FM / class / include) before deployment — one skill, dimension-dispatched: naming (variable conventions), type (DDIC…