Skip to content

Work / canon / Wiki / Concepts

company-map

Conceptverified 2026-11-02

company-map

The map says who and what each part of a company belongs to. Changing it moves no knowledge. Decided in product-model.

  • One of everything: no map file. The repo's .context/context.yaml is enough, and the app hides Company, Team and Client.
  • More than one: the first second product, team or client adds canon.yaml to a company repo, which also holds company-wide knowledge. A company with one repo may keep it there and move it later.
  • A product's parts are a repo, or a path in a repo, so a monorepo can split without a change of model.
  • Clients: each has its own small file, only if it has real customizations. A client with none is a name in a list.
  • Changes: a pull request, like any other knowledge. Canon suggests the first map after the first sync; onboarding asks nothing about it.
  • At scale: the app shows counts, search and filters, never long trees.
# canon.yaml. A sketch: the format is decided when the CLI reads it.
company: acme
products:
  - id: payments
    parts:
      - { repo: acme, path: services/payments, team: core }
      - { repo: payments-api, team: core }
teams:
  - { id: core, owners: [sam] }
clients:
  - { id: bigbank, product: payments, repo: bigbank-custom }