← ClaudeAtlas

clean-core-checklisted

Check an ABAP object or package for clean core compliance — unreleased APIs, direct SELECT on SAP-owned tables, classic constructs disallowed in ABAP Cloud, modifications to SAP standard. Use when the user asks to audit, verify, or check clean core compliance, ABAP Cloud compatibility, released API usage, or extension point usage. Produces a categorised report with hard violations and soft warnings. Read-only — never writes back. Targets BTP ABAP Environment and S/4HANA on-prem in the ABAP Cloud development model.
matt1as/claude-abap-skills · ★ 27 · AI & Automation · score 77
Install: claude install-skill matt1as/claude-abap-skills
# abap-cloud-rap:clean-core-check Check an ABAP object or package for clean core compliance. Pulls the source from the connected system and produces a categorised compliance report with concrete remediation steps. ## What this command does You are auditing one or more ABAP objects for compliance with the **clean core** principles enforced by ABAP Cloud development model. The rules in `../CLAUDE.md` define what is allowed; this command finds what is not. Output is a structured report — **read-only**, no writes back. **Tool routing.** Read the `## Tooling` section in `../CLAUDE.md` before the first tool call. This skill is read-heavy, so most of its work lands on `arc-1`: | Step | Primary | Fallback | |---|---|---| | List the objects in scope | `arc-1` `SAPRead type=DEVC` (package) or `SAPSearch` | ask the user for the object list | | Read each object's source | `arc-1` `SAPRead` | ask the user to paste it | | Decide whether a consumed SAP API is released | `arc-1` `SAPRead type=API_STATE` — the authoritative C0–C4 contract state | ATC evidence below, else flag as *unverified* | | Corroborate with tool findings | `abap-adt` `abap_atc_run` + `abap_atc_get_result`, variant `ABAP_CLOUD_DEVELOPMENT_DEFAULT` | `arc-1` `SAPDiagnose action="atc"` | | Trace what a custom CDS view sits on | `arc-1` `SAPContext action="deps"` / `action="impact"` | read the source and follow `select from` by hand | `SAPRead type=API_STATE` replaces guesswork: **never assert that an SAP object is or