Skip to content

Ownership model

Teleos shows how software is built, not how it runs: who and what landed each change, and which human answers for it.

A change is owned by whoever vouched for it

Section titled “A change is owned by whoever vouched for it”

A robot can’t be held accountable. Authorship can be anything (a person, an agent, a bot, an agent acting on a person’s token), so ownership resolves in this order:

  1. The human who merged it. Merging is vouching.
  2. Otherwise, a human who explicitly approved it. Bot approvals don’t count.
  3. Otherwise, the owner of the domain it landed in (CODEOWNERS or a curated map).
  4. Otherwise, for fully autonomous changes, the owner declared for that automation (an identity’s accountable team).
  5. Otherwise nobody. An unvouched change is a finding.
RankEvidenceExample
DeclaredGitHub App installations, identity review, team rostersan app installed with write access to all repos
Observedbehavior in the data: unsigned commits from a person’s account, machine branch names, activity minutes after an installan agent opening a PR under a human account
Namedthe signatures file (a vendor-naming hint, never the only basis)claude[bot] → Anthropic

A domain is an area of code (e.g. Billing). Its scope (which repo paths belong to it) and its assignment (which team owns it) are both effective-dated. A reorg or a moved directory never edits history; the old fact ends and a new one begins.

Every report can be read two ways:

  • As of then (the default, and the audit answer): a change counts for the team that owned the area when it landed, using the paths as they were then.
  • As of now: today’s owners and paths applied to the whole window. What happened in the areas I just inherited?
Terminal window
manage.py team_domains forge --days 60 --lens then
manage.py team_domains forge --days 60 --lens now

Teleos reads your org chart from your code

Section titled “Teleos reads your org chart from your code”

Ownership sources, each tagged on every fact: CODEOWNERS, team repository permissions, service-catalog files (Datadog entity.datadog.yaml, Backstage catalog-info.yaml, OpsLevel), and a curated map. When sources disagree, Teleos reports the contradiction rather than silently picking one.

Status: CODEOWNERS, dated domains and vouching are shipped. Catalog files, versioning ownership from each file’s history, and a teleos.yaml curated map are in progress.