anchor.diff:          workdir: /app
   ```
   
  -The logic of the (simplified) [command hook][hooks] script in `hooks/command`:
  +The (simplified) logic of the [command hook][hooks] script in `hooks/command`:
   
   ```bash
   #!/bin/bash
  
positive.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
  
negative.code: 
  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].
  
  ### 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 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:
  
  ```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
  ```
  
  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:
  
  