I'm trying to design some Herald rules to support a workflow for when we start actively using Phabricator. I want to be able to support a couple behaviors:
1. I'd like for my engineers to be able to store "work in progress" differential revisions that aren't yet ready for review (rather than on their laptops when can be eaten by a bear, struck by lightning, or sold to support crippling drug habits). I think that `arc diff --plan-changes` can work for this, but I think a new status of "Work in Progress" would be apropos (e.g., `arc diff --wip').
2. I'd like for my engineers to not worry too much about who is going to review their code, so I'd like them to be able to leave the reviewers field empty when populating their revision. Then, based on herald rules that apply some heuristics (which repository, which directory within the repository) will automatically select some reviewers. (Of course, if they nominate a reviewer, the herald rules should do nothing. However, I don't want to pester potential reviewers until the review exits the "work in progress" status. I see a couple problems a) It's not clear how to create a Hearald rule that matches the empty set. b) Herald doesn't currently have a capability to test against the status of a revision.
3. It might be nice to have a "pester" button on a differential revision; this would be used by an engineer that they'd like feedback from a particular reviewer that is listed on a revision.