Harnesses do fix it IMO - it’s why Claude code and Codex had a massive jump in alleged productivity on release and then seems to have flatlined. But a custom harness _would_ allow you to do things like “on every message, run lint validation and tests”. That in and of itself would be wildly useful.
a colleague using OpenCode was telling me it has linting/formatting configurable at harness level and I can't see why this is in every harness