I don't know whether I would consider this to be a good idea or not, but I'm currently pursuing the idea of an abstract notion of Actions and Results.  The system may perform a set of actions, each of which has a result.  This is abstracted in order to facilitate separating the interface (command line, Web or RPC) from any actual coupling to systemic effects.  There are a variety of ways to accomplish this goal.  The system with which I'm experimenting here is an attempt to arrive at something that accomplishes this goal without going too far down an architectural rabbit hole.  We'll see how it goes.
Adding actions for fetching source control revisions and for creating/adding to an index.
Adding today's changelog message.