Fast Shellcheck plus an LSP in one runtime is the combination I actually want. The GitHub Actions YAML idea is useful too — that's where bash usually hides and regular Shellcheck never looks.
IceWM's other reason I kept it around was the config being a few plain text files. Is SteppeWM configured that way too, or is it still a wlroots compositor that wants XML/Lua for the panel and keybinds?