diff --git a/site/command-line-reference-prefix.html b/site/command-line-reference-prefix.html
index 38e1460..59f2b79 100644
--- a/site/command-line-reference-prefix.html
+++ b/site/command-line-reference-prefix.html
@@ -14,6 +14,9 @@
 bazel [&lt;startup options&gt;] &lt;command&gt; [&lt;args&gt;] -- [&lt;target patterns&gt;]
 </pre>
 
+See the <a href="guide.html#target-patterns">User's Guide</a> for the
+target patterns syntax.
+
 <h2>Option Syntax</h2>
 
 <p>
@@ -56,126 +59,3 @@
 --&lt;option&gt;=[false|no|0]
 </pre>
 </p>
-
-<h2>Target Pattern Syntax</h2>
-
-<p>
-A target pattern refers to a single or more targets, which are source files,
-output files, or rules specified in BUILD files. In addition to plain labels,
-Bazel also supports working-directory-relative labels, recursive patterns, and
-target subtraction.
-</p>
-
-<p>
-All target patterns starting with '//' are resolved relative to the current
-workspace.
-<table>
-<tr>
-  <td><code>//foo/bar:wiz</code></td>
-  <td>Just the single target '//foo/bar:wiz'.</td>
-</tr>
-<tr>
-  <td><code>//foo/bar</code></td>
-  <td>Equivalent to '//foo/bar:bar'.</td>
-</tr>
-<tr>
-  <td><code>//foo/bar:all</code></td>
-  <td>All rules in the package 'foo/bar'.</td>
-</tr>
-<tr>
-  <td><code>//foo/...</code></td>
-  <td>All rules in all packages beneath the directory 'foo'.</td>
-</tr>
-<tr>
-  <td><code>//foo/...:all</code></td>
-  <td>All rules in all packages beneath the directory 'foo'.</td>
-</tr>
-<tr>
-  <td><code>//foo/...:*</code></td>
-  <td>All targets (rules and files) in all packages beneath the directory 'foo'.</td>
-</tr>
-<tr>
-  <td><code>//foo/...:all-targets</code></td>
-  <td>All targets (rules and files) in all packages beneath the directory 'foo'.</td>
-</tr>
-</table>
-</p>
-
-<p>
-Targets with <code>tags=["manual"]</code> are not included in wildcard
-target patterns (<code>...</code>, <code>:*</code>, <code>:all</code>, etc).
-Specify such test targets with explicit labels on the command line if
-you want Bazel to build/test them.
-</p>
-
-<p>
-Target patterns which do not begin with '//' are resolved relative to the
-current <em>working directory</em>. These examples assume a working directory of
-'foo':
-<table>
-<tr>
-  <td><code>:foo</code></td>
-  <td>Equivalent to  '//foo:foo'.</td>
-</tr>
-<tr>
-  <td><code>bar:wiz</code></td>
-  <td>Equivalent to  '//foo/bar:wiz'.</td>
-</tr>
-<tr>
-  <td><code>bar/wiz</code></td>
-  <td>Equivalent to:
-                      '//foo/bar/wiz:wiz' if foo/bar/wiz is a package,
-                      '//foo/bar:wiz' if foo/bar is a package,
-                      '//foo:bar/wiz' otherwise.
-  </td>
-</tr>
-<tr>
-  <td><code>bar:all</code></td>
-  <td>Equivalent to  '//foo/bar:all'.</td>
-</tr>
-<tr>
-  <td><code>:all</code></td>
-  <td>Equivalent to  '//foo:all'.</td>
-</tr>
-<tr>
-  <td><code>...:all</code></td>
-  <td>Equivalent to  '//foo/...:all'.</td>
-</tr>
-<tr>
-  <td><code>...</code></td>
-  <td>Equivalent to  '//foo/...:all'.</td>
-</tr>
-<tr>
-  <td><code>bar/...:all</code></td>
-  <td>Equivalent to  '//foo/bar/...:all'.</td>
-</tr>
-</table>
-</p>
-
-<p>
-By default, directory symlinks are followed for recursive target patterns,
-except those that point to under the output base, such as the convenience
-symlinks that are created in the root directory of the workspace.
-</p>
-
-<p>
-In addition, Bazel does not follow symlinks when evaluating recursive target
-patterns in any directory that contains a file named as follows:
-<pre>
-DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN
-</pre>
-</p>
-
-<p>
-Target patterns may be preceded by a single dash ('<code>-</code>'), in which
-case Bazel subtracts them from the set of targets accumulated by preceding
-patterns. Note that this means <em>order matters</em>. In order to pass negative
-target patterns, you need to use '--' as an argument to prevent Bazel from
-interpreting it as an option, e.g.:
-<pre>
-bazel build -- foo/... -foo/contrib/...
-</pre>
-Note that Bazel may still build targets matched by a negative target pattern due
-to dependencies, and may also load the corresponding BUILD files, even if the
-targets are never built.
-</p>
diff --git a/site/docs/guide.html b/site/docs/guide.html
index 8132d5f..e10cea4 100644
--- a/site/docs/guide.html
+++ b/site/docs/guide.html
@@ -8,7 +8,7 @@
 <p>
   To run Bazel, go to
 
