Change-Id: Ie82d4e210ba8595412c05689e9fb34df88f7a5ac
diff --git a/ b/
new file mode 100644
index 0000000..232f2a3
--- /dev/null
+++ b/
@@ -0,0 +1,25 @@
+# Interceptor
+**WARNING**: The interceptor is still a work in progress. Contents of this
+section are subject to change.
+The interceptor is a tool to intercept all `execve` and other system calls
+during the build (specifically, `make`) in order to construct the dependency
+tree and understand a list of commands executed by the build system. With the
+interceptor, the Bazel build system may first "dry-run", analyze all inputs and
+outputs of each command, generate `BUILD.bazel` files for each command, then
+execute on these generated build files.
+This allows us to enable the following:
+* Trim the dependency tree for each command.
+    * Reduce the possibility of invalidating an output when an unrelated input
+      file is touched
+    * More parallelism within Bazel, not make
+    * Even faster incremental builds
+* Generate
+  [compile\_commands.json](,
+  which can then be plugged into IDEs and code search tools (e.g.
+* More cache hits for Remote Build Execution (RBE)
+* Give a more trimmed and precise list of resources for DDK
+* etc.