Skip to content

Cli

short description: Propulates an empty Git repository with the most common files and folders as a starting point.
detailed description: |
  Propulates an empty Git repository with the most common files and folders as a starting point.
  Initializes repositories for the following programming languages: C++, Go, and Java.
  Supports these types of projects: embedded (and systems development), library, service, and tool (CLI).
  Also generates CI/CD files for GitHub or GitLab.

  These are the supported combinations:

  | Language | CLI Tool | Embedded | Library | Service |
  | -------- | -------- | -------- | ------- | ------- |
  | C++      | X        | X        | X       | X       |
  | Go       | X        |          | X       | X       |
  | Java     |          |          | X       | X       |

  Search for TODO markers once your repository has been populated.
commands:
  - name: init
    description: Initializes an empty Git repository with the most common files and folders as a starting point.
    options:
      - long: artifactname
        short: a
        type: string
        default: null
        description: Optional technical artifact name, i.e. name of the executable or archive. Derived from local Git repository if option is absent.
      - long: ci
        short: c
        type: enum(github, gitlab)
        default: gitlab
        description: Optionally determine your target CI/CD tool. Either github or gitlab. Researched from local Git repository if option is absent.
      - long: description
        short: d
        type: string
        default: null
        description: Brief description of the project.
      - long: language
        short: l
        type: enum(cpp, go, java)
        default: go
        description: Determine your target language. One of cpp, go, or java.
      - long: modulepath
        short: m
        type: string
        default: null
        description: Optional Go module path, e.g. gitlab.com/user/project. Derived from local Git repository if option is absent.
      - long: name
        short: n
        type: string
        default: null
        description: Human readable name of the project.
      - long: projecttype
        short: p
        type: enum(tool, library, service)
        default: service
        description: Determine your target project type. One of embedded, library, service, or tool (CLI).
      - long: targetpath
        short: t
        type: string
        default: null
        description: Target path referencing the (empty) repository folder to be initialized.
  - name: update
    description: Updates an already initialized Git repository.
      Does not change the nature of the project, nor does it change developer files.
      Only updates guidelines, CI/CD files, and .claude/ folder.
    options:
      - long: targetpath
        short: t
        type: string
        default: null
        description: Path to the repository to update. Defaults to the current working directory.
      - long: dry-run
        short: null
        type: boolean
        default: false
        description: List files that would change without writing them. Useful in CI pipelines to detect available updates.
  - name: version
    description: Prints the version of this tool. Includes version, build date, and git commit hash.
    options: null