anchor.diff:      depends_on: "a"
   ```
   
  -- adding an explicit empty dependency ensures that a step isn't dependent on any other and will run immediately at the start of the build
  +In the above example, the second command step (b) will not run until the first command step (a) has completed. Without the `depends_on` attribute, and given enough agents, these steps would run in parallel.
  +
  +To ensure that a step is not dependent on any other step, add an explicit empty dependency with the `~` character. This also ensures that the step will run immediately at the start of the build:
   
   ```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: # Managing Step Dependencies
  
  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
  
  [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:
  