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...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add sapdev-ai/sap-dev --skill sap-evidence-pack --agent claude-codeInstalls 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 automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/sapdev-ai-sap-evidence-pack)More formats (shields.io, HTML) on the badges page.
---
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).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!