anchor.diff:  ```
   The `app` directory contains `BUILD_DIR` contents, and `staging_info.yml` contains the staging metadata saved in the droplet.
   
  +### <a id='compile-script'></a>bin/compile (Deprecated)###
  +
  +The `compile` script builds a droplet by packaging the app dependencies, assuring that the app has all the necessary components needed to run.
  +
  +The script is run with two arguments: the `build` directory for the app and the `cache` directory, which is a location the buildpack can use to store assets during the build process. During the execution of the `compile` script, all output sent to `STDOUT` is relayed through the cf CLI to the user.
  +
  +The following is an example of a simple `compile` script:
  +
  +~~~ruby
  +#!/usr/bin/env ruby
  +
  +#sync output
  +
  +$stdout.sync = true
  +
  +build_path = ARGV[0]
  +cache_path = ARGV[1]
  +
  +install_ruby
  +
  +private
  +
  +def install_ruby
  +  puts "Installing Ruby"
  +
  +  # !!! build tasks go here !!!
  +  # download ruby 
  +  # install ruby
  +end
  +~~~
  +
  +
   ##<a id='buildpack-detection'></a> Buildpack Detection
   
   When you push an app, Cloud Foundry uses a detection process to determine which buildpack to use. 
  
positive.code: 
  This section provides a detailed account of the sequence of interactions between the Cloud Foundry platform and the buildpack. The sequence of interactions differs depending on whether the platform [skips](#no-detection) or [performs](#detection) buildpack detection.
  
  This section uses the following placeholders:
  
  * `IDX` is the zero-padded index matching the position of the buildpack in the priority list.
  * `MD5` is the MD5 checksum of the buildpack's URL. 
  
  ###<a id='no-detection'></a> No Buildpack Detection
  
  The platform skips buildpack detection if the developer specifies one or more buildpacks in the application manifest or with the cf CLI using the `cf push APP-NAME -b BUILDPACK-NAME` command.
  
negative.code: 1. Selects the first buildpack with a `/bin/detect` script that returns a zero exit status
  1. Creates `/tmp/cache/primary/` if not present
  1. If `/bin/finalize` is present:
  	1. Creates the `deps` directory if not present
  	1. If `/bin/supply` is present, runs `/bin/supply` on the `app`, `cache`, and `deps` directory 
  	1. Accepts any modification of the `deps` directory
  	1. May disallow modification of the `app` directory
  	1. Runs `/bin/finalize` on the `app`, `cache`, and `deps` directory 
  	1. Accepts any modification of the `app` directory
  1. If `/bin/finalize` is not present:
  	1. Runs `/bin/compile` on the `app` and `cache` directory 
  	1. Accepts any modification of the `app` directory
  1. Runs `/bin/release` to determine staging information
  
  At the conclusion of this process, the `deps` directory is included at the root of the droplet, adjacent to the `app` directory. 
  