Distribution and drift

A standards change is worth nothing until it reaches the estate, and an estate that quietly stops matching is worse than one that never onboarded. Three moving parts keep both honest.

The register knows who is onboarded

registry.json is derived, never maintained. A nightly job walks the organisation for repositories carrying a .redline.json and writes what it finds. An entry exists exactly as long as that file does, so a repository that removes Redline leaves the register on the next run without anyone editing a list.

Its predecessor was a hand-maintained text file. It lost its only writer, then was deleted, and the dashboard's coverage figure quietly went absent for months — which is why the bundle self-check now fails the build if the register's machinery goes missing again.

Sync makes the change available

A push to standards/ opens one pull request on every registered repository that is behind, quoting the version it moves from and to.

terminal
$ npx redlinegate sync --dry-run   # the whole plan, writing nothing

Three properties, each a way this could have gone wrong:

  • Your content survives. The render is seeded with the target's current files, so everything a team wrote above a REDLINE:BEGIN marker is untouched. Rendering into an empty directory would produce a correct-looking AGENTS.md that deleted every repository's own context section at once.
  • The branch rebuilds from your default branch, never from a stale sync branch — so an unmerged pull request from an older standards version cannot carry its changes forward.
  • An open sync pull request is updated, not duplicated. A scheduled job that opens a new pull request every night is one nobody reads.

Sync never merges and never pushes to a default branch. It makes the change available; merging is the repository's decision.

Not merging is a decision, and it is visible

A repository that ignores its sync pull requests drifts. Two things make that impossible to miss rather than a slow silence:

  • The sync pull request carries its own exemption, which expires — so one nobody merges eventually fails its own gate.
  • The weekly drift sweep runs redline verify --repo owner/name against every registered repository and opens one tracking issue, updated in place, naming everything that has drifted — a hand-edited ruleset, a renamed caller job, push protection switched off, artifacts left stale.

A check that could not run says so

Remote verification reports ?? for a check that genuinely needs a working tree, never ok. Reporting a check that never executed as passing produces a false all-clear across the whole estate at once. An ?? also never fails a repository on its own — failing on the absence of evidence trains an operator to ignore the weekly issue.

Outstanding

Sync and remote verify are GitHub-only today. A registered Azure DevOps repository is reported as unsupported rather than skipped silently, and the distribution story is not complete until it exists.