anchor.diff:  # Managing Step Dependencies
   
  -- all steps in pipelines have implicit dependencies
  -- if you need to change the dependency structure of your steps, you can define explicit dependencies with the `depends_on` attribute
  +All steps in pipelines have implicit dependencies, often managed with wait and block steps. To manually change the dependency structure of your steps, you can define explicit dependencies with the `depends_on` attribute.
   
   <%= toc %>
   
  -## implicit dependencies with wait and block
  +## Implicit dependencies with wait and block
   
  -- wait and block steps provide an implicit dependency structure to your pipeline
  -- a wait step, as in the example below, is dependent on all previous steps completing successfully
  -- all steps following the wait step are dependent on the wait step
  +[Wait](/docs/pipelines/wait-step) and [block](/docs/pipelines/block-step) steps provide an implicit dependency structure to your pipeline.
  +
  +By adding these steps to your pipeline, the Buildkite Agent will automatically know which steps need to be run in serial and which can be run in parallel.
  +
  +A wait step, as in the example below, is dependent on all previous steps completing successfully; it won't run until all steps before it have passed. All steps following the wait step are dependent on the wait step; none of them will run until the wait step has completed.
   
   ```yml
   steps:
  
positive.code:     depends_on: ~
  ```
  
  ## order of operations
  
  - `if` then `depends_on` then `concurrency`
  - if the step you're dependent on doesn't exist for any reason, the current step will run as soon as the rest of the jobs complete
  
  ## allowing failures
  
  - you can add the `allow_dependency_failure` to any step, the next step can run, but if there's a failure the build will still end up red
  
negative.code:   - command: "d.sh"
  ```
  
  [Block steps](/docs/pipelines/block-step) perform the same function, but also require unblocking either manually or via an API call before the rest of the steps can be run.
  
  If you are collecting information with your block steps using the `prompt` or `fields` attributes but don't require the actual blocking behaviour, you can use an [input step](/docs/pipelines/input-step).
  
  ```yml
  steps:
    - input: "Ask a question"
  ```
  
  An [input step](/docs/pipelines/input-step) provides the same functionality as the block step, but doesn't create the implicit dependencies that a block step creates.
  
  ## Defining explicit dependencies
  
  The `depends_on` attribute can be added to all step types.
  
  To add a dependency on another step, add the attribute with the name of the step you're depending on:
  
  ```yml
  steps:
  