Current state
.github/CODEOWNERS routes every PR through a single fallback owner. Activity patterns differ by area, but routing does not reflect that.
Proposal
Adopt a path-based CODEOWNERS so PRs are routed to the maintainer most active in the area they touch. Paths without a specific entry continue to fall through to the fallback.
This is the routing model used by modern peer-maintainer OSS projects — areas are organic, codified for routing convenience, not authority.
This is a routing change, not a governance change. All Maintainers continue to have equal authority per GOVERNANCE.md. Each path entry is opt-in — a maintainer is registered only with their consent.
Examples
# Fallback (applies when no specific entry matches)
* @<handle>
# Whole directory
/<dir>/ @<handle>
# Subdirectory
/<dir>/<sub>/ @<handle>
# Multiple owners on one path (both auto-tagged for review)
/<dir>/ @<handle-a> @<handle-b>
# File-extension pattern
*.md @<handle>
The last matching pattern wins. By convention, place broad patterns first and specific patterns below.
Plan
Add paths one at a time via small PRs. Each PR adds its entry only after the maintainer being added has consented. The first PR also adds a top-of-file comment noting that this file is for advisory routing only — semantics change if branch protection is later set to require code-owner approval.
Current state
.github/CODEOWNERSroutes every PR through a single fallback owner. Activity patterns differ by area, but routing does not reflect that.Proposal
Adopt a path-based CODEOWNERS so PRs are routed to the maintainer most active in the area they touch. Paths without a specific entry continue to fall through to the fallback.
This is the routing model used by modern peer-maintainer OSS projects — areas are organic, codified for routing convenience, not authority.
This is a routing change, not a governance change. All Maintainers continue to have equal authority per
GOVERNANCE.md. Each path entry is opt-in — a maintainer is registered only with their consent.Examples
The last matching pattern wins. By convention, place broad patterns first and specific patterns below.
Plan
Add paths one at a time via small PRs. Each PR adds its entry only after the maintainer being added has consented. The first PR also adds a top-of-file comment noting that this file is for advisory routing only — semantics change if branch protection is later set to require code-owner approval.