build: break out custom tasks into separate file (more discoverable)