I would like to be able to make a Herald rule where in the actions I could specify something like:
- Run Herald Rule: [Dropdown of Herald Rules]
or
- Re-evaluate Herald Rules
It would cause phab to re-evaluate the designated rule conditions (or all rules) to see if it should trigger after all of this rule's actions are performed.
We can already specify a herald rule shouldn't run if another rule passed in the conditions, so a similar dropdown.
Here's my use case: I have tags representing organizational teams, with people members of them.
- Each team has a rule that executes once that sends an email to the team if a task if tagged with that team.
- There is a special team called Needs Triage with specific people as members, in case a task does not get created with a team tag. It has a similar email rule.
- There is a rule that states that if a task has no team tags, and no assignee, then it adds the Needs Triage tag to the task.
My problem: When I create a new task with no tags and no assignee, a herald rule triggers to add the Needs Triage tag to it. However the rule to email members of Needs Triage does not. It will only trigger on the NEXT action on the task, say if I add a comment. This tells me that each rule conditions are on the state before herald rules are applied and can't be impacted by other rules.
My request: Hence this request is to give me the ability to make a bit of a "rule higherarchy" if I know of a rule I was to trigger. Optionally the action could also be "re-evaluate herald rules" so it would trigger again. Some dangers with infinite loops I imagine though which are minimized if you must provide the rule name, though it could just keep track of all execute rules and never execute the same rule twice.
My workaround: Right now I've added an email to the rule that adds the Needs triage tag, but this means that the next comment on the task also emails (when it matches the other rule), resulting in 2 emails for the same task, which is not what I want.
I tried to search and couldn't find this feature requested elsewhere. Hopefully this isn't just me thinking about the problem wrong and just need to re-organize my logic.
Thanks!