I joined as a member mainly because I wanted to support software that I find useful - more so than most other GTD apps. But since I have access to the Member-only Forums, I figured I might as well make a suggestion.
I've had a long standing battle with the TR software over how it handles dependencies. The Automated Action Sequence is invaluable to me, because I use it to filter out actions that can't be done until other actions are completed first. But it assumes that a project is linear, which most are not, and it can't activate an action across projects (such as activate the 1st action in one or two dependent projects).
Before posting about @waiting lists, let me just say that they don't work for me. Most of my dependencies are small, and I come across several a day, and they can't wait for weekly reviews. So, @waiting is fine for slower projects, but won't do what I need.
However, I think I have an easy solution that fits well into how you already use Criteria. What I mean is, it wouldn't require the adding of dependencies or complex shifts to how actions work, could easily be turned on and off (much like criterias) by people who do or don't need them, and would unburden the user during processing and acting by giving them one thing less to do.
Possible Approach Using Filters:
It should be straight forward to add a "Is Dependent" option to the filter list in the Actions Screen. This is simply a Yes/No filter - if a item "Is Dependent", it is Yes, if not, it is a No.
Then under Criteria Settings, add an "Is Dependent" criteria that can be turned on and off, similar to Time, Energy, and Priority. If turned on, an extra item would appear during processing called, "Set Dependents". The Set Dependents drop down would simply allow the user to set any existing action as a dependency for the action being processed. Then, at regular intervals, TR simply checks through each action, and for each dependency checks to see if the Dependency Action either A.) is no longer present, or B.) is Done. If either is true, then the "Is Dependent" attribute for that item is set to No. If the item is still present and not set to Done, then the "Is Dependent" attribute is left at Yes.
This way, it does what I (and others in the forums) need it to do, which is allow me to define other actions as a dependency across projects, without adding much clutter to the system, or breaking the schema already established.
Thoughts?
Aaron