short description: Generates a repository for spec-driven development from its .repo.yaml.
detailed description: |
  Generates a repository for spec-driven development from its .repo.yaml.

  Start with repo init (single repository) or repo init-mono (mono-repository), fill in the
  .repo.yaml it writes, then run repo update. Every command works on the current directory and
  accepts no options or arguments; a command line with either fails with the usage text.
  The format of .repo.yaml is repo-config.schema.json.
commands:
  - name: init
    description: Writes a .repo.yaml template for a single repository. Refuses an existing .repo.yaml.
    options: null
  - name: init-mono
    description: Writes a .repo.yaml template for a mono-repository with two artifacts. Refuses an existing .repo.yaml.
    options: null
  - name: add
    description: Appends an empty artifact to the .repo.yaml of a mono-repository and generates nothing. Refuses a single repository.
    options: null
  - name: update
    description: Validates .repo.yaml, reports every violation as `.repo.yaml:<line>: <field>: <problem>` on standard error, and writes nothing if there is one.
      Requires a Git working tree that is clean apart from .repo.yaml. Writes the generator-owned files of every selected module, and a missing
      developer-owned file only when the configuration recorded in meta.artifacts would not generate it. Deletes nothing; prints each existing file
      of a module or artifact that is no longer configured, one path per line, then `review: <path>` for each existing developer-owned file at the
      root of a mono-repository whose generated content the configuration changes. Finally records the generated modules in meta.artifacts and sets meta.generatorVersion.
    options: null
  - name: check
    description: Validates .repo.yaml like update, then prints, one path per line, every file that update would create or change, .repo.yaml included,
      and exits non-zero if there is one. Writes nothing.
    options: null
  - name: version
    description: Prints the version of this tool on one line - version, build date, and Git commit hash, separated by spaces.
    options: null
