prefix downstream projects with org slug
diff --git a/buildkite/pipelines/bazelci.py b/buildkite/pipelines/bazelci.py
index fa79ec7..7908759 100644
--- a/buildkite/pipelines/bazelci.py
+++ b/buildkite/pipelines/bazelci.py
@@ -124,23 +124,25 @@
       "ubuntu1404":
       {
           "name": "Ubuntu 14.04",
-          "agent-directory": "/var/lib/buildkite-agent/builds/${BUILDKITE_AGENT_NAME}/${BUILDKITE_ORGANIZATION_SLUG}/"
+          "agent-directory": "/var/lib/buildkite-agent/builds/${BUILDKITE_AGENT_NAME}/"
       },
       "ubuntu1604":
       {
           "name": "Ubuntu 16.04",
-          "agent-directory": "/var/lib/buildkite-agent/builds/${BUILDKITE_AGENT_NAME}/${BUILDKITE_ORGANIZATION_SLUG}/"
+          "agent-directory": "/var/lib/buildkite-agent/builds/${BUILDKITE_AGENT_NAME}/"
       },
       "macos":
       {
           "name": "macOS",
-          "agent-directory": "/usr/local/var/buildkite-agent/builds/${BUILDKITE_AGENT_NAME}/${BUILDKITE_ORGANIZATION_SLUG}/"
+          "agent-directory": "/usr/local/var/buildkite-agent/builds/${BUILDKITE_AGENT_NAME}/"
       }
   }
 
 
 def downstream_projects_root(platform):
-  path = os.path.join(agent_directory(platform), "downstream-projects")
+  downstream_projects_dir = os.path.expandvars(
+      "${BUILDKITE_ORGANIZATION_SLUG}-downstream-projects")
+  path = os.path.join(agent_directory(platform), downstream_projects_dir)
   if not os.path.exists(path):
     os.makedirs(path)
   return path
@@ -157,6 +159,7 @@
 def platform_name(platform):
   return platforms_info()[platform]["name"]
 
+
 def fetch_configs(http_url):
   '''
   If specified fetches the build configuration from http_url, else tries to
@@ -229,25 +232,34 @@
   print("\n--- Fetching " + project_name + " sources")
   if os.path.exists(clone_path):
     os.chdir(clone_path)
-    fail_if_nonzero(execute_command(["git", "remote", "set-url", "origin", git_repository]))
+    fail_if_nonzero(execute_command(
+        ["git", "remote", "set-url", "origin", git_repository]))
     fail_if_nonzero(execute_command(["git", "clean", "-fdqx"]))
-    fail_if_nonzero(execute_command(["git", "submodule", "foreach", "--recursive", "git", "clean", "-fdqx"]))
+    fail_if_nonzero(execute_command(
+        ["git", "submodule", "foreach", "--recursive", "git", "clean", "-fdqx"]))
     # sync to the latest commit of HEAD. Unlikely git pull this also works after
     # a force push.
     fail_if_nonzero(execute_command(["git", "fetch", "origin"]))
-    remote_head = subprocess.check_output(["git", "symbolic-ref", "refs/remotes/origin/HEAD"])
+    remote_head = subprocess.check_output(
+        ["git", "symbolic-ref", "refs/remotes/origin/HEAD"])
     remote_head = remote_head.decode("utf-8")
     remote_head = remote_head.rstrip()
     fail_if_nonzero(execute_command(["git", "reset", remote_head, "--hard"]))
-    fail_if_nonzero(execute_command(["git", "submodule", "sync", "--recursive"]))
-    fail_if_nonzero(execute_command(["git", "submodule", "update", "--init", "--recursive", "--force"]))
-    fail_if_nonzero(execute_command(["git", "submodule", "foreach", "--recursive", "git", "reset", "--hard"]))
+    fail_if_nonzero(execute_command(
+        ["git", "submodule", "sync", "--recursive"]))
+    fail_if_nonzero(execute_command(
+        ["git", "submodule", "update", "--init", "--recursive", "--force"]))
+    fail_if_nonzero(execute_command(
+        ["git", "submodule", "foreach", "--recursive", "git", "reset", "--hard"]))
     fail_if_nonzero(execute_command(["git", "clean", "-fdqx"]))
-    fail_if_nonzero(execute_command(["git", "submodule", "foreach", "--recursive", "git", "clean", "-fdqx"]))
+    fail_if_nonzero(execute_command(
+        ["git", "submodule", "foreach", "--recursive", "git", "clean", "-fdqx"]))
   else:
-    fail_if_nonzero(execute_command(["git", "clone", git_repository, clone_path]))
+    fail_if_nonzero(execute_command(
+        ["git", "clone", git_repository, clone_path]))
     os.chdir(clone_path)
 
+
 def cleanup(bazel_binary):
   if os.path.exists("WORKSPACE"):
     print("\n--- Cleanup")