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…
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. With --builds, instead reconstructs generated-ABAP builds from the
$ npx -y skills add sapdev-ai/sap-dev --skill sap-log-analyze --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/sap-log-analyzeContext preview
The summary Claude sees to decide when to auto-load this skill.
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. With --builds, instead reconstructs generated-ABAP builds from the
name: sap-log-analyze description: 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. With --builds, instead reconstructs generated-ABAP builds from the same logs and reports first-pass-yield KPIs (gen/check/syntax/activation/ATC/ABAP-Unit) to a dashboard. Reads log_dir from sap-dev-core/settings.json.
Analyze JSONL log files produced by the shared sap-dev logger (`sap_log_lib.ps1` / `sap_log_lib.vbs`).
| Token / Path | Source | Purpose | |---|---|---| | `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | rule | Mandatory operating rules | | `<SAP_DEV_CORE_SHARED_DIR>/rules/language_independence_rules.md` | rule | GUI-scripting language independence — offline log analysis, but rule applies to skills whose logs this analyzes | | `<SAP_DEV_CORE_SHARED_DIR>` | placeholder | Resolves to `plugins/sap-dev-core/shared/` | | `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_build_kpi.ps1` | script | Builds-mode aggregator (`--builds`): reconstructs builds from the logs, computes first-pass-yield KPIs, writes `{work_dir}\metrics\{build_kpi.jsonl,dashboard.md}` | | `<SAP_DEV_CORE_SHARED_DIR>/rules/build_metrics.md` | rule | `sapdev.buildkpi/1` schema + KPI definitions + the gate-enrichment contract | | sap-dev-core `settings.json` | `userConfig.work_dir`, `userConfig.log_dir` | Locates log directory |
/sap-log-analyze /sap-log-analyze --since 2026-04-01 /sap-log-analyze --skill sap-se11 /sap-log-analyze --status FAILED /sap-log-analyze --since 2026-04-01 --skill sap-se38 --status FAILED --top 20 /sap-log-analyze --csv C:\sap_dev_work\temp\log_summary.csv /sap-log-analyze --builds /sap-log-analyze --builds --since 2026-06-01
Flags:
one generated-ABAP build per logical generate→check→deploy→ATC→unit-test run and report first-pass-yield KPIs + a dashboard. Honours `--since`. See `<SAP_DEV_CORE_SHARED_DIR>/rules/build_metrics.md`.
**Resolve `work_dir` via the env-aware helper** — do NOT take `work_dir` from a direct `settings.json` read (that ignores the `SAPDEV_AI_WORK_DIR` env var and `userconfig.json`). Use the `WORK_DIR=` value printed by:
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))"The settings note below still applies to the OTHER keys (`log_dir`, …).
**Settings reads/writes follow `shared/rules/settings_lookup.md`** — merge per-key on the `.value` field (env var → `settings.local.json` → `userconfig.json` → `settings.json`); non-per-connection writes go to `userconfig.json`. Read:
If `log_dir` does not exist, report "no logs found" and stop.
Parse the user message for `--builds`, `--since`, `--skill`, `--status`, `--top`, `--csv`. Defaults: `--top 10`, no other filters.
**If `--builds` is present, go to Step 1.5 and skip Steps 2-4** (builds mode is a distinct report — it does not also print the per-skill log summary).
Reconstruct generated-ABAP builds from the same logs and report first-pass-yield KPIs. This is the offline aggregator described in `<SAP_DEV_CORE_SHARED_DIR>/rules/build_metrics.md`; it reads only the logs (no SAP), and its only writes are the derived report under `{work_dir}\metrics\` (`build_kpi.jsonl` + `dashboard.md`) — analogous to `/sap-cc-campaign report`.
powershell -NoProfile -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_build_kpi.ps1" -LogDir "<log_dir>" [-Since <YYYY-MM-DD>]
Echo the script's stdout (the `BUILD:` / `METRIC:` / `GROUP:` grammar lines) verbatim, then show the `dashboard.md` path it reports and offer to display the dashboard. If the script prints `INFO: no gate events found`, tell the user no generated-ABAP builds have been logged yet (the KPIs need at least one run of the gate skills — sap-gen-abap / sap-check-abap / sap-se38 / sap-atc / sap-run-abap-unit — since their build-KPI enrichment shipped). Then stop.
Run `<SKILL_DIR>\references\sap_log_analyze.ps1` with the resolved log directory and any filter flags:
& "<SKILL_DIR>\references\sap_log_analyze.ps1" `
-LogDir <log_dir> `
[-Since <YYYY-MM-DD>] `
[-Skill <name>] `
[-Status <code>] `
[-Top <N>] `
[-CsvPath <path>]The script prints four sections to stdout:
1. **Overall** — total records, file count, date range covered, total runs (start records). 2. **Per-skill summary** — table: skill / runs / SUCCESS / FAILED / SKIPPED / EXISTED / ABANDONED / p50_ms / p95_ms. 3. **Top error_class** — table: error_class / count / last_seen / sample skills. 4. **Recent FAILED runs** — table: ts / skill / run_id / parent_run_id / error_class / error_msg (truncated 80 chars).
Echo the script output verbatim to the user.
If `--csv` was supplied, the script writes the per-skill summary to that path. Confirm the path back to the user.
are silently skipped (counted as `bad_
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…