Like git, but for managing the workflow around an intentional application.
Some ideas for the subcommands:
epi edit commands -- edit model/commands.xsd
epi edit events -- edit model/events.xsd
epi edit MyAggregate -- edit lib/MyAggregate.pm
epi edit -t MyAggregate -- edit t/myaggregate.t
epi test -- run all tests
epi test MyAggregate -- run t/myaggregate.t
epi newtest MyAggregate -- add a test
epi newtest MyAggregate -g Event1,Event2 -w Command3 -t Event4,Event4
-- add a test, events and commands pre-filled
epi edit -- edit file/line, DWIM based on recent events
epi make -- rebuild Makefile, run make
The test cases are meant to be central to it all, so
-
Saying "I want to implement this test" will set things up properly and take you to the relevant file and line in vim.
-
Mentioning a new type of command, event, or attribute to a command or event will automatically trickle back into the model.
-
It just keeps making git commits with excellent commit messages all the time through this.