-  your base <a href="build-ref.html#workspaces">workspace</a> directory
+  your base <a href="build-ref.html#workspace">workspace</a> directory
   or any of its subdirectories and type <code>bazel</code>.
 </p>
 
@@ -138,95 +138,11 @@
 <h3 id='target-patterns'>Specifying targets to build</h3>
 <p>
   Bazel allows a number of ways to specify the targets to be built.
-  Collectively, these are known as <i>target patterns</i>.
-  The on-line help displays a summary of supported patterns:
+  Collectively, these are known as <i>target patterns</i>. This syntax is
+  used in commands like <code>build</code>, <code>test</code>,
+  or <code>query</code>.
 </p>
-<pre>
-% bazel help target-syntax
 
-Target pattern syntax
-=====================
-
-The BUILD file label syntax is used to specify a single target. Target
-patterns generalize this syntax to sets of targets, and also support
-working-directory-relative forms, recursion, subtraction and filtering.
-Examples:
-
-Specifying a single target:
-
-  //foo/bar:wiz     The single target '//foo/bar:wiz'.
-  foo/bar/wiz       Equivalent to:
-                      '//foo/bar/wiz:wiz' if foo/bar/wiz is a package,
-                      '//foo/bar:wiz' if foo/bar is a package,
-                      '//foo:bar/wiz' otherwise.
-  //foo/bar         Equivalent to '//foo/bar:bar'.
-
-Specifying all rules in a package:
-
-  //foo/bar:all       Matches all rules in package 'foo/bar'.
-
-Specifying all rules recursively beneath a package:
-
-  //foo/...:all     Matches all rules in all packages beneath directory 'foo'.
-  //foo/...           (ditto)
-
-  By default, directory symlinks are followed when performing this recursive traversal, except
-  those that point to under the output base (for example, the convenience symlinks that are created
-  in the root directory of the workspace) But we understand that your workspace may intentionally
-  contain directories with unusual symlink structures that you don't want consumed. As such, if a
-  directory has a file named
-  'DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN' then symlinks
-  in that directory won't be followed when evaluating recursive target patterns.
-
-Working-directory relative forms:  (assume cwd = 'workspace/foo')
-
-  Target patterns which do not begin with '//' are taken relative to
-  the working directory.  Patterns which begin with '//' are always
-  absolute.
-
-  ...:all           Equivalent to  '//foo/...:all'.
-  ...                 (ditto)
-
-  bar/...:all       Equivalent to  '//foo/bar/...:all'.
-  bar/...             (ditto)
-
-  bar:wiz           Equivalent to '//foo/bar:wiz'.
-  :foo              Equivalent to '//foo:foo'.
-
-  bar               Equivalent to '//foo/bar:bar'.
-  foo/bar           Equivalent to '//foo/foo/bar:bar'.
-
-  bar:all           Equivalent to '//foo/bar:all'.
-  :all              Equivalent to '//foo:all'.
-
-Summary of target wildcards:
-
-  :all,             Match all rules in the specified packages.
-  :*, :all-targets  Match all targets (rules and files) in the specified
-                      packages, including ones not built by default, such
-                      as _deploy.jar files.
-
-Subtractive patterns:
-
-  Target patterns may be preceded by '-', meaning they should be
-  subtracted from the set of targets accumulated by preceding
-  patterns. (Note that this means order matters.) For example:
-
-    % bazel build -- foo/... -foo/contrib/...
-
-  builds everything in 'foo', except 'contrib'.  In case a target not
-  under 'contrib' depends on something under 'contrib' though, in order to
-  build the former bazel has to build the latter too. As usual, the '--' is
-  required to prevent '-f' from being interpreted as an option.
-
-  When running the test command, test suite expansion is applied to each target
-  pattern in sequence as the set of targets is evaluated. This means that
-  individual tests from a test suite can be excluded by a later target pattern.
-  It also means that an exclusion target pattern which matches a test suite will
-  exclude all tests which that test suite references. (Targets that would be
-  matched by the list of target patterns without any test suite expansion are
-  also built unless --build_tests_only is set.)
-</pre>
 <p>
   Whereas <a href="build-ref.html#labels">labels</a> are used
   to specify individual targets, e.g. for declaring dependencies in
