I think implicit dependencies are pretty dangerous from an engineering perspective. I assume you would need to load all possible tasks (or at least tasks that you know have reverse dependencies) for any task, and then you need add them as explicit dependencies for the tasks they are attached to and then resolve things as normal?