Skip to content
State: Approved

ADR#9316364013

directorymisegithub-actionsdevopsprotobufwitopentelemetry

Reserved repository directories ​

Context ​

Every repository carries files that belong to no single language workspace: task scripts, scripts run by GitHub Actions, operational assets and schema sources. Without a reserved place for each, every repository invents its own, tooling paths drift, and the layout has to be learned again on every clone.

Two rules settle the names. A directory is named after what it holds, never after the tool that processes it. Inside a reserved directory the layout is whatever the consuming tool dictates, so no second naming decision exists.

This ADR fixes the set of reserved directories. The layout inside each one is decided by the ADR that owns it, linked from the table.

Resolution ​

  • You MUST reserve the following directories at the repository root, with the meaning given, in every repository regardless of language or shape:

    DirectoryHoldsLayout
    .config/<tool>/configuration that drives a toolthe tool's own layout
    .config/mise/mise tasks and code they shareADR#6647967335
    devops/operational assets that reach nothing liveADR#2078011537
    devops/infra/the live estate: Terragrunt and GitOpsADR#6561361204
    proto/, wit/, otel/schema sources, one directory per languageADR#4711775939
  • You MUST NOT reuse a reserved directory name for another purpose at the repository root, and you MUST NOT place these files anywhere else unless the ADR that owns the directory allows it.

  • You MUST NOT name a reserved directory after the tool that processes it. .config/<tool>/ and devops/<tool>/ are the exceptions, because each holds nothing but what that one tool reads.

  • You MUST follow the consuming tool's own layout inside a reserved directory and MUST NOT add a naming layer of your own.

Except as otherwise noted, the content of this repository is licensed under the Creative Commons Attribution 4.0 License and code samples are licensed under the MIT