@@ -236,6 +152,100 @@
   any valid label is also a valid target pattern, identifying a set of
   exactly one target.
 </p>
+
+<p>
+All target patterns starting with '//' are resolved relative to the current
+workspace.
+<table>
+<tr>
+  <td><code>//foo/bar:wiz</code></td>
+  <td>Just the single target '//foo/bar:wiz'.</td>
+</tr>
+<tr>
+  <td><code>//foo/bar</code></td>
+  <td>Equivalent to '//foo/bar:bar'.</td>
+</tr>
+<tr>
+  <td><code>//foo/bar:all</code></td>
+  <td>All rules in the package 'foo/bar'.</td>
+</tr>
+<tr>
+  <td><code>//foo/...</code></td>
+  <td>All rules in all packages beneath the directory 'foo'.</td>
+</tr>
+<tr>
+  <td><code>//foo/...:all</code></td>
+  <td>All rules in all packages beneath the directory 'foo'.</td>
+</tr>
+<tr>
+  <td><code>//foo/...:*</code></td>
+  <td>All targets (rules and files) in all packages beneath the directory 'foo'.</td>
+</tr>
+<tr>
+  <td><code>//foo/...:all-targets</code></td>
+  <td>All targets (rules and files) in all packages beneath the directory 'foo'.</td>
+</tr>
+</table>
+</p>
+
+<p>
+Target patterns which do not begin with '//' are resolved relative to the
+current <em>working directory</em>. These examples assume a working directory of
+'foo':
+<table>
+<tr>
+  <td><code>:foo</code></td>
+  <td>Equivalent to  '//foo:foo'.</td>
+</tr>
+<tr>
+  <td><code>bar:wiz</code></td>
+  <td>Equivalent to  '//foo/bar:wiz'.</td>
+</tr>
+<tr>
+  <td><code>bar/wiz</code></td>
+  <td>Equivalent to:
+                      '//foo/bar/wiz:wiz' if foo/bar/wiz is a package,
+                      '//foo/bar:wiz' if foo/bar is a package,
+                      '//foo:bar/wiz' otherwise.
+  </td>
+</tr>
+<tr>
+  <td><code>bar:all</code></td>
+  <td>Equivalent to  '//foo/bar:all'.</td>
+</tr>
+<tr>
+  <td><code>:all</code></td>
+  <td>Equivalent to  '//foo:all'.</td>
+</tr>
+<tr>
+  <td><code>...:all</code></td>
+  <td>Equivalent to  '//foo/...:all'.</td>
+</tr>
+<tr>
+  <td><code>...</code></td>
+  <td>Equivalent to  '//foo/...:all'.</td>
+</tr>
+<tr>
+  <td><code>bar/...:all</code></td>
+  <td>Equivalent to  '//foo/bar/...:all'.</td>
+</tr>
+</table>
+</p>
+
+<p>
+By default, directory symlinks are followed for recursive target patterns,
+except those that point to under the output base, such as the convenience
+symlinks that are created in the root directory of the workspace.
+</p>
+
+<p>
+In addition, Bazel does not follow symlinks when evaluating recursive target
+patterns in any directory that contains a file named as follows:
+<pre>
+DONT_FOLLOW_SYMLINKS_WHEN_TRAVERSING_THIS_DIRECTORY_VIA_A_RECURSIVE_TARGET_PATTERN
+</pre>
+</p>
+
 <p>
   <code>foo/...</code> is a wildcard over <em>packages</em>,
   indicating all packages recursively beneath
