anchor.diff:  
   The agent parses the plugin block and passes the parameters through to the script as environment variables in the form `BUILDKITE_PLUGIN_{NAME}_{KEY}`, or if a list is provided then `BUILDKITE_PLUGIN_{NAME}_{KEY}_{IDX}`. 
   
  -This lets a script supplement the [standard environment variables]() that the agent provides to any script with structured configuration from the plugin definition. 
  +This lets a script supplement the [standard environment variables] that the agent provides to any script with structured configuration from the plugin definition. 
   
   Plugins are also able to offer `command` and `environment` hooks, which aren't allowed in per-project hooks. This lets plugins change how commands are executed entirely.
   
  
positive.code: 
  ## Developing a plugin
  
  The best place to get started is the [Buildkite Plugins](https://github.com/buildkite-plugins) repository, or [third-party plugins with the `buildkite-agent` tag](https://github.com/search?q=topic%3Abuildkite-plugin&type=Repositories).
  
  We mostly write our plugins as shell scripts, so we've created a [plugin tester](https://github.com/buildkite-plugins/plugin-tester) docker image that simplifies writing BATS tests and getting your plugin tested (so meta).
  
  ### Anatomy of a plugin
  
  Plugins are essentially a collection of hooks with some metadata. The agent 
  parses the plugin configuration and passes it on to the plugin in a slightly 
  normalized form, both as JSON or environment variables.
  
  This means that you can write a plugin as a shell script, or as a binary.
  
  
negative.code: 
   * Always ping to a particular version of the plugin, e.g. `docker-compose#287293c4`. You can refer to any git ref. The agent will check this out the first time it encounters it and then re-use that checked out code.
  
   * Follow the [Unofficial Bash Strict Mode] and check your work with [shellcheck].
  
   * Apply special care in plugins to avoid executing arbitrary code passed in by config. As these are just environment variables, anything that can set environment variables can mess with plugin configuration.
  
  