{"ref":"artifact:mariokernich-abap-doc","page":"/artifacts/mariokernich-abap-doc","json":"/artifacts/mariokernich-abap-doc.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"mariokernich-abap-doc","name":"abap-doc","artifact_type":"cli","ecosystem":"abap","domain":"developer-experience","origin_ring":"independent","description":{"one_line":"A Node.js command that reads an ABAP package and its sub-packages over ADT and writes one PDF documenting every object in it, with an LLM writing the prose.","short":"Node.js command writing PDF documentation for an ABAP package","what_it_solves":"Connects to the ADT REST services with a user and password, walks the package tree and documents each object: classes, interfaces, programs, function groups and BAdIs by an OpenAI-compatible model, with the objects they reference passed in as context; domains, data elements, message classes and similar objects by rules, with no model call. Classes and programs over 10,000 lines are summarised part by part and then combined. The output is a PDF with a cover, a numbered table of contents, page numbers, bookmarks and Mermaid diagrams, rendered through headless Chromium, and written in English."},"links":{"repo":"https://github.com/mariokernich/abap-doc"},"compat":{"runtimes":["node"]},"provides":[{"capability":"capability:documentation","what_it_does":"Writes a PDF describing every object of a package and its sub-packages, read over ADT, with model-written prose for code and rule-based pages for dictionary objects.","sources":[{"url":"https://github.com/mariokernich/abap-doc","title":"mariokernich/abap-doc — README","checked":"2026-09-13"}]}],"maintainers":["actor:mariokernich"],"identity":{"license":"MIT"},"source_available":true,"drafted_with_ai":true,"provenance":{"discovered_via":[{"source":"source:curator"}],"first_seen":"2026-09-13"}},"effective_normative_relations":[],"readings":{"liveness":[{"label":"Maintenance","tier":"unknown","evidence":"no release data"},{"label":"Continuity","tier":"unknown","evidence":"no contributor data"},{"label":"Repository","tier":"unknown","evidence":"no repository data"}],"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":"unknown","evidence":"no repository data"}],"practice":[{"label":"Tests","tier":"unknown","evidence":"not crawled"},{"label":"Docs","tier":"unknown","evidence":"not crawled"},{"label":"Changelog","tier":"unknown","evidence":"not crawled"}],"reach":[{"value":null,"unit":"installs/week"},{"value":null,"unit":"watching"}]},"signals":{"crawled_at":"2026-10-26","npm":"not published under this name","repo":"not reachable","unreachable_since":"2026-10-20","unreachable_crawls":3},"edges":{"maintainers":[{"ref":"actor:mariokernich","name":"Mario Kernich","json":"/actors/mariokernich.json"}],"contributors":[],"explained_by":[],"alternative_to_this":[],"needed_by":[],"available_via":[],"parts":[],"add_ons":[],"answered_through_parts":[]}}