Neat, this looks really well done. I should know, I am working on something similar, and coincidentally I also posted to Show HN yesterday ( <a href="https://news.ycombinator.com/item?id=20039933" rel="nofollow">https://news.ycombinator.com/item?id=20039933</a> ) :-)<p>It seems we had roughly the same idea, an intermediate layer/DSL which is used by a generic front-end, that can control different back-ends. Looks like we have a slightly different focus (both in terms of front-end, back-end, and how to describe tasks), but I find it highly interesting and educational to look at your design and architecture, and compare it to what I came up with.<p>Instead of languages as back-ends, for example, I'm targeting frameworks (Ansible, Terraform, although I also intend to add a shell and powershell adapter). And I'm only just now starting to think about how to feed one tasks output into the next tasks input. I'll have a look how you did this, to get some inspiration, hope you don't mind :-)