{"ref":"artifact:sap-styleguides-clean-abap","page":"/artifacts/sap-styleguides-clean-abap","json":"/artifacts/sap-styleguides-clean-abap.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"sap-styleguides-clean-abap","name":"Clean ABAP","artifact_type":"practice","ecosystem":"abap","domain":"learning-and-reference","origin_ring":"sap-official","use_as":"reference","description":{"one_line":"SAP's open, versioned style guide for ABAP: the answer to how a piece of ABAP should be written, an agreement a team adopts rather than anything to install.","short":"Open, versioned style guide for ABAP","what_it_solves":"Is the answer to 'how should this be written'. There is nothing to install — the artifact is the agreement."},"links":{"repo":"https://github.com/SAP/styleguides"},"compat":{"runtimes":["build-time"]},"source_available":true,"provides":[{"capability":"capability:abap-clean-code","what_it_does":"States the conventions, with the reasoning, as an open document the team adopts.","sources":[{"url":"https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md","title":"SAP/styleguides — Clean ABAP","checked":"2026-08-31"}]}],"provenance":{"discovered_via":[{"source":"source:github"}],"first_seen":"2026-08-31"},"maintainers":["actor:sap"],"contributors":["actor:00500500","actor:albertmink","actor:alexandreht","actor:alexmfrank","actor:bau-mann","actor:bjoern-jueliger-sap","actor:btbernard","actor:christianguenter2","actor:christophpohlsap","actor:colbyhemond","actor:conjuringcoffee","actor:cwildt","actor:dominikpanzer","actor:fabianlupa","actor:filak-sap","actor:gabrielbaca","actor:gudi-24","actor:h13m9","actor:hhelibeb","actor:hrflorianhoffmann","actor:jan-jezek","actor:jdgx","actor:jordao76","actor:jousinkaka","actor:jwigert","actor:kjetil-kilhavn","actor:klaushaeuptlesap","actor:larshp","actor:learnin","actor:lechnerc77","actor:likweitan","actor:lucasborin","actor:maltr","actor:marcissimus","actor:martinborda","actor:martinh1337","actor:matt1as","actor:mauriciolauffer","actor:maximilianovermeyer","actor:n2ob6n-sap","actor:pixelbaker","actor:pokrakam","actor:priyasingh199885","actor:rdibbern","actor:rob786541","actor:s7oev","actor:sabeck1","actor:sautermi0","actor:schmelto","actor:se38","actor:sebastianwolf-sap","actor:stefanbutscher","actor:thomham","actor:timojohn","actor:utombul","actor:vandelay","actor:victorizbitskiy","actor:webracer999","actor:westerholz"],"drafted_with_ai":true},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"good","evidence":"62 contributors, org-owned"},{"label":"Repository","tier":"good","evidence":"pushed 2026-10, not archived"}],"compatibility":[{"label":"Declared for","tier":"fair","evidence":"nothing declared"},{"label":"Survived majors","tier":"unknown","evidence":"not read on ABAP: its lines run side by side"},{"label":"Maintainer's CI","tier":"poor","evidence":"build failure, 2026-10-21"}],"practice":[{"label":"Tests","tier":"fair","evidence":"none found in the tree"},{"label":"Docs","tier":"fair","evidence":"README 3 KB"},{"label":"Changelog","tier":"fair","evidence":"none in the repo"}],"reach":[{"value":null,"unit":"installs/week"},{"value":2035,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","stars":2035,"forks":505,"open_issues":76,"archived":false,"pushed_at":"2026-10-21","license_spdx":null,"org_owned":true,"default_branch":"main","contributors":62,"tree_truncated":false,"test_files":0,"workflows":2,"other_ci":false,"readme_bytes":3442,"docs_files":0,"changelog":false,"license_file":true,"dts_files":0,"ci_status":"failure","ci_run_at":"2026-10-21","ci_workflow":"build","ci_event":"push","readme_path":"README.md","readme_sha":"a68d93b9b3b19e378735b080d62d81293e2baa02","created_at":"2019-04-26T00:01:38Z","open_prs":7,"first_commit":"2019-04-26","last_commit":"2026-10-21","commits":269,"repo_read":"2026-10-26"},"edges":{"maintainers":[{"ref":"actor:sap","name":"SAP","json":"/actors/sap.json"}],"contributors":[{"ref":"actor:albertmink","name":"Albert Mink","json":"/actors/albertmink.json"},{"ref":"actor:alexandreht","name":"AlexandreHT","json":"/actors/alexandreht.json"},{"ref":"actor:alexmfrank","name":"AlexMFrank","json":"/actors/alexmfrank.json"},{"ref":"actor:bau-mann","name":"bau-mann","json":"/actors/bau-mann.json"},{"ref":"actor:bjoern-jueliger-sap","name":"Björn Jüliger","json":"/actors/bjoern-jueliger-sap.json"},{"ref":"actor:btbernard","name":"Brian Bernard","json":"/actors/btbernard.json"},{"ref":"actor:christianguenter2","name":"Christian Günter","json":"/actors/christianguenter2.json"},{"ref":"actor:lechnerc77","name":"Christian Lechner","json":"/actors/lechnerc77.json"},{"ref":"actor:cwildt","name":"Christian Wildt","json":"/actors/cwildt.json"},{"ref":"actor:christophpohlsap","name":"Christoph Pohl","json":"/actors/christophpohlsap.json"},{"ref":"actor:colbyhemond","name":"Colby Hemond","json":"/actors/colbyhemond.json"},{"ref":"actor:conjuringcoffee","name":"ConjuringCoffee","json":"/actors/conjuringcoffee.json"},{"ref":"actor:vandelay","name":"Dom Padden","json":"/actors/vandelay.json"},{"ref":"actor:dominikpanzer","name":"Dominik Panzer","json":"/actors/dominikpanzer.json"},{"ref":"actor:jousinkaka","name":"Dongju Park","json":"/actors/jousinkaka.json"},{"ref":"actor:fabianlupa","name":"Fabian Lupa","json":"/actors/fabianlupa.json"},{"ref":"actor:hrflorianhoffmann","name":"Florian Hoffmann","json":"/actors/hrflorianhoffmann.json"},{"ref":"actor:gabrielbaca","name":"Gabriel Baca","json":"/actors/gabrielbaca.json"},{"ref":"actor:gudi-24","name":"Gudi-24","json":"/actors/gudi-24.json"},{"ref":"actor:h13m9","name":"h13m9","json":"/actors/h13m9.json"},{"ref":"actor:hhelibeb","name":"He H","json":"/actors/hhelibeb.json"},{"ref":"actor:filak-sap","name":"Jakub Filak","json":"/actors/filak-sap.json"},{"ref":"actor:jan-jezek","name":"Jan Ježek","json":"/actors/jan-jezek.json"},{"ref":"actor:jwigert","name":"Johan Wigert","json":"/actors/jwigert.json"},{"ref":"actor:jdgx","name":"Jonathan","json":"/actors/jdgx.json"},{"ref":"actor:jordao76","name":"Jordão","json":"/actors/jordao76.json"},{"ref":"actor:00500500","name":"Kai Busse","json":"/actors/00500500.json"},{"ref":"actor:kjetil-kilhavn","name":"Kjetil Kilhavn","json":"/actors/kjetil-kilhavn.json"},{"ref":"actor:klaushaeuptlesap","name":"KlausHaeuptleSAP","json":"/actors/klaushaeuptlesap.json"},{"ref":"actor:larshp","name":"Lars Hvam","json":"/actors/larshp.json"},{"ref":"actor:likweitan","name":"Lik Wei","json":"/actors/likweitan.json"},{"ref":"actor:lucasborin","name":"Lucas Borin","json":"/actors/lucasborin.json"},{"ref":"actor:learnin","name":"Manabu Inoue @i_learnin","json":"/actors/learnin.json"},{"ref":"actor:marcissimus","name":"Marc Bernard","json":"/actors/marcissimus.json"},{"ref":"actor:maltr","name":"Marlon Altrichter","json":"/actors/maltr.json"},{"ref":"actor:martinh1337","name":"Martin","json":"/actors/martinh1337.json"},{"ref":"actor:martinborda","name":"Martín Gastón Borda","json":"/actors/martinborda.json"},{"ref":"actor:matt1as","name":"Mattias Johansson","json":"/actors/matt1as.json"},{"ref":"actor:mauriciolauffer","name":"Mauricio Lauffer","json":"/actors/mauriciolauffer.json"},{"ref":"actor:maximilianovermeyer","name":"maximilianovermeyer","json":"/actors/maximilianovermeyer.json"},{"ref":"actor:sautermi0","name":"Michael Sauter","json":"/actors/sautermi0.json"},{"ref":"actor:pokrakam","name":"Mike Pokraka","json":"/actors/pokrakam.json"},{"ref":"actor:n2ob6n-sap","name":"N2oB6n-SAP","json":"/actors/n2ob6n-sap.json"},{"ref":"actor:pixelbaker","name":"Pixelbaker","json":"/actors/pixelbaker.json"},{"ref":"actor:priyasingh199885","name":"priyasingh199885","json":"/actors/priyasingh199885.json"},{"ref":"actor:rdibbern","name":"rdibbern","json":"/actors/rdibbern.json"},{"ref":"actor:rob786541","name":"Robert","json":"/actors/rob786541.json"},{"ref":"actor:sabeck1","name":"Samuel Beck","json":"/actors/sabeck1.json"},{"ref":"actor:sebastianwolf-sap","name":"Sebastian Wolf","json":"/actors/sebastianwolf-sap.json"},{"ref":"actor:stefanbutscher","name":"StefanButscher","json":"/actors/stefanbutscher.json"},{"ref":"actor:s7oev","name":"Stoyko Stoev","json":"/actors/s7oev.json"},{"ref":"actor:thomham","name":"Thomas Hammer","json":"/actors/thomham.json"},{"ref":"actor:timojohn","name":"TimoJohn","json":"/actors/timojohn.json"},{"ref":"actor:schmelto","name":"Tom Schmelzer","json":"/actors/schmelto.json"},{"ref":"actor:utombul","name":"utombul","json":"/actors/utombul.json"},{"ref":"actor:se38","name":"Uwe Fetzer","json":"/actors/se38.json"},{"ref":"actor:victorizbitskiy","name":"Victor Izbitskiy","json":"/actors/victorizbitskiy.json"},{"ref":"actor:webracer999","name":"webracer999","json":"/actors/webracer999.json"},{"ref":"actor:westerholz","name":"westerholz","json":"/actors/westerholz.json"}],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}