Skip to content
Back to skills

Sap Evidence Pack

ASecurity

Generates 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, ATC, check-abap, ABAP Unit, …) for a scope (TR / object / package), a ticket, or a date range, into one categorized pack folder + a human-readable index.md with an executive summary, a verdicts ta...

  • 7 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 5, 2026
toolsgoshellbash

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add sapdev-ai/sap-dev --skill sap-evidence-pack --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sap Evidence Pack?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sap Evidence Pack
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sapdev-ai-sap-evidence-pack/badge)](https://www.skillsdirectory.com/skills/sapdev-ai-sap-evidence-pack)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sap-evidence-pack
description: |
  Generates 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, ATC, check-abap,
  ABAP Unit, …) for a scope (TR / object / package), a ticket, or a date range,
  into one categorized pack folder + a human-readable index.md with an executive
  summary, a verdicts table, and — crucially — an honest "Missing evidence" section
  that states what was NOT produced instead of pretending everything was checked.
  Pure-local (reads the manifest + copies files); read-only w.r.t. SAP.
  Prerequisites: the other skills must have run first to register artifacts; SAP
  NCo 3.1 (32-bit) only when resolving an object name to a scope key.
argument-hint: "<TR> | <TYPE> <NAME> | PACKAGE <pkg> | --ticket <id> | --since <date>  [--output <dir>] [--include-logs]"
---

# SAP Evidence Pack Skill

You assemble a **delivery evidence pack** from artifacts the other
delivery-assurance skills registered in the artifact index. You collect and
summarize — you do NOT re-run checks. If little was checked, the pack says so.

Task: $ARGUMENTS

This is the fourth delivery-assurance skill. It is the aggregator that makes the
others' output credible — including, deliberately, by listing what is missing
(the "missing evidence" philosophy).

---

## Shared Resources

| File | Call | Purpose |
|---|---|---|
| `<SAP_DEV_CORE_SHARED_DIR>/rules/skill_operating_rules.md` | *(rule)* | Mandatory operating rules |
| `<SKILL_DIR>/references/sap_evidence_pack.ps1` | `-ScopeKey \| -Token \| -Ticket \| -Since [-OutputDir] [-IncludeLogs]` | The pure-local pack assembler |
| `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_artifact_lib.ps1` | dot-sourced by the engine | `Find-SapArtifacts` — the manifest query |
| `<SAP_DEV_CORE_SHARED_DIR>/scripts/sap_object_resolver.ps1` | *(only for object scopes)* | Resolve an object name → canonical scope key |

---

## Step 0 — Resolve Work Directory

```bash
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))"
```

```bash
cmd /c if not exist "{WORK_TEMP}" mkdir "{WORK_TEMP}"
```

Set `{RUN_TEMP}` = the per-run scratch dir (`Get-SapRunTemp` mints + creates `{work_dir}\temp\run_<id>`):
```bash
powershell -NoProfile -ExecutionPolicy Bypass -Command ". '<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_connection_lib.ps1'; Write-Output ('RUN_TEMP=' + (Get-SapRunTemp))"
```
Per the CLAUDE.md "Two-bucket temp model" write this skill's `_run.json` log state under `{RUN_TEMP}`.

---

## Step 0.5 — Start Logging

```bash
powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action start -StateFile "{RUN_TEMP}\sap_evidence_pack_run.json" -Skill sap-evidence-pack -ParamsJson "{}"
```

---

## Step 1 — Determine the Scope

Pick the query mode from `$ARGUMENTS`:

- **`TR <tr>`** → pass `-Token "TR <tr>"` (scope `TR_<tr>` derived locally — no SAP).
- **`PACKAGE <pkg>`** → pass `-Token "PACKAGE <pkg>"` (scope `PKG_<pkg>` — no SAP).
- **Object** (`<TYPE> <NAME>` or bare `<NAME>`) → the canonical scope key uses the
  TADIR object code (e.g. `PROG_ZMMR001`), so resolve it first with the object
  resolver, then pass `-ScopeKey`:
  ```bash
  C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_object_resolver.ps1" -Token "PROGRAM ZMMR001"
  ```
  Read the `OBJECT: ... object=<O> name=<N>` line → scope key is `<O>_<N>`.
- **`--ticket <id>`** → pass `-Ticket <id>` (collect everything tagged with that
  ticket; no scope needed, no SAP).
- **`--since <date>`** → pass `-Since <date>` (everything registered since; no SAP).

Flags: `--output <dir>` (pack location), `--include-logs` (include raw JSONL run
logs in the pack).

---

## Step 2 — Assemble the Pack

```bash
powershell -ExecutionPolicy Bypass -File "<SKILL_DIR>\references\sap_evidence_pack.ps1" -Token "TR THE_TR"
```

…or `-ScopeKey "PROG_ZMMR001"`, or `-Ticket "SAP-4821"`, or `-Since 2026-06-01`.
Append `-OutputDir`, `-IncludeLogs` as needed. This engine is pure-local — it
does not connect to SAP — so plain `powershell` is fine (32-bit not required).

Engine output:

```
EVIDENCE: scope=<key> artifacts=<n> missing=<m> missing_files=<k> pack=<dir>
INDEX_MD: <path>
```

Exit: `0` ok (even with 0 artifacts — it writes an honest "no evidence" pack) ·
`2` on error.

---

## Step 3 — Report

Open `INDEX_MD` and present:

1. **Scope** and **overall verdict** (rolled up from the collected artifacts —
   NO_GO wins over GO_WITH_WARNINGS wins over GO).
2. **What's in the pack** — the contents table (which skill produced what, with
   verdicts and coverage).
3. **Missing evidence** — read this section out explicitly. If `missing=<m>` is
   non-zero, name the gaps (e.g. "ATC was not run; no ABAP Unit results") and
   recommend the skill that would fill each:
   - missing `readiness_report` → `/sap-transport-readiness <TR>`
   - missing `impact_report` → `/sap-impact-analysis <obj>`
   - missing `atc_findings` → `/sap-atc <obj>`
   - missing `unit_results` → `/sap-run-abap-unit <obj>`
4. If any artifact files were **missing on disk** (`missing_files`), flag that the
   index references outputs that have been moved/deleted.

Do NOT overstate coverage. The pack is credible precisely because it is honest
about what was and was not checked.

---

## Final — Log End

```bash
powershell -ExecutionPolicy Bypass -File "<SAP_DEV_CORE_SHARED_DIR>\scripts\sap_log_helper.ps1" -Action end -StateFile "{RUN_TEMP}\sap_evidence_pack_run.json" -Status SUCCESS -ExitCode 0
```

---

## Scope & Limitations (MVP)

- **Collects, does not check.** The pack is only as complete as the artifacts the
  other skills registered. Empty index → honest "no evidence" pack.
- **Formats:** Markdown `index.md` + copied source artifacts (TSV/JSON/MD). HTML /
  PDF export, bilingual EN/JA/ZH summaries, signed-approval section, and
  ticket-system upload are Phase 2.
- **Object scope** needs the resolver (one RFC call) to get the canonical scope
  key; TR / package / ticket / date scopes are fully offline.
- **`--include-logs`** pulls raw JSONL run logs only if they were registered as
  `raw_log` artifacts (off by default to keep packs lean).

Files in this skill

  • README.md3.4 KB
  • SKILL.md6.5 KB
  • references/sap_evidence_pack.ps111.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.