Project Kernseife
A custom ABAP Test Cockpit check that scores how custom code uses SAP objects against a classification the customer writes, as a measure of clean core technical debt.
An ATC check installed into an ABAP system beside SAP's own, built as an enhanced version of the standard "Usage of APIs" check from SAP Note 3565942, with the classification it scores against supplied as JSON instead of fixed. The sources come in with abapGitabapGitA Git client written in ABAP that runs inside the system, so objects are cloned, pulled and pushed without leaving it; with no package manager in ABAP, a cloned repository is how code is distributed.community org, abap as an offline repository, usually into a local package; the category ZKNSF_CL_CI_CATEGORY and the check ZKNSF_CL_API_USAGE are then selected in Code Inspector and the "Kernseife: Usage of APIs" check activated in a check variant. The classification JSON is uploaded into the system with report ZKNSF_CLASSIFICATION_MANAGR; a default file ships with the project, built from the Cloudification RepositoryCloudification RepositorySAP's list of released APIs for SAP Cloud ERP, with the successors of the objects that are not released — the content the ABAP test cockpit's cloud readiness and clean core checks are pointed at.sap official, abap as of 2025-05-21 and described by the maintainers as a starting point for an installation. With the "Track Language Version" option set on the check variant, a run also records each custom object's ABAP language version, which is what the level concept needs, and the results leave the system through CDS view ZKNSF_I_EXPORT as CSV. It raises and scores findings; deciding what to do with the objects it flags stays with the developer.
Facts
Where it sits
Who is behind it
In the atlas: maintains 139, wrote 14@SAPmaintainerAjinkya PatilContributes to this
In the atlas: contributes to 113@ajinkyapatil8190andreasmuensterContributes to this
In the atlas: contributes to 3@andreasmuensterDaniel HuserContributes to this
In the atlas: contributes to 3@daniel-huserFabian LehmannContributes to this
In the atlas: contributes to 5@fabianlehThomas KaltbeitzelContributes to this
In the atlas: contributes to 1@kalti-enbwThomas KaltbeitzelContributes to this
In the atlas: contributes to 1@kaltiLik WeiContributes to this
In the atlas: maintains 1, contributes to 5@likweitanLukas BretschneiderContributes to this
In the atlas: contributes to 2@LukasBretschneiderMarkusContributes to this
In the atlas: contributes to 4@Markus1812Markus KapferContributes to this
In the atlas: contributes to 2@mrkskpfr10 contributors
Before choosing this
Conditions
PracticalFunctional boundary
It runs on an ABAP Test Cockpit on SAP S/4HANA 2023 or higher with SAP Notes 3565942, 3630552 and 3710789 implemented, so a system below that line or without those notes cannot carry it. The maintainers state they have no second S/4 system to test against older versions of the ATC note.
What it declares
Every artifact
- Type
- Package
- Origin
- By SAP
As a package
- Where it runs
- does not say
- Distributed through
- does not say
Parts and add-ons
Parts 1
Connections
Whether code can run in ABAP Cloud, and what to do when it cannot
Catching problems in code before execution
Git client written in ABAP that runs inside the system
SAP's ERP suite, run on-premise or as a private cloud edition, with its business data and processes reached over OData, RFC and the ABAP platform. For the things here it is the system a tool reads from or writes to. The public cloud edition is its own entry.
Holds the custom classification and reports imported ATC findings
Download
Learn more
- Taking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP ToolsTaking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP ToolsWalks through how SAP's standard path classifies custom ABAP extensions into Clean Core Levels A through D, running ABAP Test Cockpit against the Cloudification Repository's release status for each SAP object an extension touches, then feeding results into the RISE with SAP Methodology Dashboard in SAP Cloud ALM. Contrasts that with Project Kernseife, an open-source custom ATC check that lets a team override SAP's classification with project-specific rules, define its own successor objects (including custom wrappers), and expose a Score and Potential Score per finding through a CDS view for prioritizing cleanup — at the cost of owning and maintaining that classification. States which situations favor each: Kernseife where the standard rules are too rigid for the project's reality, the standard dashboard where cross-system comparability and low maintenance effort matter more.LBretschneider, published 2025-11-04LBretschneider, SAP Community
README
quoted from SAP/project-kernseife under Apache-2.0, read🧼 Project Kernseife
Tip
In case of issues please check the FAQ. Feel free to open an issue in case there is no solution. Keep in mind: This is an open-source project.
Caution
Version 1.5.x is out with major authorization changes for the BTP App. Please checkout the Release Information for details.
📖 About this project
Project Kernseife is an open-source custom ABAP Test Cockpit (ATC) Check for ABAP systems that enables you to flexibly score the usage of SAP objects in your system, e.g. to score the technical debt regarding clean core based on a custom, adjustable classification. This check is an enhanced version of the "Usage of APIs" Check (see SAP Note 3565942), where you can introduce a custom classification in a JSON format. A description of the classification can be found in the Classification Guide. More details on the idea behind this tool can be found in two blog posts in SAP Community:
- Project Kernseife - improving the measurement of Clean Core in ABAP
- Taking Control of Clean Core: When to Use Project Kernseife in addition to Standard SAP Tools
🚀 Requirements and Setup
Note: we migrated all the guides to the Github Wiki for easier maintenance.
🤲 Contributing
Please refer to our Contribution Guidelines.
🤝 Support & Feedback
This project is open to feature requests/suggestions, bug reports etc. via GitHub issues.
🔒 Security / Disclosure
If you find any bug that may be a security problem, please follow our instructions at in our security policy on how to report it. Please do not create GitHub issues for security-related doubts or problems.
📜 Code of Conduct
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone. By participating in this project, you agree to abide by its Code of Conduct at all times.
⚖️ Licensing
Copyright 2025 SAP SE or an SAP affiliate company and project-kernseife contributors. Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.
Others providing
- @abap2ui5/linter@abap2ui5/linterA command line that checks an abap2UI5 app class together with the UI5 view its builder chain produces, with no SAP system and no UI5 project.community org, abapCommand-line checker for abap2UI5 app classes and their viewsfrom ABAP
- abap2UI5 Playgroundabap2UI5 PlaygroundABAP in the editor on the left and the abap2UI5 app it builds on the right, both inside one browser tab: the framework is transpiled to JavaScript at build time and the class in the editor is compiled when Run is pressed.community org, abapIn-browser ABAP editor beside the abap2UI5 app it buildsfrom ABAP
- abapcdsgrammarabapcdsgrammarAn ANTLR4 grammar for ABAP CDS, with the lexer and parser generated from it, so CDS source can be read as a parse tree outside a system.independent, abapANTLR4 grammar, lexer and parser for ABAP CDSfrom ABAP
- @abapify/acds@abapify/acdsA parser for ABAP CDS DDL source — tokenizer, parser and a typed AST covering tables, structures, simple types, service definitions and metadata extensions.independent, abapParser for ABAP CDS DDL source with a typed ASTfrom ABAP
- abaplint-sci-clientabaplint-sci-clientThe ABAP-side client that hands objects to the abaplint Server, so the checks of abaplint surface inside SAP Code Inspector, ABAP Test Cockpit and abapGit.community org, abapABAP client surfacing abaplint checks in Code Inspector and ATCfrom ABAP
- abaplintabaplintStatic analysis for ABAP that runs outside a system on serialised source in a repository, so ABAP checks run in a pull request and in CI before the code ever reaches a system.community org, abapStatic analysis for ABAP source outside a systemfrom ABAP
- BellaBellaAn Eclipse plugin that puts Claude into ABAP Development Tools: explain, generate, rework and implement from the editor's context menu, completion as ghost text, and a chat whose tools reach the system through the developer's existing ADT logon.independent, abapEclipse plugin bringing Claude into ABAP Development Toolsfrom ABAP
- abapOpenChecksabapOpenChecksAn open-source rule pack for SAP Code Inspector and ABAP Test Cockpit, installed via abapGit and activated as a check variant.independent, abapOpen-source rule pack for SAP Code Inspector and ATCfrom ABAP
- upDOWNciupDOWNciA tool that uploads and downloads SAP Code Inspector check variants as XML files, one variant at a time or several in one ZIP file, installed through abapGit.independent, abapUploads and downloads Code Inspector check variants as XMLfrom ABAP
- abaplint-Ext-for-abapGitabaplint-Ext-for-abapGitSurfaces abaplint results inside abapGit itself, at the point where a developer is already looking.independent, abapShows abaplint results inside abapGitfrom ABAP
- ABAP remote filesystemABAP remote filesystemA Visual Studio Code extension that opens an ABAP system over ADT as an editable filesystem and exposes system tools to GitHub Copilot and external MCP clients.independent, abapVS Code extension editing ABAP systems over ADT as a filesystemfrom ABAP
- code pal for ABAPcode pal for ABAPATC and Code Inspector checks for the parts of Clean ABAP a static analyser can actually check, installed into a system with [abapGit](artifact:abapgit-abapgit) rather than delivered with it.sap official, abapATC and Code Inspector checks for Clean ABAPfrom ABAP
- Clean-Core.ioClean-Core.ioA free hosted workspace that reads one piece of custom ABAP, redraws its business process as BPMN with a line anchor on every element, grades the SAP objects it uses Level A–D and ends in a keep, rebuild, move-to-standard or retire decision.independent, abapHosted workspace redrawing custom ABAP as BPMN and grading itfrom ABAP
- ACEACEA SAP GUI tool that parses ABAP source statically to show call flow, data dependencies, control structure and code metrics such as McCabe complexity, without running the code.independent, abapSAP GUI tool for static analysis of ABAP call flow and code metricsfrom ABAP
- abap-cloud-guiabap-cloud-guiA report-style programming model for abap2UI5: one class produces a selection screen with a WRITE list or an ALV grid, running as a UI5 app on ABAP Cloud as well as on NetWeaver 7.02.independent, abapReport-style programming model for abap2UI5 on ABAP Cloudfrom ABAP
- codepagecodepageA polyfill class, ZCL_ABAP_CODEPAGE, that converts strings to binary and back behind one interface, where Clean Core blocks CL_ABAP_CODEPAGE and older systems lack CL_ABAP_CONV_CODEPAGE.independent, abapPolyfill for CL_ABAP_CODEPAGE under Clean Corefrom ABAP
- Modernization Agents for SAP on AWSModernization Agents for SAP on AWSAWS's suite of agents for SAP modernisation work: custom ABAP converted for S/4HANA, PI/PO interfaces moved to Integration Suite, BW objects moved to SAP Datasphere, deployed into a customer's own AWS account and reached only after registration.partner, abapAWS agents for ABAP, PI/PO and BW modernisation workfrom ABAP
- ROSAROSAAnswers whether an SAP object is released for ABAP Cloud, and what to use instead when it is not — served from SAP's own Cloudification Repository over MCP and over plain REST.independent, abapMCP server answering whether SAP objects are released for ABAP Cloudfrom ABAP
- SAP Table to CDS MapperSAP Table to CDS MapperA standalone HTML report that ranks the candidate CDS objects for a classic SAP table or table field, from a field-lineage snapshot of an SAP S/4HANA 2025 FPS01 system.independent, abapRanked candidate CDS objects for a classic SAP table or fieldfrom ABAP
- Cloudification RepositoryCloudification RepositorySAP's list of released APIs for SAP Cloud ERP, with the successors of the objects that are not released — the content the ABAP test cockpit's cloud readiness and clean core checks are pointed at.sap official, abapSAP's list of released APIs for SAP Cloud ERP with successorsfrom ABAP
- code pal for ABAP — Cloud Editioncode pal for ABAP — Cloud EditionThe same Clean ABAP check set for ABAP Cloud, where the legacy edition cannot run.sap official, abapClean ABAP check set for ABAP Cloudfrom ABAP
- Kernseife BTP AppKernseife BTP AppThe BTP side of Project Kernseife: a CAP application with Fiori apps where the classification is maintained and the ATC findings exported from the system are read back per system.sap official, abapHolds the custom classification and reports imported ATC findingsfrom ABAP
- Clean-Core.ioClean-Core.ioA free hosted workspace that reads one piece of custom ABAP, redraws its business process as BPMN with a line anchor on every element, grades the SAP objects it uses Level A–D and ends in a keep, rebuild, move-to-standard or retire decision.independent, abapHosted workspace redrawing custom ABAP as BPMN and grading itfrom ABAP
- Clean Core MeasurementClean Core MeasurementAn ABAP application for a central ATC system that imports Clean Core check results and reports them per system as Level A to D KPIs, technical debt scores and documented assignments.independent, abapReports Clean Core ATC results per system as Level A to D KPIsfrom ABAP
- ABAP Select ConverterABAP Select ConverterConverts a classic Open SQL SELECT against dictionary tables to the equivalent statement against released Core Data Services entities and their fields.independent, abapConverts classic Open SQL SELECTs to released CDS entitiesfrom ABAP
- abap-system-fieldsabap-system-fieldsAn ABAP Cloud class that wraps SY system fields and calendar-date functions behind an injectable instance, so code that reads them stays stable under unit tests.independent, abapInjectable wrapper for SY fields and date functions in ABAP Cloudfrom ABAP
- Cloudification Repository ViewerCloudification Repository ViewerA browser form over the Cloudification Repository, the list SAP publishes of which standard objects are released for ABAP Cloud and what replaces the ones that are not.independent, abapBrowser form over SAP's Cloudification Repository for ABAP Cloudfrom ABAP
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Contributors
History in the atlas
- First seen.
For your agent
- Ref
artifact:sap-project-kernseife- JSON
- /artifacts/sap-project-kernseife.json
- MCP
- Connecting an agent