anchor.diff:  
   ## Pipeline format
   
  -The pipeline can be uploaded as YAML and JSON, and they both have the same structure. There are two top level properties:
  +The pipeline can be written as YAML or JSON, but YAML is more commonly for its readability. There are two top level properties you can specify:
   
   * `env` - a hash of build-wide environment variables
   * `steps` - an array of build steps to be run (a mix of script, waiter and blocker steps)
  +
  +## Example pipeline
  +
  +For a complete example of a pipeline see the one we use to test and publish the Buildkite Agent itself, containing commands, wait steps, "Click to unblock" steps, and artifacting uploading:
  +
  +<a class="Docs__example-repo" href="https://github.com/buildkite/agent/blob/master/.buildkite/pipeline.yml">:package: Buildkite Agent’s pipeline.yml<span class="repo">github.com/buildkite/agent/blob/master/.buildkite/pipeline.yml</span></a>
  +
  +## Step types
   
   A *script* step runs a command on an agent. The following is the most simple script step:
   
  
positive.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:
  
negative.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]
  ```
  