if you make the build tool simple, it won't handle all the weird edge cases that exist out there

if you want to handle the weird edge cases, you need to deviate from whatever norm you wanted to establish

if you want ease of use for common defaults, the rules for common defaults must be shared between the tool and the users, who shape their systems to fit the tool's expectations

if you allow configuration or scripting, you give the users a way to specify the rules that must be shared, so the tool fits their systems

if you want to keep the tool simple, you have to force your users to only play within the parameters that fit this simplicity

if your users’ use cases don't map well to your simplicity, they will build shims around your tool to attain their objectives

The endless loop of software development. Complexity is why what starts out as “a lightweight alternative to X” often ends up as bloated as X. Greenfield projects allow you to not care about the edge cases for a while, but complexity always catches up.