From cd3f0c44d5302775bf5704d42a95dd925ab39d71 Mon Sep 17 00:00:00 2001 From: Erhan Keseli Date: Fri, 5 Jun 2026 21:06:47 +0200 Subject: [PATCH] Add README --- README.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..4d49bba --- /dev/null +++ b/README.md @@ -0,0 +1,107 @@ +# ABAP Shittier + +A Claude Code skill that does the opposite of the ABAP Pretty Printer. You give it +clean ABAP, it gives you back the ugliest version it can manage. The only rule is +that the result still compiles and behaves exactly the same. + +It's the ABAP take on [Shittier](https://github.com/), the joke anti-Prettier. + +## What it actually does + +The Pretty Printer indents your code, fixes keyword casing, and aligns your +declarations. This undoes all of that. Casing goes random, indentation ignores +scope, alignment gets torn apart, lines break in stupid places, and the mandatory +spaces get padded out to look worse. + +What it does not do is change behavior. If you run the tokens through it ignoring +whitespace and casing, you get the exact input back. + +Some reasons you might want this: + +* Showing a junior why the formatting standards are there +* A cursed commit for April 1st or a conference talk +* Throwing garbage at a linter or review process to see what it catches + +It is not for obfuscation or hiding code. It's a joke. + +## What it won't break + +ABAP parses on tokens, so a few things have to stay intact or the code stops +activating. Shittier leaves these alone: + +* `*` line comments stay in column 1 +* required spaces around operators and parentheses get padded, never deleted + (`lv_x = 1` becomes `lv_x = 1`, which still compiles) +* string templates and literals are untouched +* statements, their closing periods, and `:` `,` chains stay as they are +* keywords and identifiers keep their actual letters, only the casing moves + +## Install + +```bash +# all projects +unzip abap-shittier.zip -d ~/.claude/skills/ + +# just this repo +unzip abap-shittier.zip -d .claude/skills/ +``` + +The file has to land at `~/.claude/skills/abap-shittier/SKILL.md`, not one folder +deeper. Start a new Claude Code session and it picks it up. + +## Using it + +Ask for it in plain language: + +> shittier this class +> un-format this method +> make this report unreadable + +## Example + +Before: + +```abap +METHOD get_customer_balance. + DATA: lv_total TYPE bapidoccur, + lt_items TYPE STANDARD TABLE OF ty_item. + + SELECT * FROM ztable + INTO TABLE @lt_items + WHERE kunnr = @iv_kunnr. + + LOOP AT lt_items INTO DATA(ls_item). + lv_total = lv_total + ls_item-amount. + ENDLOOP. + + rv_balance = lv_total. +ENDMETHOD. +``` + +After: + +```abap + meThOd get_customer_balance. +DATA: lv_total TYPE bapidoccur, + lt_items TYPE STANDARD TABLE oF ty_item. + SeLeCt * fROm ztable InTo TaBLe @lt_items wHeRe kunnr = @iv_kunnr. + LooP aT lt_items inTo DATA(ls_item). lv_total = lv_total + ls_item-amount. ENDloop. + rv_BALANCE += + lv_total. +ENDmeThod. +``` + +Same tokens, same result, unreadable. + +## Layout + +``` +abap-shittier/ + SKILL.md the skill itself + README.md this file +``` + +## License + +MIT.