I know this is on the radar, but for some reason I couldn't find an open issue referencing this in JAC;
On the one hand, it would be nice to be able to simply specify an artifact as a dependency, regardless of which plan it came out of (longer integration-test type plans come to mind) without having to resort to an external shared storage system, but another possible solution would be a build plugin that could natively handle the RESTful call API/parse JSON/extract artifacts cycle needed to use published artifacts from other plans, and such a plugin might be more flexible than simply extending the "shared artifact" model.