anchor.diff:  
   The best place to get started is the [Buildkite Plugins] repository. You can also find third-party plugins with the [buildkite-plugin tag on GitHub][third party plugins].
   
  -At Buildkite, our plugins are predominantly shell scripts, so we've created a [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 extra configuration. 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.
   
  -A minimal plugin has a `plugin.json` at it's root:
  +A plugin has a `plugin.yml` at it's root that describes what it does, the executables required on the agent machine, and a schema of the plugin’s configuration options:
   
  -```json
  -{
  -  "name": "docker",
  -  "description": "Runs your build steps in Docker containers",
  -  "author": "@buildkite",
  -  "public": true,
  -  "requirements": ["docker"]
  -}
  +```yml
  +name: Docker
  +description: Runs build steps within a docker container.
  +author: https://github.com/buildkite
  +requirements:
  +  - docker
  +configuration:
  +  properties:
  +    image:
  +      type: string
  +    workdir:
  +      type: string
  +  required:
  +    - image
   ```
   
  -And then hook scripts under `hooks/`. A good example is the [docker plugin], which runs a command within a docker container.
  +The plugin’s hook scripts exist under `hooks/`.
  +
  +A good example is the [docker plugin], which runs a command within a docker container.
   
   The pipeline invocation of this plugin looks like:
   
  
positive.code:         workdir: /app
  ```
  
  The logic of the (simplified) [command hook][hooks] script in `hooks/command`:
  
  ```bash
  #!/bin/bash
  
negative.code: [third party plugins]: https://github.com/search?q=topic%3Abuildkite-plugin&type=Repositories
  [plugin tester]: https://github.com/buildkite-plugins/plugin-tester
  [Plugin sources]: https://buildkite.com/docs/agent/v3/plugins#plugin-sources
  [JSON Schema]: http://json-schema.org
  [JSON Schema Lint]: https://jsonschemalint.com/
  [Plugin Linter]: https://github.com/buildkite-plugins/buildkite-plugin-linter
  [bksr]: https://github.com/toolmantim/bksr
  [Understanding JSON Schema]: https://spacetelescope.github.io/understanding-json-schema/
  [Shellcheck Plugin]: https://github.com/buildkite-plugins/shellcheck-buildkite-plugin
  