anchor.diff:  
   When this is run on an agent it will output the pipeline, which is then piped to the `buildkite-agent pipeline upload` command.
   
  +## Migrating existing pipelines
  +
  +To migrate to checked in pipelines without interrupting existing branches you can add a new step at the start of the pipeline. This new step is reponsible for checking if a pipeline file exists and replacing the currently running pipeline (the old configuration, defined via the web) with the new configuration read from the file.
  +
  +To do this, create a step with the following command:
  +
  +```bash
  +[[ -f ".buildkite/pipeline.yml" ]] && buildkite-agent pipeline upload --replace || true
  +```
  +
  +If the pipeline file exists then we execute the `pipeline upload --replace` command which will replace any steps that were defined via the web UI after this step.
  +
   ## Pipeline command
   
   Use this command in your build scripts to upload pipelines to Buildkite.
  
positive.code:    --debug                                      Enable debug mode [$BUILDKITE_AGENT_DEBUG]
     --debug-http                                 Enable HTTP debug mode, which dumps all request and response bodies to the log [$BUILDKITE_AGENT_DEBUG_HTTP]
  ```
  
  ## Migrating existing pipelines
  
  To migrate to checked in pipelines without interrupting existing branches you can add a new step at the start of the pipeline. This new step is reponsible for checking if a pipeline file exists and replacing the currently running pipeline (the old configuration, defined via the web) with the new configuration read from the file.
  
  To do this, create a step with the following command:
  
  ```bash
  [[ -f ".buildkite/pipeline.yml" ]] && buildkite-agent pipeline upload --replace || true
  ```
  
  If the pipeline file exists then we execute the `pipeline upload --replace` command which will replace any steps that were defined via the web UI after this step.
  
  ## Controlling Concurrency
  
  To control concurrency for a particular type of job specify a `concurrency_group` identifier (e.g. `"deploy"`) and a `concurrency` value (e.g. as `1`). The identifier is used across all of the pipeline’s builds to identify and throttle the number of jobs running simulatenously.
  
negative.code: 
  <%= image("pipeline-upload-step.png", width: 612/2, height: 484/2) %>
  
  This will add a step to your pipeline containing the correct `buildkite-agent pipeline upload` command. When this command runs on an agent it reads in the pipeline file located in your repository at `.buildkite/pipeline.yml`. For example, here is a pipeline that simply prints “Hello!”:
  
  ```yml
  steps:
  