I then dogfooded these tools across several paid contracts & personal projects, writing my specs in Unicode with the Neovim plugin then converting them to ASCII for use with existing language tooling. Trying to synchronize the JavaCC grammar with the hand-modified generated code meant lots of dangerous changes to untested foundational code, but further modifying the generated code meant it would be harder to synchronize with the JavaCC grammar in the future. If your PR can be split up into multiple PRs, each with some individual value, then split it up Build consensus on the need, scope, and method for a change before working on it Write lots and lots of tests, then submit them before writing your main changes