Declare what your repo does and how to use it in a structured, yet human-readable schema. Your code repository is an artifact that can receive input and provide output to the outside world. In effect, this means it has an implicit "function signature", and we do ourselves a disservice by attempting to describe these things in prose.
CUE has a very intuitive and descriptive syntax, while also being far more powerful than YAML or JSON. The schema validator and schema itself are implemented in CUE, which is capable of validating the schema of YAML and JSON files. The suggested convention is to start providing a repo.cue/repo.yaml/repo.json file (per your preferred syntax) at the root of your repository alongside your README.md file.
brew install nreilingh/tap/repovet
repovet
repovet a_specific_file.cue
repovet sample